Chapter 4. The Operating System's Role

 

Functional Simplicity, Structural Complexity; The Best Life for All. That's the maxim ...

 
 --Shirow Masamune, Appleseed: The Promethean Challenge

So far we've described some of the primary challenges of multicore programming. We've briefly covered some of the notions of multithreading, multiprocessing, and multiprogramming. In Chapter 2, we introduced the Multicore Opteron, Cell, Duo Core 2, and UltraSparc T1. These chips represent four effective but very different approaches to multicore architectures. We explained how hardware-specific compiler switches are sometimes necessary to get to certain specific features of a Chip Multiprocessor (CMP). But we've said very little about the operating system's role in the design, development, and execution of multicore programs and applications. This chapter now turns to that topic. In this chapter we:

  • Provide an overview of the operating system

  • Discuss the developer's interface to the multiprocessor

  • Explore how threads, processes, and processors are connected through the operating system

  • Examine how the operating system Application Program Interfaces (APIs) and system calls are used in conjunction with C++ for multicore programming and application development

  • Explain how the operating system functions as the gatekeeper of the multiprocessor

  • Discuss how to use the Portable Operating System Interface (POSIX) standard to design and implement multicore applications that work on all major hardware and operating ...

Get Professional Multicore Programming: Design and Implementation for C++ Developers now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.