Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10 5/3/83; site stcvax.UUCP Path: utzoo!linus!philabs!seismo!hao!stcvax!lat From: lat@stcvax.UUCP (Larry Tepper) Newsgroups: net.periphs Subject: Re: Magtape capacities vs densities ? Message-ID: <218@stcvax.UUCP> Date: Wed, 4-Jan-84 12:13:32 EST Article-I.D.: stcvax.218 Posted: Wed Jan 4 12:13:32 1984 Date-Received: Fri, 6-Jan-84 01:21:52 EST References: <190@rna.UUCP> Organization: Storage Technology Corp. Louisville, CO Lines: 45 Here is a program to compute the capacity you can expect with a given tape length and density. Tape records have 82 bytes of preamble and postamble (total) and are followed by a .6 inch inter-record gap. The amount of data you can get on a tape depends on the tape-record size. If you write 1-byte tape records, you would incur an overhead of 82 bytes header and .6 inches of gap for every byte. The 145 Mb number is basically correct -- if you write 16k-byte (not 8k-byte) records and use every inch of the 2400 foot tape. Note that a number of popular disks have 32 512-byte sectors (i. e. 16k bytes) per track In the program below, the usual value for `data record size' is 512. A typical value for `blocking factor' is 20 (tar and dump tapes). #include main() { double nrecs, tpsize, recsize, blkfctr, density; for ( ;; ) { printf("\n Enter tape density (bpi): "); scanf("%f", &density); printf(" Enter tape length (feet): "); scanf("%f", &tpsize); if (tpsize > 2400.) { printf(" length > 2400??? nice try!\n"); continue; } printf(" Assuming use of 95%% of specified tape length\n"); tpsize *= .95 * 12.; /* Convert to inches */ printf(" Enter data record size (bytes): "); scanf("%f", &recsize); printf(" Enter blocking factor: "); scanf("%f", &blkfctr); recsize *= blkfctr; nrecs = tpsize / (((recsize + 82.) / density) + .6); printf(" Number of records per tape:\n"); printf("\t- data records: %8.1f\n", nrecs * blkfctr); printf("\t- tape records: %8.1f\n", nrecs); printf("\t- megabytes: %8.1f\n", nrecs * recsize / 1000000.0); } }