LWN: Comments on "The staircase scheduler" https://lwn.net/Articles/87729/ This is a special feed containing comments posted to the individual LWN article titled "The staircase scheduler". en-us Mon, 13 Oct 2025 19:21:05 +0000 Mon, 13 Oct 2025 19:21:05 +0000 https://www.rssboard.org/rss-specification lwn@lwn.net The staircase scheduler https://lwn.net/Articles/88364/ https://lwn.net/Articles/88364/ sitaram &gt; Thus interactive tasks, which normally sleep quite a bit, should stay near<br>&gt; the top of the staircase and be responsive, while CPU hogs spend much of<br>&gt; their time on the lower steps.<p>sounds very much like delay pools in squid, which provide a neat way of penalising bulk downloads while keeping normal &quot;interactive&quot; sufing response good!<p>[I *have* seen the other posts with extracts from OS books; just want to give a different analogy is all...] Sun, 06 Jun 2004 06:32:47 +0000 The staircase scheduler https://lwn.net/Articles/88089/ https://lwn.net/Articles/88089/ error27 &gt; Multilevel feedback queues, however, allow a process to move between<br>queues.<p>Right. With both the regular scheduler and the stair case scheduler you have 140 queues that represent 140 different priorities. You execute the top priorities first in a round robin format. The trick with the stair case scheduler is the logic behind how the processes move from one queue to the other.<p>&gt; There are a number of variations on this scheme.<p>Exactly. In some ways, you could say that this was &quot;just&quot; a new variation. But in other ways, it's a pretty inovative variation. ;)<p> Fri, 04 Jun 2004 02:40:23 +0000 The staircase scheduler https://lwn.net/Articles/88081/ https://lwn.net/Articles/88081/ farnz The only time a process falls down is if it consumes all its timeslices. Thus, a process that has been placed on the lowest step has consumed <i>n</i> timeslices at each of the priorities <i>Base</i> through <i>Base-n</i>. It can only fall off again if it runs for <i>n</i> timeslices, thus your scenario cannot occur. Fri, 04 Jun 2004 00:08:33 +0000 The staircase scheduler https://lwn.net/Articles/87975/ https://lwn.net/Articles/87975/ gallir If you read any OS book, it's comprehensively explained. I suppose you <br>don't expect to give a full description in a &quot;title&quot; :-). <br> <br>For example, taking an old Peterson/Silberschatz book: <br> <br>&quot;... Multilevel feedback queues, however, allow a process to move between <br>queues. The idea is to separate out processes with a different cpu-burts <br>characteristics. If a process uses too much cpu time, it will be moved to <br>a lower priority queue. This scheme leaves I/O-bound and interactive <br>processes in the higher priority queues. Similarly, a process which waits <br>too long in a lower-priority queue may be moved to a higher priority <br>queue. This is a form of aging that would pevent starvation. ...&quot; <br> <br>Or from a Stalling's book: <br> <br>&quot;... This approach is known as multilevel feedback, meaning that the <br>operating system allocates the processor to a process, and when the <br>process blocks or is preempted, feeds it back into one of several queues. <br>There are a numbre of variations on this scheme. A simple version is to <br>perform preemption inthe same fashions for round-robin: at periodic <br>intervals...&quot; <br> <br>What I mean, a lot of &quot;new methods&quot;, for example those applied to CPU and <br>I/O schedulers are already described, discussed, and compared in the <br>literature since the '70 or '80s. Thu, 03 Jun 2004 15:30:35 +0000 The staircase scheduler https://lwn.net/Articles/87971/ https://lwn.net/Articles/87971/ mmarsh It's not obvious in the description, and I haven't looked through the code or any detailed technical docs, but what happens in the following case? Say you have a process that has, through grave misfortune, fallen off of the lowest step and been placed back *on* the lowest step. If there are n steps it'll wait there for n time slices, and if it still hasn't been run it'll fall off again. Does it get placed back on the lowest step as a default? Does it get elevated in priority as compensation for its patience? Can this just not occur (though I'd bet a contrived example could be constructed)? The nightmare scenario is that the scheduler tries to place it below the lowest step, resulting in an array bounds error and a kernel panic.<br> Thu, 03 Jun 2004 15:08:41 +0000 The staircase scheduler https://lwn.net/Articles/87965/ https://lwn.net/Articles/87965/ marduk This sounds too elegant. And even I can understand it. It can't possibly work! ;-) Thu, 03 Jun 2004 13:58:04 +0000 The staircase scheduler https://lwn.net/Articles/87857/ https://lwn.net/Articles/87857/ error27 To be honest, the definition of "multilevel feedback queues" is too vague to be worthwhile. The old scheduler fits the definition, and the new scheduler doesn't change that at all. What the new scheduler changes is how the processes move from one queue to the other. The stair case scheduler is pretty inovative actually. <p> If you want to learn more about the difficult issues for schedulers read Con's write up <a href="http://kerneltrap.org/node/view/780">here</a>. <p> It's pretty weird to not have an expired array. It seems like a reasonable scheduler design because it obviously gives priority to interactive processes and it doesn't starve any processes. I can see how this would be simpler to code. It's a nice design. I guess the real proof is in testing. :) Thu, 03 Jun 2004 05:08:41 +0000 The staircase scheduler https://lwn.net/Articles/87851/ https://lwn.net/Articles/87851/ gallir Again... isn't it the same as the old-well-known &quot;multilevel feedback <br>queues&quot; that appears in every OS book since MULTICS? <br> Thu, 03 Jun 2004 01:44:56 +0000