Path: utzoo!dciem!chk From: chk@dciem.dciem.dnd.ca (C. Harald Koch) Newsgroups: comp.sys.amiga Subject: Re: AmigaDOS scheduling Message-ID: <1751@dciem.dciem.dnd.ca> Date: 23 May 89 17:39:07 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> <6560@ardent.UUCP> Reply-To: chk@dretor.dciem.dnd.ca (C. Harald Koch) Organization: NTT Systems, Inc., Toronto, Canada Lines: 22 In article <6560@ardent.UUCP> rap@rap.ardent.com (Rob Peck) writes: [ description of a process that changes priorities of other processes in the system deleted. ] The Amiga Exec calls itself through its own jump table in a lot of places. In particlular it indirects via -$24(ExecBase) whenever an interrupt occurs, to check if task rescheduling is necessary. It seems to me that it would be possible (and relatively easy!) to replace this jump vector (and maybe a couple of other entry points that massage the task queues) to install any arbitrary scheduling algorithm. The only problem I can see with this is that there are tasks out there that assume the current scheduling algorithm. Some systems that I have come across assume that a really high priority task will get all the CPU whenever it wants it. This task then avoids locking certain structures because it knows that nobody else has access while it runs. Of course, this is a bad practice, and is rare, so it shouldn't be a major problem. -- C. Harald Koch NTT Systems, Inc., Toronto, Ontario chk@gpu.utcs.utoronto.ca, chk@dretor.dciem.dnd.ca, chk@chkent.UUCP