几本著名操作系统书籍的读书笔记整理之【计算机系统概述】专题

一、操作系统概念:

计算机系统自下而上可大致分为 4 部分:硬件、操作系统、应用程序和用户。

操作系统是:

  1. 控制和管理整个计算机系统的硬件与软件资源;
  2. 合理地组织、调度计算机的工作与资源分配
  3. 进而为用户和其他软件提供方便接口与环境的程序集合

**操作系统的特征**:

  1. 并发:并发是指两个或者多个事件在同一时间间隔内发生。操作系统的并发性是指计算机系统中同时存在多个运行的程序,因此它具有处理和调度多个程序同时执行的能力。(注意区分并发与并行)

  2. 共享:共享即资源共享,指系统中的资源可供内存中组个并发执行的进程共同使用。共享可分为以下两种资源共享方式:

    (1)互斥性共享:例如打印机、磁带机、虽然可以供多个进程使用,但为使打印的结果不会混乱,在一段时间只允许一个进程访问

    (2)同时访问方式:(此处的同时是宏观的)例如磁盘设备等。通常将一个请求分为几个时间片间隔地完成

  3. 虚拟:虚拟是把一个物理上的实体变为入肝逻辑上的对应物。操作系统中利用了多种虚拟技术来实现虚拟处理器虚拟内存虚拟外部设备等。操作系统的虚拟技术可以归纳为:时分复用技术(处理器的分时共享);空分复用技术(虚拟存储器)。

  4. 异步:多道程序环境允许多个程序并发执行,但由于资源有限,进程的执行并不是一贯到底的,而是以不可预知的速度推进。但是,只要运行环境相同,我们就必须保证多次运行进程后都能获得相同的结果。

**操作系统的功能**:

  1. 处理机管理:进程、线程的管理和调度;如何避免冲突;如何让合理共享;

  2. 存储器管理:(为多道程序的运行提供良好的环境,方便用户,并奇高内存利用率)

    内存分配与回收;地址映射;内存保护与共享;内存扩充;

  3. 文件管理:文件存储空间管理;目录管理;文件读写管理和保护;

  4. 设备管理:(完成用户的 I/O 请求,且提高设备利用率)缓冲管理;设备分配;设备处理;虚拟设备;

**操作系统提供的接口**:

为了让用户方便快捷可靠地操纵计算机硬件并运行自己地程序,操作系统为用户提供了如下两类接口:

  1. 命令接口

    (1)联机命令接口:(交互式命令接口,适用于分时或实时系统)用户输入一条命令,命令解释程序进行解释,并执行,再将控制权转给终端。

    (2)脱机命令接口:(批处理命令接口,适用于批处理系统)由一组控制命令组成。脱机用户不能直接干预作业运行,而是将所有的命令一次性提交。

  2. 程序接口:程序接口由一组系统调用(也称广义指令)组成。用户通过在程序中使用这些系统调用来请求操作系统为其提供服务:如使用各种外部设备、申请分配和回收内存等。

二、操作系统的发展与分类:

**手工操作阶段**:

(此阶段无操作系统)这个阶段,用户在计算机上的所有工作都需要人工干预,例如:程序装入、运行、结果输出。

手工操作阶段有两个突出的缺点

  1. 用户独占全机,资源利用率低
  2. CPU 等待手工操作,利用不充分

批处理系统

批处理系统的出现是为了解决人机矛盾 以及 CPU 和 I/O 设备速度不匹配的矛盾。

  • 单道批处理系统:系统对作业的处理是成批进行,但是内存中始终只保持一道作业。

    具有如下特性:

    1. 自动性:在顺利的情况下,磁带上的一批作业能自动逐个运行,无需人工干预

    2. 顺序性:磁带上的各道作业顺序地进入内存,各道作业地完成顺序与它们进入内存的顺序在正常情况下应完全相同。

      (先调入内存的作业先完成)

    3. 单道性内存种仅有一道程序运行。(监督程序每次只从磁带上调入一道程序进入内存运行)。

    但是,单道批处理系统仍面临问题:因为每次主机内存只存放一道作业,当作业面临 I/O 操作时,高速 CPU 需要等待低速的 I/O 操作,导致未能较好地利用资源,系统吞吐量受限。

  • 多道批处理系统:多道程序设计技术允许多个程序同时进入内存并在 CPU 中交替地运行。

    具有如下特点:

    1. 多道:内存中同时存放多道相互独立的程序
    2. 宏观上并行、微观上串行:内存中的多道程序轮流占有 CPU,交替执行。

    多道程序设计技术需要解决如下问题:

    1. 如何分配处理器
    2. 多道程序的内存分配问题
    3. I/O 设备如何分配
    4. 如何组织和存放大量的程序和数据,以方便用户使用并保证其安全性和一致性

    优点

    • 资源利用率高:多道程序共享计算机资源。
    • 系统吞吐量大:CPU 和其他资源保持‘忙碌“

    缺点

    • 用户响应的时间较长
    • 不提供人机交互能力

分时操作系统

所谓分时技术,就是把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给联机作业使用

