第4章 操作系统的任务
到目前为止,我们已经描述了多核编程(www.cppentry.com)的一些主要挑战,并简要介绍了多线程、多处理和多道程序设计的一些概念。第2章介绍了Opteron、Cell、Duo Core 2、UltraSparc T1等多核架构。这些芯片代表4种有影响但是非常不同的多核架构设计方法。我们解释了有时候为了利用芯片多处理器(CMP)的特定特性,必须使用针对特定硬件的编译器开关。但是我们很少提及操作系统在多核程序和应用软件的设计、开发和执行中的作用。本章将会介绍这方面的内容,具体包括:
提供操作系统的概览
开发人员与多处理器的接口
探究线程、进程和处理器是如何通过操作系统关联起来的
检查操作系统应用程序接口(API)和系统调用如何同C++(www.cppentry.com)联合使用进行多核编程(www.cppentry.com)和应用程序开发
解释操作系统如何起到多处理器的看门人(gatekeeper)的作用
讨论如何使用可移植操作系统接口(POSIX)标准来设计和实现能够在所有主要硬件和操作系统平台上工作的多核应用程序
4.1 操作系统扮演什么角色
我们将集中研究如何把操作系统作为开发工具。本书将从系统程序员和应用程序员的视角来讨论多核编程(www.cppentry.com)。从这些视角出发,操作系统的作用主要有以下两个。
软件接口:为计算机的硬件资源提供一致且定义良好的接口
资源管理:管理硬件资源以及其他正在执行的应用软件、作业和程序