On 6 Apr 2009 at 10:04, Roger Holmes wrote:
At the physical level, what really defines a block is
that between
blocks there are inter block gaps which gives the tape drive time to
stop. If the CPU writes one block and then does calculations or (on a
machine with a multi tasking OS), runs someone else's job, the drive
must stop and wait for the next block to be written. Similarly on
reading, but because the drive does not know what will happen on
reading, then it has to provide inter-block gaps even when two block
writes follow on immediately from each other.
Another way to think of it is that a block is to a tape what a sector
is to a disk. You can't read or write less than that unit. Unlike
most disks, there is no requirement for blocks on a tape to be the
same length--and there is an extra type of block, the tapemark that
allows for high-speed positioning between sections of tape.
Another aspect of tape operation is that a drive must get a running
start at reading or writing, which is where the gap/IRG comes in
(which is why you want to minimize the need for a tape to stop
motion). Streamers, (e.g. Cipher) when stopped back up quite a
distance before beginning a read or write. Vacuum-column tape drives
generally accelerate the tape quickly enough within the space of the
gap.
I don't know if it's true anymore, but in the EDP world, knowing how
to do an efficient external sort on tape (cf: oscillating merge,
polyphase merge, cascade merge, balanced merge) used to be a
requirement for a programmer. Now, it's probably a lost art.
--Chuck