Trailing-Edge - PDP-10 Archives - decuslib10-10 - 43,50524/d2d.doc
There is 1 other file named d2d.doc in the archive. Click here to see a list.

D2D - Disk To Disk Pack Copy;                     27-Jul-81:

D2D (disk to disk) copies an entire  disk  pack  to  another
disk  pack.   Using  Super-USETI  and  Super-USETO  (SUSET.)
instead of LOOKUP and ENTER, as well as performing  its  own
file  space  allocation  and  Storage Allocation Table (SAT)
management, results in a fast copy.   At  the  Univesity  of
Texas at Austin, (UTAustin), copies of RP06s using FUR which
run 4 hours are performed in 40 minutes  with  D2D.   Unlike
"image" copy programs which also use SUSET.  but simply copy
block to block and  result  in  a  useless  BADBLK.SYS,  D2D
creates a refreshed pack with a valid BADBLK.SYS.

D2D runs in two phases; the first is to build a map  of  the
pack  being  copied  from.   There is a entry in the map for
every file, including the MFD, UFDs, and SFDs.   Each  entry
(one word) has the format:
   1) SIXBIT/filename/
   2) SIXBIT/extension/,,number of files in directory
    (for MFD, UFDs and SFDs; zero otherwise)
   3) Block address of file on original pack
   4) Block address of file on target pack
   5) Block address on target pack of UFD
    to which file belongs
   6) Pointer to map entry of first file in directory
    (directory entries only; others zero)
   7) Number of blocks in file

As the map is built files are allocated new addresses on the
pack.   D2D  maintains  it's  own  SAT;  files are allocated
contiguous space only.  Both the SATs and the Map  are  kept
in core.  Phase two uses the Map to read files from the pack
being copied from and transfers them to their new address on
the target pack.  It is essential that the disk structure of
the pack being copied from be static; hence D2D should  only
be  run  on a stand alone system.  In-core buffering is used
in the transfer phase; at UTAustin  an  RP06  copy  requires
about 300 pages of physical core.


D2D uses a pack formatted by TWICE.  The pack may  be  given
any Structure Name; D2D will use the Structure Name found in
the HOME block of the original pack to build RIBs and update
the HOME block of the target pack.

The Bits per Cluster Count should be set to 15.  D2D uses  a
single  RIB  Retrieval  Pointer  when  building  RIBs on the
target pack so the RIB  Retrieval  Pointer's  Cluster  Count
must  be  assigned enough bits to represent the largest file
that will be copied.  With 15 bits and 3 blocks per  cluster
the Cluster Count can represent files of 98,301 blocks.


You have formatted a pack with TWICE, the  system  is  stand
alone,  the  packs  to  be  copied  from and to are mounted.
While logged into the Operator job do,
   RUN D2D
   COPY FROM:  give structure name
   COPY TO:  give structure name
   I.D.  OF PACK COPYING TO:  give physical unit I.D.
    (this is safety precaution)

D2D exits when done, dumping the Map into  file  DSK:MAP.FIL
and  the  SAT  into  DSK:SAT.FIL.  Both are binary files and
intended  for  debugging  or  copy  verification.   Readable
reports  of  these  two  files  can  be generated by running
DMPMAP.SAI  (report  written  to  MAP.LST)  and   DMPSAT.SAI
(report   written  to  SAT.LST)  respectively.   SAT.LST  is
similar to  RIPOFFs  /PS  (print  SAT)  report  and  can  be
compared with this report to confirm the SATs integrity.

Before trying to do a directory of the newly  copied  target
pack  you must dismount and remount it to force the new HOME
blocks to be read into core by the monitor.  You may now run
DSKRAT  on  the  pack;  this  is  advisable  until  you  are
confident D2D is correctly copying  packs  on  your  system.
D2D  creates  some  lost  blocks; it does not use the system
directories set  up  by  TWICE  but  rather  rebuilds  these
itself.   This  is  done  to  avoid the possibility that the
directory, as set up by TWICE, may not be large  enough  and
would  have  to  be  extended,  possibily  using  blocks not
contiguous.  D2D can't  do  this  yet.   By  rebuilding  the
system  directories  D2D  can  allocate the needed number of
contiguous blocks from the outset.  After running DSKRAT you
can  free-up  these  lost  blocks by deleting LSTBLK.*.  The
lost blocks should cause no problems if not deleted.


This section is a check list of important  infomation  (some
mentioned   previously),   known   problems,   and  possible

D2D allocates only contiguous space to files on  the  target
pack; this causes some problems:  a file cannot be allocated
space from two different SAT blocks and there must always be
a sufficiently large contiguous chunk of space for the file.
This will probably only be a  problem  if  the  packs  being
copied are VERY full.  Also, to avoid the possibility that a
system directory (as set up by  TWICE),  may  not  be  large
enough  and  would  have  to  be  extended,  possibly  using
non-contiguous blocks, D2D re-builds the system  directories
elsewhere, allocating the needed number of contiguous blocks
from the outset.  The HOME blocks and SYS UFD must  then  be
updated  to  point  to  the  new  system  directories.  This
results in the old system directories becoming lost blocks.

After D2D finishes dismount  and  remount  the  pack  before
trying  to  do  anything  with  it; this forces the new HOME
blocks to be read into core.

When setting up the target pack with TWICE, specify 15  bits
for  the RIB Retrieval Pointer's Cluster Count.  See SETTING

D2D should be run stand alone only; this  assures  a  static
disk structure on the pack being copied from.

The SATs, disk Map, and as much buffering as is possible  is
done in-core.Expect to use from 100 to 300 pages of physical

D2D  computes  logical  block   addresses   by   multiplying
Compressed  File  Pointers (CFP), by the blocks per cluster,
which  is  word  HOMPBC  in  the  HOME   block.    This   is
satisfactory  as  long  as Super Cluster size = Cluster size
and a disk structure consists  of  only  a  single  physical

The  following  files  are  not  copied  by  D2D:   SAT.SYS,
SWAP.EXE, and RECOVE.SYS.  If you want these  files  on  the
new pack you must put them there with TWICE.

Has only been used to copy RP06s and RP04s at UTAustin.

If you do not want the MAP.FIL and SAT.FIL to be written  as
D2D exits, remove the calls to the routines that do this:
after label UPDSUF.