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
Scheduling (computing)
(section)
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!
===Classic Mac OS and macOS=== Mac OS 9 uses cooperative scheduling for threads, where one process controls multiple cooperative threads, and also provides preemptive scheduling for multiprocessing tasks. The kernel schedules multiprocessing tasks using a preemptive scheduling algorithm. All Process Manager processes run within a special multiprocessing task, called the ''blue task''. Those processes are scheduled cooperatively, using a [[round-robin scheduling]] algorithm; a process yields control of the processor to another process by explicitly calling a [[blocking function]] such as <code>WaitNextEvent</code>. Each process has its own copy of the [[Thread Manager]] that schedules that process's threads cooperatively; a thread yields control of the processor to another thread by calling <code>YieldToAnyThread</code> or <code>YieldToThread</code>.<ref name=appletn2028>{{cite web|url=https://developer.apple.com/library/archive/technotes/tn/tn2028.html |title= Technical Note TN2028: Threading Architectures |website=developer.apple.com |access-date=2019-01-15}}</ref> macOS uses a multilevel feedback queue, with four priority bands for threads{{snd}}normal, system high priority, kernel mode only, and real-time.<ref>{{cite web|url=https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/KernelProgramming/scheduler/scheduler.html |title= Mach Scheduling and Thread Interfaces |website=developer.apple.com |access-date=2019-01-15}}</ref> Threads are scheduled preemptively; macOS also supports cooperatively scheduled threads in its implementation of the Thread Manager in [[Carbon (API)|Carbon]].<ref name=appletn2028/>
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)