Multiprocessing Services

{{Short description|Component of Classic Mac OS}}

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

Multiprocessing Services was introduced in 1996 with the release of System 7.5.3.{{Cite web |title=Ars Technica: Macworld 2000 NY - Page 4 - (7/2000) |url=https://archive.arstechnica.com/wankerdesk/3q00/macworld2k/mwny-4.html |access-date=2022-05-15 |website=archive.arstechnica.com}}

Multiprocessing Services 2.0, introduced in Mac OS 8.6,{{Cite web |title=Using Multiprocessing Services |url=https://developer.apple.com/library/archive/documentation/Carbon/Conceptual/Multitasking_MultiproServ/03tasks/tasks.html |access-date=2022-05-15 |website=developer.apple.com}} is a backwards-compatible major release that increases the level of integration preemptive tasks have with the rest of the system.{{Cite web |date=1999-09-28 |title=Technical Note TN1163: Mac OS 8.6 |url=http://developer.apple.com/technotes/tn/tn1163.html#mpapi |url-status=dead |archive-url=https://web.archive.org/web/20001212074000/http://developer.apple.com/technotes/tn/tn1163.html#mpapi |archive-date=2000-12-12 |access-date=2022-05-14 |website=Apple Developer Connection}}

Multiprocessing Services 2.1, introduced in Mac OS 9, adds support for devices with more than 1 GB of RAM.{{Cite web |date=2000-04-24 |title=Technical Note TN1176: Mac OS 9 |url=http://developer.apple.com/technotes/tn/tn1176.html#mpapi |url-status=dead |archive-url=https://web.archive.org/web/20001204090800/http://developer.apple.com/technotes/tn/tn1176.html#mpapi |archive-date=2000-12-04 |access-date=2022-05-14 |website=Apple Developer Connection}}

In the Classic Mac OS

In the Classic Mac OS, Multiprocessing Services is not the only threading mechanism; cooperatively scheduled threads can be created with the Thread Manager.{{Cite book |title=Learning Carbon |publisher=O'Reilly Media |year=2001 |isbn=9780596001612 |pages=294–295 |language=en |author-link=Apple Inc.}} While applications using Multiprocessing Services have their threads preemptively scheduled, the application as a whole is still cooperatively scheduled with other running applications. Non-Multiprocessing Services tasks remain scheduled on a single processor, and tasks using the Macintosh Toolbox cannot be preemptively scheduled.{{Cite magazine |last=Gruman |first=Galen |date=February 1997 |title=Time for a New OS? |url=https://archive.org/details/sim_macworld_1997-02_14_2 |magazine=Macworld |page=126 |access-date=2022-05-15}}

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.{{Cite newsgroup |url=https://groups.google.com/g/comp.sys.mac.programmer.help/c/fqdq59fxQ1g/m/uSy4DSDLeJcJ |title=PowerMacInfo info |last=Vega |first=René |date=2001-10-25 |newsgroup=comp.sys.mac.programmer.help |access-date=2022-05-15}}

In macOS

In macOS, Multiprocessing Services is implemented using POSIX threads.{{Cite book |last1=Kuehne |first1=Robert |title=OpenGL Programming on Mac OS X |last2=Sullivan |first2=J. |publisher=Pearson Education |year=2007 |isbn=9780132701808 |language=en}} Applications using Multiprocessing Services are preemptively scheduled with other tasks running on the system.{{Cite web |title=Using Multiprocessing Services |url=https://developer.apple.com/library/archive/documentation/Carbon/Conceptual/Multitasking_MultiproServ/03tasks/tasks.html |access-date=2022-05-15 |website=developer.apple.com}} Multiprocessing tasks are distinct from Mach tasks.{{Cite book |last=Singh |first=Amit |url=https://books.google.com/books?id=K8vUkpOXhN4C |title=Mac OS X Internals: A Systems Approach (paperback) |date=2006-06-19 |publisher=Addison-Wesley Professional |isbn=978-0-13-270226-3 |pages=769 |language=en}}

In OS X 10.8, Multiprocessing Services was deprecated with the rest of Carbon, with Grand Central Dispatch suggested as a replacement.{{Cite web |title=Carbon Core Deprecations |url=https://developer.apple.com/library/archive/releasenotes/General/CarbonCoreDeprecations/index.html#//apple_ref/doc/uid/TP40012224-CH1-SW25 |access-date=2022-05-15 |website=developer.apple.com}} In macOS 10.15, support for Multiprocessing Services ended with the removal of 32-bit application support, which included all Carbon applications.{{Cite web |date=2019-10-07 |title=Review: macOS Catalina Cuts Ties With the Past While Ushering in the Future |url=https://512pixels.net/2019/10/macos-catalina-review/ |access-date=2022-05-15 |website=512 Pixels |language=en-US}}

References

{{Reflist}}

{{Classic Mac OS}}

Category:Classic Mac OS