第一章——操作系统引论

搬运文章:操作系统(第四版)期末复习总结(上)

1. 操作系统是什么?

操作系统为用户完成所有“硬件相关,应用无关“的工作,以给用户方便、高效、安全的使用环境。

1.1 定义

​ 操作系统是一个大型的程序系统,它负责计算机的全部软、硬件资源的分配调度工作,控制并协调多个任务的活动,实现信息的存取和保护。它提供用户接口,使用户获得良好的工作环境。

1.2 目标

  • 方便性:配置OS后计算机系统更容易使用
  • 有效性:改善资源利用率;提高系统 吞吐量
  • 可扩充性:OS的结构(如层次化的结构:无结构发展->模快化结构->层次化结构->微内核结构)【微内核后续解释】
  • 开放性:OS遵循世界标准范围。

1.3 作用

1.3.1 OS作为用户与计算机硬件系统之间的接口

如API/CUI/GUI

即:OS处于用户与计算机硬件系统之间,用户通过OS来使用计算机系统。

1.3.2 OS是计算机系统资源的管理者

  • 处理机管理是用于分配和控制处理机

  • 存储器管理是负责内存的分配与回收

  • I/O设备管理是负责I/O设备的分配(回收)与操纵

  • 文件管理是用于实现文件的存取、共享和保护

1.3.3 OS实现了对计算机资源的抽象

2. 操作系统的发展过程

2.1 未配置操作系统的计算机系统(40年代 手工操作阶段)

  • 工作方式:
    • 用户:用户既是程序员,又是操作员;用户是计算机专业人员
    • 编程语言:为机器语言
    • 输入输出:纸带或卡片
  • 计算机的工作特点:
    • 用户独占全机:不出现资源被其他用户占用,资源利用率低
    • CPU等待用户:计算前,手工装入纸带或卡片;计算完成后,手工卸取纸带或卡片;CPU利用率低
  • 缺点:
    • 手工装卸、人工判断、手工修改与调试内存指令等造成CPU空闲;
    • 提前完成造成剩余预约时间内的CPU完全空闲;
    • I/O设备的慢速与CPU的速度不匹配造成的CPU空闲等待时间

简言之,资源利用率低;CPU利用率低

2.2 单道批处理系统(50年代)

单道批处理系统是在解决人机矛盾和CPU与I/O设备速度不匹配矛盾的过程中形成的。批处理系统旨在提高系统资源的利用率和系统的吞吐量。(但单道批处理系统仍不能充分利用资源,故现在已很少用)

2.2.1 联机批处理

