In computing,Multiprocessing Services is a component of theClassic Mac OS and the retiredCarbon API allowing programs to perform work across multiplepreemptively scheduled threads of execution.
Multiprocessing Services was introduced in 1996 with the release ofSystem 7.5.3.[1]
Multiprocessing Services 2.0, introduced inMac OS 8.6,[2] is a backwards-compatible major release that increases the level of integration preemptive tasks have with the rest of the system.[3]
Multiprocessing Services 2.1, introduced inMac OS 9,[1] adds support for devices with more than 1 GB of RAM.[4]
In the Classic Mac OS, Multiprocessing Services is not the only threading mechanism; cooperatively scheduled threads can be created with the Thread Manager.[5] While applications using Multiprocessing Services have their threads preemptively scheduled, the application as a whole is still cooperatively scheduled with other running applications.[6] Non-Multiprocessing Services tasks remain scheduled on a single processor, and tasks using theMacintosh Toolbox cannot be preemptively scheduled.[7]
When a process uses Multiprocessing Services, in addition to the preemptive tasks it creates, an additional task exists,deth, which waits for other tasks created by the process to terminate and cleans up their resources when they do.[8]
In macOS, Multiprocessing Services is implemented usingPOSIX threads.[9] Applications using Multiprocessing Services are preemptively scheduled with other tasks running on the system.[6] Multiprocessing tasks are distinct fromMach tasks.[10]
InOS X 10.8, Multiprocessing Services was deprecated with the rest of Carbon, withGrand Central Dispatch suggested as a replacement.[11] InmacOS 10.15, support for Multiprocessing Services ended with the removal of 32-bit application support, which included all Carbon applications.[12]