1.1 操作系统的目标和作用

L01

学习目标

操作系统配置在硬件第一层,追求方便性、有效性、可扩充性、开放性四个目标;同时充当用户与硬件的接口、资源管理者、硬件抽象三种角色,并受资源利用率、用户需求、器件更新换代、体系结构发展、新应用需求五方面动力推动。

  • OS 的四个目标:方便性——用命令和程序而非机器语言操作计算机;有效性——提高资源利用率和系统吞吐量;可扩充性——模块化和层次化结构便于增改功能;开放性——遵循国际标准实现软硬件兼容。
  • OS 的三个作用:作为用户与硬件系统之间的接口(命令、系统调用、图形界面);作为计算机资源的管理者(处理机、存储器、I/O 设备、文件);实现对硬件的抽象(在裸机上叠加 I/O 软件等,形成扩充机器/虚拟机)。
  • 推动 OS 发展的五个动力:不断提高资源利用率、方便用户、器件更新换代、计算机体系结构发展、新的应用需求。
  • OS 的目标随应用环境不同而各有侧重,但四个基本目标共同构成设计追求;可通过分层动画对照「应用→系统调用→内核→驱动→硬件」理解 OS 在系统中的位置。

原理 · 深入理解

1.1 操作系统的目标和作用

操作系统要达到的目标取决于计算机的应用环境:交互式系统要求使用方便,实时系统要求在截止时间内响应,但方便性是共同的基本要求。本节先阐述操作系统的目标,再说明操作系统在系统中所处的层次。

操作系统的目标与应用环境有关 查询系统中所用的OS 人——机交互性 工业控制、武器控制及多媒体环境下的OS 实时性 微机配置的OS 方便性 应用环境不同 → OS 目标侧重不同;方便性是共同要求

1.1.1 操作系统的主要目标

操作系统的目标可归纳为四点。方便性是指用户可通过编译程序和操作系统命令使用计算机,而不必直接操作硬件;有效性是指提高系统资源利用率和吞吐量;可扩充性是指采用模块化和层次化结构,便于增加和修改功能;开放性是指遵循国际标准,使软硬件兼容互联。

有效性包含两个层面:一是提高资源利用率,二是提高系统吞吐量。两者相关但不等同——利用率高也可能存在反复操作,吞吐量才是单位时间内实际完成的工作量。

方便性

用高级语言和操作系统提供的命令就能操纵计算机。

有效性

提高资源利用率,同时提高系统吞吐量。

可扩充性

便于增加或修改功能。微内核一类结构比较容易做到这一点,但不是唯一做法。

开放性

遵循开放系统互连等国际标准,软硬件才能彼此兼容、互联。

操作系统的主要目标 最重要的 两个目标 方便性 · 有效性 方便性 系统可以使用编译命令将用户采用高级语言书写的程序翻译成机器代码,或直 接通过OS所提供的各种命令操纵计算机系统。 有效性 第一层含义:提高系统资源的利用率;第二层含义:提高系统的吞吐量。 可扩充性 近年来OS广泛采用了微内核结构,方便地增添新的功能和模块,以及对原有 的功能和模块进行修改,具有良好的可扩充性。 开放性 系统能遵循世界标准规范,特别是遵循开放系统互连OSI国际标准。凡遵循 国际标准所开发的软硬件都能彼此兼容,方便地实现互联。

1.1.2 操作系统的作用

作为用户与硬件的接口

第一层作用:操作系统是用户和计算机硬件之间的接口。用户并不直接操作 CPU 和设备,而是通过命令、系统调用或图形界面,请操作系统去驱使硬件。

可以把它看成夹在用户与裸机中间的一层:向上承接用户的意图,向下把意图翻译成对硬件的操作。下图就是这个位置。

图1-1 OS作为接口的示意图

作为资源的管理者

第二层作用:操作系统是资源的管理者。处理机、存储器、I/O 设备和文件,都要由它分配、回收、防止冲突。没有这一层,多道程序会立刻竞争资源。

实现对计算机硬件的抽象

第三层作用:操作系统把硬件细节藏起来,露出一层更好用的虚拟机。I/O 软件先挡住寄存器级的操作,文件软件再挡住磁盘块,窗口环境再挡住命令细节。用户看见的是一层层更友好的接口,而不是芯片本身。下图从硬件往上叠了这几层。

图1-2 I/O软件隐藏了I/O操作实现的细节 用户程序 read / write I/O 软件 把设备细节藏起来 设备控制器 / 硬件 寄存器与中断 上层只见统一接口,下层方访问端口。
图1-2 I/O软件隐藏了I/O操作实现的细节

1.1.3 推动操作系统发展的主要动力

操作系统持续发展,其动力包括:提高资源利用率、方便用户使用、器件更新换代、计算机体系结构发展、新的应用需求。后续各章均可从这些角度理解操作系统不断演进的原因。

  1. 不断提高计算机资源的利用率
  2. 方便用户
  3. 器件更新换代
  4. 计算机体系结构发展
  5. 新的应用需求

做 · 交互动画

  • 根据「学习目标」列出 3 个关键词,对照原理段落解释给自己听。

操作系统的目标和作用

用控件单步操作;日志区记下每一步发生了什么。

总结与提升

  • 能画出分层,并指出本课将亲自实现哪些层。
  • 能用自己的话复述学习目标,并指出概念与板上实验的对应。

延伸思考

  • 嵌入式「库式 OS」与桌面 OS 目标侧重点有何不同?
  • 如果把本节机制拿到 Linux 或完整 OpenHarmony 上,会多出哪些硬件假设?

← 本阶段封面 · 课程列表