cpu scheduler
Matthew Dillon
dillon at apollo.backplane.com
Tue Aug 26 13:15:36 PDT 2008
:to: dragonfly users, developers and experts
:
:I'm a novice user to dragonfly and I'm currently studying an operating
:system subject. Can someone explain the cpu scheduler that dragonfly
:implement? What algorithm is used in the implementation? If I'm
:running a single-processor, how does it work? If I'm running a
:multi-processor, how does it work? How does it differs from solaris,
:freebsd and linux cpu schedulers?
:
:I may sound stupid to my questions, so please understand.
:
:regards,
:siquijor philips
I can give you a basic outline but for the most part you have to
mess around to understand the scheduling completely.
The kernel has a thread scheduler, called LWKT. This is a fixed priority
non-preemptive scheduler... very simple in design. Each cpu has a LWKT
scheduler.
The user process scheduler takes all the user processes and schedules
one on each cpu via LWKT at a time. The user process scheduler is
responsible for preempting the user process and switching to another
user process. There is always at most one user process scheduled to
the LWKT scheduler on each cpu.
We currently have two schedulers in the tree,
/usr/src/sys/kern/usched_bsd4.c and /usr/src/sys/kern/usched_dummy.c.
The usched_dummy.c file is very well documented and describes the
API between the user process scheduler and the LWKT scheduler.
-Matt
Matthew Dillon
<dillon at backplane.com>
More information about the Users
mailing list