Multiprocessing Services

Last updated

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.

Contents

Release 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 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. [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

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]

Related Research Articles

<span class="mw-page-title-main">Computer multitasking</span> Concurrent execution of multiple processes

In computing, multitasking is the concurrent execution of multiple tasks over a certain period of time. New tasks can interrupt already started ones before they finish, instead of waiting for them to end. As a result, a computer executes segments of multiple tasks in an interleaved manner, while the tasks share common processing resources such as central processing units (CPUs) and main memory. Multitasking automatically interrupts the running program, saving its state and loading the saved state of another program and transferring control to it. This "context switch" may be initiated at fixed time intervals, or the running program may be coded to signal to the supervisory software when it can be interrupted.

macOS Operating system for Apple computers

macOS is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and laptop computers it is the second most widely used desktop OS, after Microsoft Windows and ahead of ChromeOS.

<span class="mw-page-title-main">Thread (computing)</span> Smallest sequence of programmed instructions that can be managed independently by a scheduler

In computer science, a thread of execution is the smallest sequence of programmed instructions that can be managed independently by a scheduler, which is typically a part of the operating system. The implementation of threads and processes differs between operating systems. In Modern Operating Systems, Tanenbaum shows that many distinct models of process organization are possible. In many cases, a thread is a component of a process. The multiple threads of a given process may be executed concurrently, sharing resources such as memory, while different processes do not share these resources. In particular, the threads of a process share its executable code and the values of its dynamically allocated variables and non-thread-local global variables at any given time.

Carbon was one of two primary C-based application programming interfaces (APIs) developed by Apple for the macOS operating system. Carbon provided a good degree of backward compatibility for programs that ran on Mac OS 8 and 9. Developers could use the Carbon APIs to port (“carbonize”) their “classic” Mac applications and software to the Mac OS X platform with little effort, compared to porting the app to the entirely different Cocoa system, which originated in OPENSTEP. With the release of macOS 10.15 Catalina, the Carbon API was officially discontinued and removed, leaving Cocoa as the sole primary API for developing macOS applications.

<span class="mw-page-title-main">QNX</span> Real-time operating system (RTOS) software

QNX is a commercial Unix-like real-time operating system, aimed primarily at the embedded systems market. QNX was one of the first commercially successful microkernel operating systems.

In computing, scheduling is the action of assigning resources to perform tasks. The resources may be processors, network links or expansion cards. The tasks may be threads, processes or data flows.

<span class="mw-page-title-main">Mac OS X 10.0</span> First major release of Mac OS X

Mac OS X 10.0 is the first major release of Mac OS X, Apple's desktop and server operating system. It was released on March 24, 2001, for a price of $129 after a public beta.

<span class="mw-page-title-main">Mac OS 8</span> 1997 Classic Mac OS operating system by Apple and eighth major release

Mac OS 8 is an operating system that was released by Apple Computer on July 26, 1997. It includes the largest overhaul of the classic Mac OS experience since the release of System 7, approximately six years before. It places a greater emphasis on color than prior versions. Released over a series of updates, Mac OS 8 represents an incremental integration of many of the technologies which had been developed from 1988 to 1996 for Apple's overly ambitious OS named Copland. Mac OS 8 helped modernize the Mac OS while Apple developed its next-generation operating system, Mac OS X.

Copland is an operating system developed by Apple for Macintosh computers between 1994 and 1996 but never commercially released. It was intended to be released as System 8, and later, Mac OS 8. Planned as a modern successor to the aging System 7, Copland introduced protected memory, preemptive multitasking, and several new underlying operating system features, while retaining compatibility with existing Mac applications. Copland's tentatively planned successor, codenamed Gershwin, was intended to add more advanced features such as application-level multithreading.

<span class="mw-page-title-main">Mac OS X Public Beta</span> First publicly available version of Mac OS X

The Mac OS X Public Beta was the first publicly available version of Apple Computer's Mac OS X operating system to feature the Aqua user interface. It was released to the public on September 13, 2000 for US$29.95. Its release was significant as the first publicly available evidence of Apple's ability to ship the long-awaited "next-generation Mac operating system" after the Copland failure. It allowed software developers and early adopters to test a preview of the upcoming operating system and develop software for it before its final release. It is the only public version of Mac OS X to have a code name not based on a big cat until the release of 10.9 Mavericks in 2013. The US version had a build number of 1H39 and the international version had build number 2E14.

<span class="mw-page-title-main">Rhapsody (operating system)</span> Apple operating system

