Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!cbatt!ihnp4!inuxc!inuxf!matt From: matt@inuxf.UUCP Newsgroups: comp.os.minix Subject: Disk Scheduling (& note to Dr T.) Message-ID: <236@inuxf.UUCP> Date: Thu, 19-Feb-87 20:33:16 EST Article-I.D.: inuxf.236 Posted: Thu Feb 19 20:33:16 1987 Date-Received: Sun, 22-Feb-87 15:38:51 EST Distribution: net Organization: AT&T Consumer Products, Indianapolis Lines: 51 I am planning on adding true disk scheduling to MINIX as part of an over-all study of operating system efficiencies. The existing method in MINIX is a First-come-first-served pipeline with no disk i/o queue. I would like to through out a straw man proposal for a method so that the alert among you folks can poke holes, make suggestions, etc. My first shot goes something like this: 1) Alter floppy_task() on line 2540 of 'the book' so that all it does is receive a message, check for panic and queue up the request in a table of pending process-message pairs. It then loops back to receive another message. 2) Create a new procedure, say floppy_sched(), that examines the queued requestes for the shortest seek time request and issues a do_rdwt() for that request. 3) floppy_sched() then will prepare a return message for the proper process and send() a reply to that process. 4) floppy_sched() re-examines the queue and the process continues. A couple of questions come to mind. How do I get floppy_sched() up and running in the first place? Make it PUBLIC (external or global) and allow init() to call it as the system is coming up? This seems to violate the whole task concept where the user processes (ie init()) are not supposed to have access to task calls. There must be a clean method for doing this but I have not run across it (I've only had the book three days now). This seems to be fairly straight forward but I am not sure of the possible race conditions or other hard to debug situations I may be headed for. Is it not true that floppy_task() can only receive from one process at a time? If so than I dont think the queue could be screwed up by simultaneous calls to floppy_task(). Any comments? --------------------------------------------------------- Dr Tanenbaum: I have tried three different paths to mail my thanks to you with no success. I did reach Mr. Fagen at PH and he gave his OK. I have talked to Prof Ganesh (dont remember his last name :-) and I should receive his package shortly. Again thanks for the info - my whole class appreciates it. Matt Verner UUCP: ...ihnp4!inuxc!matt AT&T Graphics Software Labs AT&T: (317) 844-4364 Indianapolis, IN "The whole point of this sentence is to clearly explain the point this sentence is making."