Re: Comments on the KSE option



The aim of the fair scheduling code is to ensure that if you, as a user,
make a process that starts 1000 threads, and I as a user, make an
unthreaded process, then I can still get to the CPU at somewhat similar
rates to you. A naive scheduler would give you 1000 cpu slots and me 1.

The default may be to give each process the same share but
in general one would want even more control over scheduling.
For instance I may want one group of processes to get 10%
share (it may be encoding/serving a video stream in real
time) and the remaining shared by everyone else. You need
waited fair queuing or some such. This can allow one to
structure an application in a natural way without having to
worry about how scheduling will be impacted by a choice of
threads vs processes.

Have you guys looked at any networking related papers on
scheduling? I see a lot of similarities in the goals and
some algorithms may be useful. One can think of a tcp stream
or traffic between two endpoints as equivalent of a thread.

May be by throwing out all of KSE and simplifying the
scheduler you/we have an opportunity to apply the lessons
learned and come up with a leaner, more efficient and
flexible design. The default scheduler can be dirt simple
but easy to replace or enhance, may be with a loadble module,
so that one can experiment with different algorithms without
having to take the system down as well as punt to a user
process for more complex decisions. This is assuming a very
simple plugin API is possible (definitely not a given).

FWIW.

-- bakul
_______________________________________________
freebsd-current@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscribe@xxxxxxxxxxx"



Relevant Pages

  • One minute delay when booting 2.6.24.1
    ... Switched to high resolution mode on CPU 1 ... io scheduler anticipatory registered ... # Infrared-port device drivers ...
    (Linux-Kernel)
  • [RFC][PATCH] O(1) Entitlement Based Scheduler
    ... This patch is a modification of the Oscheduler that introduces ... _entitlement_ to CPU resources that is determined by the number of _shares_ ... This patch provides both soft and hard CPU usage rate caps per ... one getting the most can be given a better priority, ...
    (Linux-Kernel)
  • Scheduler Economy prototype patch for CFS
    ... X should get more CPU time simply ... the clients, not relative to any client individually. ... today i've implemented a quick prototype of this "Scheduler Economy" ... * Scheduler work account object: it consists of the price, ...
    (Linux-Kernel)
  • Re: forget coorporative multitasking in .NET ?
    ... However than came IBM with "multitasking", probably with the same reasons as ... with multitasking you had to tell what part of memory would ... > the processor gave execution back to the scheduler. ... > physically halted as another thread was given the CPU. ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: Re: OSDL Bug 3770
    ... We're discussing the fact that on SMP machines, ... N> CPU to be starved, while tasks on another CPU with the same low ... L> could had run on another CPU if the scheduler had decided otherwise). ... Does Linux tolerate hard CPU binding? ...
    (Linux-Kernel)