Big Records and the Mag Tape Blues

D. Mitchell don at allegra.UUCP
Tue Oct 2 13:02:48 AEST 1984


To answer someone's question, many controllers don't guarantee what
will happen if you write records longer than 2000 bytes.  In practice,
4K or 8K is fine.  If you really write huge records (65K) you might get
away with it, but you're running a big risk of getting phase errors,
and you're not going to get that much more data on the tape.

When I was a grad student, we worked on an 11/70 with 8 tape drives.
People walked in and out mounting tapes and turning units on and off at
random times.  Needless to say, that would have been absolutely
impossible if we hadn't rewritten the driver from scratch.

We didn't want the silly block tape device, we didn't want one kind of
drive that rewound when you closed it, none of that crap.  Just read
and write and a bunch of ioctls for rewind, weof, backspacing,
skipping...

Then a bug in the scheduler haunted us.  This was before someone put
sleep queues in the kernel, and livelock made it impossible for 8
processes to compete for the unibus without some being permanently shut
out.  We put a FIFO in the driver itself.

Finally, a timer issued a pseudo request every few seconds to each
active unit to see what its status really was.  The controller would
sometimes forget (especially if you tried to do nice things like allow
one unit to be written and read while another is rewinding.)

I don't know if anyone else has ever done this.  If you are interested,
you might write to the Space Radiation Lab at Caltech to see if they
will let you have the code.



More information about the Comp.unix.wizards mailing list