Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Run queue
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{inline|date=November 2024}} In modern computers many [[Process (computing)|processes]] run at once. Active processes are placed in an array called a '''run queue''', or '''runqueue'''. The run queue may contain priority values for each process, which will be used by the [[Scheduling (computing)|scheduler]] to determine which process to run next. To ensure each program has a fair share of resources, each one is run for some time period (quantum) before it is paused and placed back into the run queue. When a program is stopped to let another run, the program with the highest priority in the run queue is then allowed to execute. Processes are also removed from the run queue when they ask to ''sleep'', are waiting on a resource to become available, or have been terminated. In the [[Linux]] operating system (prior to kernel 2.6.23), each CPU in the system is given a run queue, which maintains both an active and expired array of processes. Each array contains 140 (one for each priority level) pointers to [[doubly linked list]]s, which in turn reference all processes with the given priority. The scheduler selects the next process from the active array with highest priority. When a process' quantum expires, it is placed into the expired array with some priority. When the active array contains no more processes, the scheduler swaps the active and expired arrays, hence the name ''O''(1) scheduler. In [[UNIX]] or [[Linux]], the [[Sar in UNIX|sar]] command is used to check the run queue. The [[vmstat]] [[UNIX]] or [[Linux]] command can also be used to determine the number of processes that are queued to run or waiting to run. These appear in the 'r' column. Example: $ vmstat procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 2 0 0 4579152 324416 4619528 0 0 402 236 3357 15 20 2 78 0 0 There are two models for Run queues: one that assigns a Run Queue to each physical processor, and the other has only one Run Queue in the system ==See also== * [[Completely Fair Scheduler]], the scheduling algorithm used by Linux since kernel 2.6.23 ==References== * Tanenbaum AS (2008) ''Modern Operating Systems'', 3rd ed., p. 753-4. Pearson Education, Inc. {{ISBN|0-13-600663-9}} * Silberschatz, Galvin, Gange (2012) ''Operating System Concepts'', 9th ed.. Wiley, {{ISBN|978-1-118-55963-5}} {{DEFAULTSORT:Run Queue}} [[Category:Scheduling (computing)]] [[Category:Linux kernel]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:ISBN
(
edit
)
Template:Inline
(
edit
)