Rhapsody is the development series of Apple Computer's next-generation operating system. Targeting only developers for a transition period, its releases came between Apple's purchase of NeXT in late 1996 and the announcement of Mac OS X in 1998. Rhapsody represented a new and exploratory strategy for Apple, more than an operating system, and runs on x86-based PCs and on Power Macintosh. Its OPENSTEP based Yellow Box API frameworks were ported to Windows NT for creating cross-platform applications. Eventually, the non-Apple platforms were discontinued, and later versions consist primarily of the OPENSTEP operating system ported to Power Macintosh, merging the Copland-originated GUI of Mac OS 8 with that of OPENSTEP. Several existing classic Mac OS frameworks were ported, including QuickTime and AppleSearch. Rhapsody can run Mac OS 8 and its applications in a paravirtualization layer called Blue Box for backward compatibility during migration to Mac OS X.

<span class="mw-page-title-main">Spinning pinwheel</span>

The spinning pinwheel is a variation of the mouse pointer used in Apple's macOS to indicate that an application is busy.

In computing, preemption is the act of temporarily interrupting an executing task, with the intention of resuming it at a later time. This interrupt is done by an external scheduler with no assistance or cooperation from the task. This preemptive scheduler usually runs in the most privileged protection ring, meaning that interruption and resuming are considered highly secure actions. Such a change in the currently executing task of a processor is known as context switching.

Cooperative multitasking, also known as non-preemptive multitasking, is a style of computer multitasking in which the operating system never initiates a context switch from a running process to another process. Instead, in order to run multiple applications concurrently, processes voluntarily yield control periodically or when idle or logically blocked. This type of multitasking is called cooperative because all programs must cooperate for the scheduling scheme to work.

In computer programming, a green thread is a thread that is scheduled by a runtime library or virtual machine (VM) instead of natively by the underlying operating system (OS). Green threads emulate multithreaded environments without relying on any native OS abilities, and they are managed in user space instead of kernel space, enabling them to work in environments that do not have native thread support.

The Mac OS nanokernel is an operating system kernel serving as the basis of most PowerPC based system software versions 7 through 9 of the classic Mac OS, predating Mac OS X.

Grand Central Dispatch, is a technology developed by Apple Inc. to optimize application support for systems with multi-core processors and other symmetric multiprocessing systems. It is an implementation of task parallelism based on the thread pool pattern. The fundamental idea is to move the management of the thread pool out of the hands of the developer, and closer to the operating system. The developer injects "work packages" into the pool oblivious of the pool's architecture. This model improves simplicity, portability and performance.

macOS Sierra Thirteenth major release of macOS

macOS Sierra is the thirteenth major release of macOS, Apple Inc.'s desktop and server operating system for Macintosh computers. The name "macOS" stems from the intention to uniform the operating system's name with that of iOS, watchOS and tvOS. Sierra is named after the Sierra Nevada mountain range in California and Nevada. Its major new features concern Continuity, iCloud, and windowing, as well as support for Apple Pay and Siri.

In computer programming, virtual threads are threads that are scheduled by a runtime library instead of natively by the underlying operating system (OS). Virtual threads allows for tens of millions of preemptive tasks and events without swapping on a 2021 consumer-grade computer.., compared to low thousands of operating system threads. Preemptive execution is important to performance gains through parallelism and fast preemptive response times for tens of millions of events. Earlier constructs that are not preemptive, such as coroutines or the largely single-threaded Node.js, introduce delays in responding to asynchronous events such as every incoming request in a server application

References

  1. 1 2 "Ars Technica: Macworld 2000 NY - Page 4 - (7/2000)". archive.arstechnica.com. Retrieved 2022-05-15.
  2. "Using Multiprocessing Services". developer.apple.com. Retrieved 2022-05-15.
  3. "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.
  4. "Technical Note TN1176: Mac OS 9". Apple Developer Connection . 2000-04-24. Archived from the original on 2000-12-04. Retrieved 2022-05-14.
  5. Learning Carbon. O'Reilly Media. 2001. pp. 294–295. ISBN   9780596001612.
  6. 1 2 "Using Multiprocessing Services". developer.apple.com. Retrieved 2022-05-15.
  7. Gruman, Galen (February 1997). "Time for a New OS?". Macworld . p. 126. Retrieved 2022-05-15.
  8. Vega, René (2001-10-25). "PowerMacInfo info". Newsgroup:  comp.sys.mac.programmer.help . Retrieved 2022-05-15.
  9. Kuehne, Robert; Sullivan, J. (2007). OpenGL Programming on Mac OS X. Pearson Education. ISBN   9780132701808.
  10. Singh, Amit (2006-06-19). Mac OS X Internals: A Systems Approach (paperback). Addison-Wesley Professional. p. 769. ISBN   978-0-13-270226-3.
  11. "Carbon Core Deprecations". developer.apple.com. Retrieved 2022-05-15.
  12. "Review: macOS Catalina Cuts Ties With the Past While Ushering in the Future". 512 Pixels. 2019-10-07. Retrieved 2022-05-15.