Subject: Re: Floating point in the kernel
To: Jason Thorpe <thorpej@nas.nasa.gov>
From: Jukka Marin <jmarin@pyy.jmp.fi>
List: tech-kern
Date: 09/19/1998 23:03:24
On Sat, Sep 19, 1998 at 12:41:13PM -0700, Jason Thorpe wrote:
>  > I guess nobody cares, but.. ;)  On the Amiga, the scheduler always
>  > picks the highest-priority process that is ready to run.  Processes
>  > that are at same priority level are run in round-robin system.  This
>  > is simple, but it allows one busy-looping high-priority process kill
>  > the whole system, which is unacceptable, of course.  Something like
>  > this + a safeguard system maybe..? :)
> 
> That's pretty much how the BSD scheduler works, too... but it's important
> to note that every clock interrupt the process priorities are recomputed,
> and a program may be preempted.

I see.  On the Amiga, programs can be preempted as well, but the priorities
are never altered by the system.  For example, there's a process (actually,
it's a task (a subset of process, in Amiga terms) called input.device which
handles keyboard and mouse input.  This task runs at priority of 20, which
is high enough for it to get all the CPU it needs.  Thanks to this, the
Amiga mouse pointer always moves smoothly, no matter how busy the system
gets.  Makes it feel kind of annoying when the mouse pointer in X stops
every time the machine is paging heavily (which seems to happen quite often
on my machines, sigh).

  -jm