Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!bloom-beacon!apple!vsi1!ubvax!ardent!rap!rap From: rap@rap.ardent.com (Rob Peck) Newsgroups: comp.sys.amiga Subject: Re: AmigaDOS scheduling Message-ID: <6560@ardent.UUCP> Date: 19 May 89 17:00:30 GMT References: <17148@usc.edu> <24279@agate.BERKELEY.EDU> <18268@cup.portal.com> <17183@usc.edu> <21814@srcsip.UUCP> <18037@cisunx.UUCP> <1861@internal.Apple.COM> <761@boing.UUCP> <216@doctor.Tymnet.COM> Sender: news@ardent.UUCP Reply-To: rap@rap.ardent.com (Rob Peck) Organization: Ardent Computer Corp., Sunnyvale, CA Lines: 46 In article <216@doctor.Tymnet.COM> jms@doctor.Tymnet.COM (Joe Smith) writes: > >After listening to Bernardo Huberman at Xerox PARC, I found a way to include >some of his ideas about "Computational Ecologies" to the scheduler. The main >idea is that each background task gets to say "I want N units of CPU usage >per unit time". If there are only 2 programs, the first wanting 2 units and .... .... I think this kinda thing could be accomplished by running a single, high priority task-rescheduler, that deliberately sleeps letting everyone else run. Lets say the program is called "LAUNCH" and it automatically detaches from the CLI that starts it. RUN LAUNCH in the startup sequence to get it going, then later, when starting new programs that are to run in gimmee-atleast-some-timeslices mode: LAUNCH 30 PROGRAM Parameters Parameters Parameters where the first parameter to LAUNCH specifies the desired percentage of time slices that the launcher should try to assign. If multiple programs were to be launched this way, the program would adjust and allot the time slices on the basis of who had the highest percentage specified and apportion them accordingly. Each time it'd wake up, it'd lower the priority of whichever of the launched tasks was currently running and raise the priority of the next one in line. ONLY programs started by LAUNCH would be affected, because they were all started deliberately as background tasks, and the priority level would, I suppose, be raised from minus-something to zero for their time allotment. Word processing programs, for example, would hardly notice background tasks running along because they spend such a high percentage of their time waiting for keystrokes and thereby leave time slices available for ray-tracers and the like. (If LAUNCH is already running, the new incarnation just sends a message to the first-run version with the new program name, slice priority and parameters, then dies.) And to remove LAUNCH from memory, perhaps: LAUNCH 0 Just a thought. Rob Peck