iv@hal6000.UUCP (11/29/88)
>> Maybe. Some vendors have taken to having sync() delay until the buffers >> have actually been written. There is a problem with this approach if implemented incorrectly in that if sync() [or, update() as it is called in the kernel] tries to flush *all* dirty buffers and inodes on an extremely active system, it may never come back... >> Xenix has a similiar feature. There is a system call shutdn() which >> locks out all other processes by diddling the process table or setting a >> flag for the scheduler to check. Actually, it sets a variable called `Hogproc' to it's own Proc[] entry. >> It then unmounts [ as far as I can >> tell; the volumes are flagged as 'clean' ] each device causing the >> buffers to get flushed [ or maybe it calls bflush() or whatever first? ] Well, it actually cheats. First, it writes `clean' superblocks out for each mounted filesystem, then it calls update() to write the modified inodes, which calls bflush(NULL) to schedule ALL modified blocks for writing. >> It is used by fsck amongst other things to fix up the root device during >> a cleaning. This is done because the system call shutdn() has a provision for handing the kernel a modified root superblock. No more "BOOT UNIX, NO SYNC" cute messages from fsck. Actually, they finally replaced that in XENIX 3 with: ***** REBOOT (RESET OR CYCLE POWER WITHOUT HALTSYS OR SYNC!) ***** Progress. ;-) ---- IV (aka John Elliott IV) Domain: iv@hal6000.Tandy.COM Tandy Systems Software UUCP: ...!killer!sys1!hal6000!iv 1300 Two Tandy Center or: ...!decvax!microsoft!trsvax!hal6000!iv Fort Worth, TX 76102 Phone: 817/390-2701; 9:30am-6:00pm CST [This information was provided by an individual and is not nor should be construed as being provided by Radio Shack or Tandy Corporation. Radio Shack and/or Tandy Corporation have no obligation to support the information provided. They wouldn't know what to do with a UNIX wizard if one one bit them on the nose, anyway. This note will "rm -f $0" in 5 secs. No, "rm -if $0". No, uh, "rm -i $0". No, wait, "rm $0"..]