From mboxrd@z Thu Jan 1 00:00:00 1970 MIME-Version: 1.0 In-Reply-To: <65984946d00c8ebe35122418a4f83cb1@mikro.quanstro.net> References: <65984946d00c8ebe35122418a4f83cb1@mikro.quanstro.net> From: Ramakrishnan Muthukrishnan Date: Mon, 23 Jun 2014 21:36:00 +0530 Message-ID: To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> Content-Type: text/plain; charset=UTF-8 Subject: Re: [9fans] [GSOC] plan9 kernel scheduler Topicbox-Message-UUID: fcb70e70-ead8-11e9-9d60-3106f5b1d025 On Sun, Jun 22, 2014 at 5:40 PM, erik quanstrom wrote: > On Sat Jun 21 21:47:37 EDT 2014, jyu@cowsay.org wrote: >> +1 what Yoann said. :-) On SMP systems, all maches share a global run >> queue, and maches tend to try grabbing procs that have run on it >> before (affinity). Take a look at port/proc.c in particular, where a >> lot of the scheduling logic is implemented. > > the (base) plan 9 scheduler uses a global priority based round robin > scheduler. priority is absolute; a process of priority n+1 > will always run before a process of priority n. processes within > a priority are run in round-robin fashion. recent cpu usage lowers > a processes' priority. there is soft affinity that tends to rerun a > process on the same cpu when practical, though this mechanism is > too hard inthe standard distribution. there is hard affinity; one can > wire a proc to a mach. > > a key detail of the scheduler is the set of priorities with runnable > processes is kept in a bitvector named "runvec". significantly less > than 32 priorities are used. > > there is also an edf scheduler. i can't find the iwp9 paper atm. Is it this one? "Lightweight EDF Scheduling with Deadline Inheritance" by Jansen, S.J.Mullender et al.