分时操作系统通过终端将多个用户连接到主机,用户可在自己的终端键入命令,系统及时接收和处理,并将结果返回。

分时系统也是支持多道程序设计的系统,但不同于多道批处理系统

  • 多道批处理时实现作业的自动控制而无需人工干预的系统;
  • 而分时系统是实现人机交互的系统。

以上区别使得分时系统具有如下特征:

  1. 同时性:允许多个终端用户同时使用一台计算机。
  2. 交互性:用户可以通过终端,方便及时地和系统交互。
  3. 独立性:各用户独立操作,互不干扰。
  4. 及时性:用户的请求能在较短时间获得响应。

实时操作系统

分时操作系统虽然可以保证用户可以较快地得到反馈,但是在一些紧急的时刻,我们希望紧急任务可以不需要等待时间片而排队,因此诞生了实时操作系统。分为两类:

  1. 硬实时系统:系统必须绝对保证即刻给出响应。(例如飞行器控制系统)
  2. 软实时系统:不必是绝对保证,能够接受偶尔违反时间规定且不会引起任何永久性的损害。(例如飞机订票系统、银行管理系统)

在实时系统下,计算机系统接收到外部信号及时处理,并在严格时限内处理接受的事件。实时操作系统的特点是及时性和可靠性。

分布式计算机系统

分布式计算机系统是由多台计算机组成并满足下列条件的系统:

  1. 系统中两台计算机通过通信方式交换信息;
  2. 系统中的每台计算机都具有同等的地位(没有主机也没有从机)
  3. 每台计算机上的资源为所有用户共享;
  4. 任何工作都可以分布在几台计算机上,由它们并行工作、协同完成。

三、操作系统的运行机制

计算机系统中,CPU 会执行两种不同性质的程序:(I)操作系统内核程序;(II)应用程序(用户自编程序)

两者作用不同,内核程序需要执行一些特权指令,而出于安全考虑,应用程序不被允许直接执行特权指令,只能通过系统调用请求操作系统提供服务。特权指令有:I/O 指令、置中断指令、对内存保护寄存器的读写指令、程序状态字寄存器的写指令等。

因为以上两种程序,操作系统的执行可以分为两种状态:(I)内核态;(II)用户态;

大多数操作系统内核包括以下四方面的内容:

  1. 时钟管理

  2. 中断机制

    中断技术的引入的初衷是提高多道程序运行环境中 CPU 的利用率,且主要针对外部设备。

    **中断 vs 异常:**:

    用户通过中断或异常,从用户态进入核心态(通过硬件实现)

    • 中断:也称外中断,指来自 CPU 执行指令以外的事件发生。
    • 异常:也称内中断、陷入,指来自 CPU 执行指令内部的事件。(异常不能被屏蔽,一旦出现需要立即处理)

    $中断 \begin{cases} 内中断(异常) \begin{cases} 自愿中断(trap)\ ——\ 指令中断& \\强迫中断 \begin{cases}硬件故障\\软件故障 \end{cases} \end{cases} \\外中断(中断)\begin{cases}外设请求 \\人工干预 \end{cases}\end{cases}$

    **中断的处理过程**:

    1. 关中断
    2. 保存断点:保存此时 PC 内容
    3. 引出中断服务程序(中断服务程序寻址):将中断服务程序入口地址送入 PC

    (以上为硬件(中断隐指令)完成)

    1. 保存现场和屏蔽字
    2. 开中断
    3. 执行中断服务程序
    4. 关中断
    5. 恢复现场和屏蔽字:程序状态字寄存器,一些通用寄存器的内容
    6. 开中断、中断返回

    (以上为中断程序完成)

    其中不能被打断(因此有开关中断操作)的是:【保存断点、中断服务程序寻址】、【恢复现场和屏蔽字】

  3. 原语

    原语具有如下特点:

    • 处于操作系统的最低层,是最接近硬件的部分
    • 具有原子性,在运行时不能被打断
    • 运行时间较短,且调用频繁
  4. 系统控制的数据结构及处理

    • 进程管理:进程状态管理、进程调度和分派、创建与撤销进程控制块等
  • 存储器管理:存储空间的分配和回收、内存信息保护程序、代码对换程序等
    • 设备管理:缓冲区管理、设备分配和回收等

三、操作系统的体系结构:

  • 大内核将操作系统的主要功能模块都作为一个紧密联系的整体运行在核心态。

    因为各管理模块之间共享信息,能有效利用相互之间的有效特性,因此具有无可比拟的性能优势

  • 为解决操作系统的内核代码难以维护的问题,提出了微内核的体系结构。

    仅将内核中最基本的功能保留在内核,将其他转移至用户态执行。被移出的操作系统代码根据分层远测划分为若干服务程序,它们的执行相互独立,借助与微内核通信来进行交互。

    优点:大大降低了维护成本,各部分可以独立地优化和演进,保证了操作系统的可靠性。

    缺点:需要频繁在用户态和核心态转化,开销较大。

image-20210204171540059

参考资料:

[1]《计算机操作系统》汤子瀛

[2]《现代操作系统(原书第四版)》陈向群、马鸿宾等译

[3]《2021年操作系统考研复习指导》王道论坛组编