Path: utzoo!mnetor!uunet!nuchat!peter From: peter@nuchat.UUCP (Peter da Silva) Newsgroups: comp.sys.amiga Subject: Re: AmigaDos don't thrash no more! Message-ID: <665@nuchat.UUCP> Date: 20 Feb 88 19:22:12 GMT References: <8504@sunybcs.UUCP> Organization: Public Access - Houston, Tx Lines: 52 In article <8504@sunybcs.UUCP>, ugpete@sunybcs (Peter Theobald) writes: > AmigaDos should sort disk requests by track... > This would eliminate thrashing, and would speed up disk accesses > to boot! I think this is similar to what a clone of Peter da Silva meant by > single-threading loadSegs. Alas, this wouldn't help. Here's what would happen. Proc a: loading a file that's on tracks 10 and 11. Proc b: ditto for 20 and 21 Proc c: ditto for 30 and 31 All procs do their first requests. Proc a gets its block back, and requests the next block. Meanwhile disk is heading out to satisfy procs b and c. Proc b gets its block back, and requests the next block. Meanwhile disk is heading out to satisfy c. Proc c gets its block back, and requests the next block. Meanwhile disk is heading back to satisfy procs a and b. Proc b gets its block back, and requests the next block. Meanwhile disk is heading back to satisfy proc a. Proc a gets its block back, and requests the next block. Meanwhile disk is heading out to satisfy procs b and c. The problem is that ALL requests for ALL files aren't out there at the same time. What would help would be a few track buffers. Executable files tend to be pretty contiguous, so: All procs do their first requests. Proc a gets its block back, and requests the next block. Meanwhile disk is heading out to satisfy procs b and c. However the next 10 requests from proc A will be satisfied from the track cache. Proc a finally requests a block on another track... Proc b gets its block back, and requests the next block. Meanwhile disk is heading out to satisfy c. However the next 10 requests from proc B will be satisfied from the track cache. Proc c gets its block back, and requests the next block. Meanwhile disk is heading back to satisfy procs a and b. However the next 10 requests from proc C will be satisfied from the track cache... Still shuffling, but 11 times as fast. -- -- a clone of Peter (have you hugged your wolf today) da Silva `-_-' -- normally ...!hoptoad!academ!uhnix1!sugar!peter U -- Disclaimer: These aren't mere opinions... these are *values*.