Multiprocessing Services
In computing, Multiprocessing Services is a component of the Classic Mac OS and the retired Carbon API allowing programs to perform work across multiple preemptively scheduled threads of execution.
Release history
[edit]Multiprocessing Services was introduced in 1996 with the release of System 7.5.3.[1]
Multiprocessing Services 2.0, introduced in Mac 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 in Mac OS 9,[1] adds support for devices with more than 1 GB of RAM.[4]
In the Classic Mac OS
[edit]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 the Macintosh 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
[edit]In macOS, Multiprocessing Services is implemented using POSIX threads.[9] Applications using Multiprocessing Services are preemptively scheduled with other tasks running on the system.[6] Multiprocessing tasks are distinct from Mach tasks.[10]
In OS X 10.8, Multiprocessing Services was deprecated with the rest of Carbon, with Grand Central Dispatch suggested as a replacement.[11] In macOS 10.15, support for Multiprocessing Services ended with the removal of 32-bit application support, which included all Carbon applications.[12]
References
[edit]- ^ a b "Ars Technica: Macworld 2000 NY - Page 4 - (7/2000)". archive.arstechnica.com. Retrieved 2022-05-15.
- ^ "Using Multiprocessing Services". developer.apple.com. Retrieved 2022-05-15.
- ^ "Technical Note TN1163: Mac OS 8.6". Apple Developer Connection. 1999-09-28. Archived from the original on 2000-12-12. Retrieved 2022-05-14.
- ^ "Technical Note TN1176: Mac OS 9". Apple Developer Connection. 2000-04-24. Archived from the original on 2000-12-04. Retrieved 2022-05-14.
- ^ Learning Carbon. O'Reilly Media. 2001. pp. 294–295. ISBN 9780596001612.
- ^ a b "Using Multiprocessing Services". developer.apple.com. Retrieved 2022-05-15.
- ^ Gruman, Galen (February 1997). "Time for a New OS?". Macworld. p. 126. Retrieved 2022-05-15.
- ^ Vega, René (2001-10-25). "PowerMacInfo info". Newsgroup: comp.sys.mac.programmer.help. Retrieved 2022-05-15.
- ^ Kuehne, Robert; Sullivan, J. (2007). OpenGL Programming on Mac OS X. Pearson Education. ISBN 9780132701808.
- ^ Singh, Amit (2006-06-19). Mac OS X Internals: A Systems Approach (paperback). Addison-Wesley Professional. p. 769. ISBN 978-0-13-270226-3.
- ^ "Carbon Core Deprecations". developer.apple.com. Retrieved 2022-05-15.
- ^ "Review: macOS Catalina Cuts Ties With the Past While Ushering in the Future". 512 Pixels. 2019-10-07. Retrieved 2022-05-15.