Multiprocessing Services
In computing, Multiprocessing Services is a component of Classic Mac OS and Carbon allowing programs to perform work across multiple preemptively-scheduled threads of execution.
History
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 Classic Mac OS
In 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 Mac OS X
In Mac OS X, Multiprocessing Services is implemented using POSIX threads.[9] Applications using Multiprocessing Services are preemptively scheduled with other tasks running on the system.[6]
References
- ^ 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.