Article 6010 of vmsnet.pdp-11: This is to announce the new M03.09-E.V. field-test release of the FRAG (Disk Fragmentation Statistics) program for RSX-11M/M+. FRAG has been originally written by D. Michaud. The main enhancements include: - converted to use FILES-11 QIOs instead of FCS services to access the index/bitmap file - program is now smaller and faster - added support for *LARGE* disks - fixed problem with the last bin being the biggest one - added PIP-like display of the total free/used blocks, the largest contiguous space and total/used/free file headers. The attached sample output and build file should tell you more about what FRAG does and about FRAG's modification history. FRG /FR is designed to produce just the same output as PIP /FR, but FRG /FR is amazingly faster. Only hope it is also accurate like PIP /FR. :-) If you are interested in testing FRAG M03.09, please contact me at . Eduard Vopicka &>frg FRG M03.09-E.V. (10.) -- FILES-11 disk fragmentation statistics for DL2: Contiguous free blocks (holes) Date 16-MAY-96 Time 00:47:40 Hole range Frequency Number of blocks 1. - 5. 12. 29. 6. - 25. 23. 306. 26. - 50. 5. 163. 51. - 100. 3. 191. 101. - 150. 1. 131. 151. - 200. 0. 0. 201. - 250. 0. 0. 250. - 300. 0. 0. 301. - 400. 0. 0. 401. - 600. 0. 0. 601. - 1000. 0. 0. 1001. - 2000. 0. 0. 2001. and up 0. 0. DL2: has 820. blocks free, 9420. blocks used out of 10240. Largest contiguous space = 131. blocks 521. file headers are free, 479. headers used out of 1000. &>frg /fr DL2: has 820. blocks free, 9420. blocks used out of 10240. Largest contiguous space = 131. blocks 521. file headers are free, 479. headers used out of 1000. &> .ENABLE SUBSTITUTION ; ; Command file to assemble and build the FILES-11 disk fragmentation ; statistics program (FRG) on a mapped RSX-11M or RSX-11M-PLUS system. ; PIP FRG.OBJ;*/DE/NM,FRG.TSK;*,FRG.LST;*,FRG.MAP;*,FRGBLD.TMP;* MAC FRG,FRG/-SP=FRG .; MAC FRG=FRG .IF EQ .GOTO CONT ; ; Assembly error. Sorry, FRG is not ready to run. ; PIP FRG.OBJ;*/DE/NM .STOP .CONT: .SETS LIBOP "" .; .; LB:[1,1]FCSRES is vectored, 4kw overlaid library, supplied by DEC. .; .TESTFILE LB:[1,1]FCSRES.STB .IF EQ 1 .SETS LIBOP "RESLIB =LB:[1,1]FCSRES/RO:7" .; .; LB:[1,1]FSCRESCOM is fake .STB acting as vectored, 8kw common block. .; This "fake" .STB is supplied on (E.V.) systems only. .; .TESTFILE LB:[1,1]FCSRESCOM.STB .IF EQ 1 .SETS LIBOP "RESCOM =LB:[1,1]FCSRESCOM/RO:6" .OPEN FRGBLD.TMP .ENABLE DATA ; Date: 7/12/77 ; By: D. Michaud ; Borg Instruments ; Delavan Wisconsin ; ; Modified 6/15/78 by Greg Thompson ; - changed it to double precision ; - modified the error messages ; - allowed unit number 0 as a default ; - added largest free block output ; - lower cased the output ; - changed the hole ranges ; - allowed non-priv user to use it ; - build it /PR:0 since it doesn't reference Exec ; ; Modified for P/OS by R Uleski, Baker Instruments 23-Apr-86 ; ; Modified for RSX-11M V4.2 by : ; ; Eduard Vopicka, Computing centre, ; Prague University of Economics, Czechoslovakia ; ; E. Vopicka. 26-Sep-87 ; - improve overhead and make smaller ( use FILES-11 QIOs ; instead of FCS OPEN$ / CLOSE$ to access / deaccess ; bitmap file ) ; - build /-PR in order to allow flying install for non- ; privileged users. This also disallows access to ; volumes not mounted by the user ; - display statistics for SY0: if device name omitted ; - allow omission of trailing collon in device name ; specification ; - convert to lower case ; ; E. Vopicka 07-Dec-87 M03.00 ; - erase the entire screen before outputting and change ; screen format ; - added PIP-like display of total, free and in-use ; file headers ; - split single, long terminal QIO into more shorten QIOs ; - modified to run under RSX-11M-PLUS V3.0 (the high byte ; of U.CW2 is possibly non-zero on M+) ; ; E. Vopicka 12-Dec-87 M03.01 ; - check the volume structure level ; (H.VLEV in the home block) ; - check for valid FILES-11 volume ; (H.INDF in the home block) ; ; E. Vopicka 22-Dec-87 M03.02 ; - do not allow any ZAP changes in ISTRNG ; ; E. Vopicka 14-Sep-88 M03.03 ; - Fix $DSW to look better after syntax error ; ; E. Vopicka 10-Apr-90 M03.04 ; - Keep count of bits processed during volume bitmap ; processing and stop on end of volume, e.g. do not ; process volume bitmap bits describing non-existent ; (past end of volume - device size) blocks. ; ; E. Vopicka 12-Apr-90 M03.05 ; - Modify to use SOB instead of DEC/BNE. ; - Use CLC/ROR instead of ASR. ; ; E. Vopicka 24-Apr-91 M03.06 ; - Add /FR switch to produce PIP/FR like output. ; ; E. Vopicka 27-Apr-91 M03.07 ; - Modify to use EXTTSK or EXTSCT TKB option. ; ; E. Vopicka 08-Aug-95 M03.08 ; - Add support for big disks, handle different filesystem ; and device sizes. ; ; E. Vopicka 13-May-96 M03.09 ; - Clean up a bit, remove some debug code. ; FRG/-PR/CP/-FP,FRG/MA/-WI/-SP=FRG ;FRG/-PR/CP/-FP,FRG/MA/-WI/-SP=FRG,LB:[1,1]DEBIL/DA / TASK =...FRG PRI =51 STACK =32 UNITS =2 ASG =TI000:1,TI000:2 ; ; About the magic "n" below: it is the blocking factor used for ; BITMAP.SYS and INDEXF.SYS I/O. Must be >=3. The maximum useful ; value of n is the size minus 1 (in disk blocks) of the largest ; [0,0]BITMAP.SYS;1 on your system. .VARS. represents the value ; of .VARS. symbol from FRG.MAP. The blocking factor is displayed ; on on the first line of FRG output as (n.). ; ; For PLAS systems: EXTTSK = <<.VARS.>+>/2 ; Caution: Octal values for this calculation, then convert result ; from octal to decimal. (EXTTSK: should be expressed in decimal, ; word (2 byte) units.) ; EXTTSK =2630 ; ; For non-PLAS systems: EXTSCT=.99999:<.VARS.>+ ; Caution: Values and result in octal for this calculation. ; (EXTSCT: should be expressed in octal, 1 byte units.) ; ;EXTSCT =.99999:12214 ; .DISABLE DATA .IF LIBOP NE "" .DATA ; .IF LIBOP NE "" .DATA 'LIBOP' .ENABLE DATA ; ; Define length of QIOs used to print formatted output. The default value ; of 400(8) should be changed to a larger number if your system has a large ; terminal driver pool. I hope that 400(8) is good choice for both small ; and large systems. ; GBLPAT =FRG:QIOLEN:400 / .DISABLE DATA .CLOSE TKB @FRGBLD.TMP .IF EQ .GOTO CONT ; ; Build error. Sorry, FRG is not ready to run. ; PIP FRG.TSK;*/DE/NM,FRG.OBJ;* .STOP .CONT: ; ; All done, FRG is ready to run. Good luck !!! ; -- "Eduard Vopicka, Computing Centre, Prague University of Economics, W. Churchill Square 4, CZ 130 67 Prague 3"