导论#
- 操作系统(Operating System,OS)位于计算机用户与计算机硬件之间。
- 操作系统的目的是提供环境,以便用户能够便捷而高效地执行程序
- 操作系统是管理计算机硬件的程序。它还为应用程序提供基础,并充当计算机用户和硬件的中介,大型机的操作系统主要用于优化硬件使用率。
- 个人计算机(PC)的操作系统支持复杂游戏、商业应用和这两者之间的其他应用。
- 操作系统既庞大又复杂。
本章目标#
- 描述计算机系统的基本组成
- 概述计算机系统的主要组件
- 概述多种类型的计算机环境
- 探讨多个开源的操作系统
1.1 操作系统的功能#
讨论操作系统在整个计算机系统中作用。计算机系统可以分为4个组件:硬件、操作系统、应用程序、用户:
- 硬件:如中央处理单元(CPU)、内存、输入/输出设备,为系统提供基本的计算机资源。
- 操作系统控制硬件,并协调各个用户应用程序的硬件使用。
- 计算机系统可以分为硬件、软件及数据。当计算机系统运行时,操作系统正确手段以便使用这些资源。
- 操作系统类似于政府,其本身不能实现任何有用功能,而是提供一个方便其他程序执行有用工作的环境。
1.1.1 用户视角#
计算机的用户视角因使用界面不同而不同
- PC用户:操作系统设计的主要目的是用户使用方便、次要的是性能,不在乎的资源利用,
- 大型机或小型机用户:操作系统的设计目标是优化资源利用率,确保所有的CPU时间、内存和I/O都能得到有效使用,并且确保没有用户使用超过限额以外的资源。
- 工作站用户:工作站与其他工作站和服务器相连。操作系统的设计需要兼顾使用方便性和资源利用率。
- 智能手机和平板电脑等移动计算机用户:大多数移动计算机为单用户使用,用户通过触摸屏来交互。
- 嵌入式设备:家电和汽车等嵌入式计算机。
1.1.2 系统视角#
- 从计算机角度来看,操作系统是与硬件紧密相连的程序。可将操作系统看作资源分配器。
- 计算机系统可能具有许多资源:CPU时间、内存空间、文件存储空间、I/O设备等。操作系统管理这些资源。面对许多甚至冲突的资源请求,操作系统应考虑如何为各个程序和用户分配资源,以便计算机系统能有效且公平地运行
1.1.3 操作系统的定义#
- 一般来说,没有一个关于操作系统的完至准确的定义。
- 操作系统的存在是因为提供了合理方式解决创建可用计算系统的问题。
- 计算机系统的根本目的是,执行用户程序并更容易解决用户问题。为实现这一目的,构造了计算机硬件。由于硬件本身并不十分容易使用,因此开发了应用程序。这些应用程序需要一些共同操作,如控制I/O设备。这些控制和分配I/O设备资源的共同功能被组成一个软件模块:操作系统。
- 一个比较公认的定义是:操作系统是一直运行在计算机上的程序 (通常称为内核)
- 除了内核外,还有两类程序:
系统程序:是与系统运行有关的程序,但不是内核的一部分
应用程序:与系统运行无关的所有其他程序
1.2 计算机系统的组成#
首先我们需要对计算机系统的结构有一定的了解。

1.2.1 计算机系统的运行#
- 现代通用计算机系统包括一个或多个CPU和若干设备控制器,通过公用总线相连接,总线提供了共享内存的访问。
- 每个设备控制器负责一类特定的设备(如磁盘驱动器)音频设备或视频显示器)。CPU与设备控制器可以并发执行,并竞争访问内存。为了确保有序访问共享内存,需要内存控制器来协调访问内存。
- 引导程序:当计算机开机运行时,需要运行一个初始程序,该程序位于计算机的固件(如只读内存ROM或电可擦编程只读内存EEPROM)
- 引导程序必须知道如何加载操作系统并开始执行系统为了完成这一目标,引导程序必须定位操作系统内核并加载到内存。
- 一旦内核加载到内存并执行,它就开始为系统与用户提供服务。除了内核外,系统程序也提供一些服务,它们在启动时加到内存而成为系统程序或系统后台程序。旦这个阶段完成,系统就完全启动了,并且等待事件发生。
- 事件发生通常通过硬件或软件的中断来通知。硬件可以通过系统总线发送信号到CPU,以触发中断。软件可通过执行特别操作即系统调用,以触发中断
- 当CPU被中断时,它停止正在做的事,并立即转到固定位置再继续执行。该固定位置通常包含中断服务程序的开始地址。中断服务程序开始执行,在执行完后,CPU重新执行中断的计算。这一运行的时间表如图:

1.2.2 存储结构#
- 内存(main memory),也称随机访问内存(Random Access Memory,RAM),内存通常为动态随机访问内存(Dynamic Random Access Memory,DRAM)
- 只读内存(Read Only Memory,,ROM),数据不可修改,即不可写
- 内存特点:易失性。掉电丢失数据
- 外存:磁盘、硬盘、U盘、光碟、固态硬盘等。非易失性,数据可持久化。

1.2.3 I/O 结构#
- 每个通用计算机系统由一个CPU和多个设备控制器组成,它们通过总线连接在一起。
- 每个设备控制器管理某一特定类型的设备。
- 通常,操作系统为每个设备控制器提供一个设备驱动程序(devicedriver)。

1.3 计算机系统的体系结构#
这里我们根据通用处理器数量来进行粗略分类。
1.3.1 单处理器系统#
- 只有一个CPU的系统。执行一个通用指令集,该指令集包括执行用户进程的指令
- 几乎所有单处理器系统都带有其他的专用处理器。它们为特定设备的处理器,如磁盘、键盘、图形处理器。专用处理器执行有限的指令集,而并不执行用户进程
1.3.2 多处理器系统#
- 多CPU系统,多核系统。集成多个计算核到单个芯片的系统,称为多核。

多处理器系统的优点:
- 增加吞吐量
- 规模经济
- 增加可靠性
