[colug-432] does dd double buffer? or can linux even do it?

Vince Herried vherried at gmail.com
Sun Apr 7 22:43:19 EDT 2013


Way back in 1970 ish,  my  employer got a DEC PDP-15 with a paper tape
input and output device.

It came with a short utility to copy paper tapes.  The first time I used it
I found
how dumb it was.  The reader used optical sensors to detect the holes in
the paper tape and was was maybe orders of magnitude faster than the paper
punch.  Not only that the punch took like 30 seconds to get the motor up to
speed before it put wrote any output.  With their utility the punch would
stop
and then the reader start up till it filled its single buffer, then the
punch would start up again....

This being a 3rd generation computer and me being a smart computer science
major I wrote my own paper punch program with double buffering.  This
program ran with out any operating system,  eg it had total control of the
machine.  I'm not sure if the machine even had the ability to be in problem
or system state.  Anyhow I made the memory buffer large,  maybe 4K :)
When you went to copy a tape it read it in until it filled one buffer then
started the punch, mean while reading into to the second buffer.  What
usually happened was the input tape would zip in then stop while the punch
started running, then once the punch got to punching it never stopped, like
the DEC original did.  Made copying tapes much faster.

So my original question.  I have a Firewire connected disk drive and im
doing a dd from it to an internal drive under Fedora 17.  The little
activity light on the external drive comes on red for a 20 or so seconds,
blinks out, then the disk drive light on my laptop blinks on for 20 or so
seconds, blinks out and ....

Sure looks like single buffering,  Or my super whippy laptop cant do
multiple I/O at same time,  Huh,  2nd generation computer?

OK I confess I'm really using dcfldd which is a nifty clone of DD that
gives regular status updates for us type A persons that feel we need all
the time INPUT.

dcfldd if=/dev/sdc  of=/dev/sda bs=500M

if I have to do it again, I'm gonna go bs=1000M

I fergit the extra parm for telling how often it reports status.

Do i need to write my own dd command?
---
Vince
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.colug.net/pipermail/colug-432/attachments/20130407/f83bc14f/attachment.html 


More information about the colug-432 mailing list