I/O设备与主机直接连接,CPU直接控制作业输入输出

  • 优点:解决了作业的自动转接,减少了人工操作时间
  • 问题:作业输入和结果输出过程中,CPU处于等待状态
  • 解决:增加一台不与主机直接相连而专门与I/O设备交换信息的卫星机(脱机批处理

2.2.2 脱机批处理

增加一台不与主机直接相连而专门与I/O设备交换信息的卫星机,由卫星机控制作业输入输出

脱机批处理

indicate
indicate
  • 缺点:系统资源利用率低(因为内存中只存在一道程序,I/O请求成功前CPU都处于空闲状态

  • 特征:

    • 自动性:正常情况下,一批作业能自动依次运行,无需人工干预
    • 顺序性:各道作业是顺序进入内存
    • 单道性:内存中任何时候只能有一道作业

2.3 多道批处理系统(60年代初)

单道运行每次只调一个用户作业程序进入内存并运行,CPU利用率低,为了进一步提高资源利用率和系统吞吐量,引入多道批处理

多道程序

多道批处理
多道批处理
  • 优点:

    • 资源利用率高(资源指CPU、存储器、设备、数据)
    • 系统吞吐量大(系统吞吐量指系统在单位时间完成的总工作量(作业数量))
  • 缺点:

    • 平均周转时间长(作业的周转时间是指从作业进入系统开始,直至其完成并退出系统为止所经历的时间),短作业的周转时间显著增长
    • 无交互能力,整个作业完成后或中间出错时,才与用户交互,不利于调试和修改
  • 特点:

    • 多道:内存同时存在多个作业
    • 宏观上并行:同时有多道程序在内存运行,某一时间段上,各道程序不同程度地向前推进
    • 微观上串行:任一时刻最多只有一道作业占用CPU,多道程序交替使用CPU

在当前运行的作业需作I/O处理时,CPU转而执行另一个作业

单道批处理系统与多道批处理系统的特点比较:

单道批处理系统 多道批处理系统
内存中驻留程序数目 一道 多道
占用CPU的情况 独占 交替占用
是否需要作业和进程调度 不需要 需要
程序完成次序与其进入内存次序间的关系 严格对应 不严格对应
  • 相关技术问题:

    • 处理机管理问题:如何分配,使CPU满足要求
    • 内存管理问题:为每道程序分配内存空间
    • I/O设备管理问题:如何分配I/O设备
    • 文件管理问题:如何组织程序和数据
    • 作业管理问题:如何组织作业

2.4 分时系统(60年代中)

分时系统是指在一台主机上连接多个带有显示器和键盘的终端,同时允许多个用户通过自己的键盘,以交互的方式使用计算机,分时共享硬件和软件资源。

2.4.1 分时的定义

分时的定义: 把计算机的系统资源(尤其是CPU时间)进行时间上的分割,每个时间段称为一个时间片(time slice),每个用户依次轮流使用时间片。

分时系统
分时系统
  • 关键问题:

    • 通常按时间片分配:各个程序在CPU上执行的轮换时间。把处理器的运行时间分成很短的时间片,按时间片轮流把处理机分配给各作业使用。
    • 多个用户分时:单个用户使用计算机的效率低,因而允许多个应用程序同时在内存中,分别服务于不同的用户
    • 前台和后台程序分时:后台程序不占用终端输入输出,不与用户交互——现在的图形用户界面(GUI),除当前交互的程序(输入焦点)之外,其他程序均作为后台
  • 特点:

    • 人机交互性:用户可以通过终端与系统进行广泛的对话
    • 多路性:允许在一台主机上同时连接多台联机终端,系统按分时原则为每个用户服务
    • 用户独立性:对每个用户而言好像独占主机,每个用户各占一个终端,彼此独立工作
    • 及时性:用户的请求在很短的时间内能够获得响应

现在的许多操作系统都具有分时处理的功能,在分时系统的基础上,操作系统的发展开始分化,如实时系统、通用系统、个人系统等。

2.5 实时操作系统

实时系统(Real-Time System)是指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。

实时操作系统有硬实时和软实时之分:

  • 硬实时要求在规定的时间内必须完成操作,这是在操作系统设计时保证的

  • 软实时则只要按照任务的优先级,尽可能快地完成操作即可

实时系统与分时系统特征的比较:

  • 设计目标:分时系统为给多用户提供通用的交互型开发运行环境,实时系统为特殊用途提供专用系统

  • 交互性:分时系统交互性强,实时系统较弱

  • 响应时间:分时系统以用户能够接受的响应时间为准,实时系统与受控对象及应用场合有关

2.6 操作系统的进一步发展

  • 通用操作系统

    如果一个操作系统兼有批处理、分时或实时处理的全部或两种功能,该操作系统为通用操作系统

  • 微内核操作系统

    采用微内核结构:提供基本支持功能的内核很小,大部分功能由内核之外的服务程序完成——进程(线程)管理低级存储管理中断和陷入管理进程通信

  • 网络操作系统

    能够控制计算机在网络中方便地传送信息和共享资源,并能为网络用户提供各种所需的服务

    • 功能:
      • 网络通信:在源计算机和目标计算机之间实现无差错的数据传送
      • 资源管理:对网络中的硬、软件资源实施管理
      • 网络管理:安全控制、性能监测、维护功能
      • 网络服务:如e-mail、文件传输、共享设备服务、远程作业录入等
  • 分布式操作系统

    集中式计算机系统:处理和控制能力都高度集中在一台计算机上,所有任务均由它完成。

    分布式计算机系统:由多台分散的计算机经互联网络连接而成的系统,各台计算机没有主从之分。任何工作都可以分布在几台计算机上,由它们并行工作、协同完成。

    分布式计算机系统与单机集中式操作系统区别:

    • 进程通信:集中式简单,分布式涉及机构、规程和路径算法
    • 资源管理:集中式,一类资源由一个管理程序管理;分布式,一类资源由多个管理程序管理,这些程序必须协调一致工作
    • 系统结构:分布式,有若干相对独立的部分,分布在各台计算
  • 嵌入式操作系统

    运行在嵌入式(计算机)环境中、对整个系统及所有操作的各种部件、装置等资源进行统一协调、处理、指挥和控制的系统软件

    特点:

    • 微型化:内存少(1M以内)、无外存、微处理器字长短(8b16b)、运行速度有限、能提供的能源少、外设千变万化
    • 可定制:能运行在不同微处理器平台上,能针对硬件变化进行结构与功能上的配置
    • 实时性:硬实时、软实时、非实时
    • 开发环境:通常提供代码编辑器、编译器和链接器、程序调试器、系统配置器和系统仿真器
  • 智能化操作系统

3. 操作系统的功能

3.1 处理器管理

  • 完成处理机资源的分配、调度和回收等功能。处理机调度的单位可为进程线程

  • 由于处理机调度策略不同,出现不同类型的操作系统,如批处理系统、分时系统、实时系统

3.2 存储管理

管理目标:提高利用率、方便用户使用、提供足够的存储空间、方便进程并发运行。内存的分配、保护和扩充。

  • 存储器分配与回收

  • 地址映射(变换):逻辑地址到内存物理地址映射

  • 存储保护:保证进程间互不干扰、相互保密

  • 内存扩充(覆盖、交换和虚拟存储):提高内存利用率、扩大进程的内存空间

3.3 设备管理

管理目标:方便设备的使用、提高CPUI/O设备利用率

  • 设备操作:利用设备驱动程序完成对设备的操作

  • 设备独立性(device independence):提供统一的I/O设备接口,使应用程序独立于物理设备,提高可适应性;在同样的接口和操作下完成不同的内容

  • 设备分配与回收:在多用户间共享I/O设备资源

  • 缓冲区管理:匹配CPU和外设的速度,提高两者的利用率。主机与外设并行

3.4 信息管理

管理目标:解决软件资源的存储、共享、保密和保护

  • 文件存储空间管理:解决如何存放信息,以提高空间利用率和读写性能

  • 目录管理:解决信息检索问题。文件的属性(如文件名)、单一副本赋予多文件名

  • 文件的读写管理和存取控制:解决信息安全问题。系统设口令 “哪个用户”、用户分类 “哪个用户组”、文件权限 “针对用户或用户组的读写权”

3.5 用户接口

管理目标:提供一个友好的用户访问操作系统的接口。操作系统向上提供两种接口

  • 系统命令:供用户用于组织和控制自己的作业运行。命令行、菜单式或GUI “联机” ;命令脚本 “脱机”

  • 编程接口:供用户程序和系统程序调用操作系统功能。系统调用和高级语言库函数

  • 通过这些命令和调用,向OS提出申请,由OS调用内部功能来完成

4. 操作系统的特征

4.1 并发(concurrency)

并发性:并发是指在内存中放多道作业, 在一个时间段上来看,每一道作业都能不同程度地向前推进。但在任何一个时间点上只能有一道占用CPU。

  • 并发:又称伪并行,指多个事件在同一时间段内发生。操作系统是一个并发系统,各进程间的并发,系统与应用间的并发。操作系统要完成这些并发过程的管理。
  • 并行:是指在同一时刻发生,指当系统有一个以上CPU时,一个CPU执行一个进程,另一个CPU执行另一个进程,两者互不干涉,互不抢占资源,同时进行

  • 串行:在内存中每次只能放一道作业,只有它完全执行完后别的作业才能进入内存执行。
  • *并行: *存在于有多个CPU的环境中, 在内存中放多道作业,在任一时间点上都可能有多道作业在不同的CPU上同时执行。

4.2 共享(sharing)

多个进程共享有限的计算机系统资源。操作系统要对系统资源进行合理分配和使用。资源在一个时间段内交替被多个进程所用

  • 互斥共享(如音频设备、打印机):资源分配后到释放前,不能被其他进程所用

  • 同时访问(如磁盘文件):一个时间段内同时资源分配难以达到最优化


并发和共享是OS的两个最基本的特性,二者互为条件!


4.3 虚拟(virtual)

一个物理实体映射为若干个对应的逻辑实体——采用时分复用(分时使用)空分复用(分空间使用)

虚拟是操作系统管理系统资源的重要手段,可提高资源利用率:

  • CPU——每个用户(进程)的“虚处理机”。利用多道处理技术,多道程序并发执行,分时使用一台处理机。
  • 存储器——每个进程都占有的地址空间(指令+数据+堆栈)(空分复用存储器)“虚拟存储器”。虚拟存储技术——内存分时复用,一道程序通过时分复用内存,可以在远小于它的内存空间运行。
  • 显示设备——多窗口或虚拟终端(virtual terminal)
  • 独享设备—— 假脱机技术(Spooling),虚设备

4.4 异步性(asynchronism)

也称不确定性:指进程的执行顺序和执行时间的不确定性

  • 进程的运行速度不可预知:分时系统中,多个进程并发执行,“时走时停”,不可预知每个进程的运行推进快慢

  • 难以重现系统在某个时刻的状态(包括重现运行中的错误)

  • 无论快慢,应该结果相同——通过进程互斥和同步手段来保证

  • 因为不确定性,在设计OS时,要充分考虑各种可能性,以便稳定、安全、高效地达到并发和资源共享

5. 总结

summary
summary