计算机操作系统概述

计算机系统概述

计算机系统的组成

  • 计算机系统:包括硬件子系统和软件子系统
  • 硬件:借助电、磁、光、机械等原理构成的各种物理部件的有机结合,是系统工作的实体
    • CPU、主存储器、I/O控制系统、外围设备
  • 软件:各种程序和文件,用于指挥计算机系统按指定的要求进行协同工作
    • 包括系统软件、支撑软件和应用软件
    • 关键系统软件是:操作系统与语言处理程序

计算机系统的用户视图

计算机硬件系统

计算机硬件系统的组成

  • 中央处理器:运算单元 + 控制单元
  • 主存储器
  • 外围设备:输入设备 + 输出设备 + 存储设备 + 网络通信设备
  • 总线:负责将上述的三种硬件组织在一起

存储程序计算机

  • 冯·诺依曼等人在 1946 年总结并明确提出,被称为冯·诺依曼计算机模型
  • 存储程序计算机在体系结构上的主要特点:
    • 运算单元为中心,控制由指令流产生
    • 采用存储程序原理,面向主存组织数据流
    • 主存是按地址访问、线性编址的空间
    • 指令由操作码和地址码组成
    • 数据以二进制编码

存储程序计算机的结构

当今计算机硬件的经典结构和主流组织方式

总线

  • 总线(Bus)是计算机各种功能部件之间传送信息的公共通信干线,它是 CPU、内存、输入输出设备传递信息的公用通道
  • 计算机的各个部件通过总线相连接,外围设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统

总线的组成

总线是传输各类通信信号的线路,按照所传输的信息种类,总线包括:

  1. 一组控制线
  2. 一组数据线
  3. 一组地址线

总线的类型

  • 内部总线:用于 CPU 芯片内部连接各元件
  • 系统总线:用于连接 CPU、存储器和各种 I/O 模块等主要部件
  • 通信总线:用于计算机系统之间通信

中央处理器(CPU)

中央处理器是计算机的运算核心(Core)和控制单元(Control Unit),主要包括:

  • 运算逻辑部件:一个或多个运算器
  • 寄存器部件:包括通用寄存器、控制与状态寄存器,以及高速缓冲存储器(Cache)
  • 控制部件:实现各部件间联系的数据、控制以及状态的内部总线;负责对指令译码、发出为完成每条指令所要执行操作的控制信号、实现数据传输等功能的部件。

处理器与寄存器

存储器

存储器的组织层次

I/O 控制方式

  • 轮询方式:CPU 忙式控制 I/O,CPU 执行内存数据交换
  • 中断方式:CPU 启动 I/O 设备,设备进行 I/O,设备中断 CPU 以善后,CPU 执行内存数据交换。
  • DMA 方式:CPU 启动 DMA,DMA 独立进行 I/O 和内存数据交换,DMA 中断 CPU 以善后。

计算机软件系统

计算机软件系统的组成

  • 系统软件:操作系统、实用程序、语言处理程序、数据库管理系统
    • 操作系统实施对各种软硬件资源的管理控制
    • 实用程序为方便用户所设,如文本编辑等
    • 语言处理程序把用汇编语言/高级语言编写的程序,翻译成可执行的机器语言程序
  • 支撑软件有接口软件、工具软件、环境数据库,支持用户使用计算机的环境,提供开发工具
    • 也可以认为是系统软件的一部分

  • 应用软件是用户按其需要自行编写的专用程序

程序员的计算机系统视图

软件开发的不同层次

  • 计算机硬件系统:机器语言
  • 操作系统之资源管理:机器语言 + 广义指令(扩充了硬件资源管理)
  • 操作系统之文件系统:机器语言 + 系统调用(扩充了信息资源管理)
  • 数据库管理系统:数据库语言(扩充了功能更强的信息资源管理)
  • 语言处理程序:面向问题的语言

计算机程序的执行过程

计算机操作系统

操作系统的概念

  • 操作系统(Operating System),简称 OS
  • OS 是计算机系统最基础的系统软件,管理软硬件资源、控制程序执行,改善人机界面,合理组织计算机工作流程,为用户使用计算机提供良好运行环境
  • OS 是计算机系统的公共软件基础设施,所有应用程序共用 OS 服务,且 OS 内核是反应式 reactive 机制(中断驱动的)

操作系统

操作系统是方便用户、管理和控制计算机软硬件资源的系统程序集合,在整个计算机系统中具有承上启下的地位。

  • 从用户角度看,OS管理计算机系统的各种资源,扩充硬件的功能,控制程序的执行
  • 从人机交互看,OS是用户与机器的接口,提供良好的人机界面,方便用户使用计算机
  • 从系统结构看,OS是一个大型软件系统,其功能复杂,体系庞大,采用层次式、模块化的程序结构

操作系统的组成

  • 进程调度子系统
  • 进程通信子系统
  • 内存管理子系统
  • 设备管理子系统
  • 文件管理子系统
  • 网络通信子系统
  • 作业控制子系统

操作系统的类型

  • 多道批处理操作系统,脱机控制方式
  • 分时操作系统,交互式控制方式
  • 实时操作系统

资源管理的视角

计算机系统的资源包括:

  • 硬件资源:处理器、内存、外设
  • 信息资源:数据、程序

管理计算机系统的软硬件资源

  • 处理器资源:那个程序占有处理器运行?
  • 内存资源:程序/数据在内存中如何分布?
  • 设备管理:如何分配、去配和使用设备?
  • 信息资源管理:如何访问文件信息?
  • 信号量资源:如何管理进程之间的通信?

屏蔽资源使用的底层细节

  • 驱动程序:最底层的、直接控制和监视各类硬件(或文件)资源的部分。
  • 职责是隐藏底层硬件的具体细节,并向其他部分提供一个抽象的、通用的接口。
  • 比如说:打印一段文字或一个文件,既不需知道文件信息存储在硬盘上的细节,也不必知道具体打印机类型和控制细节

资源的共享方式

  • 独占使用方式:如:打印机在一个时间段内只能被一个进程独立使用
  • 并发使用方式:如:一个文件可以同时被多个进程一起读

资源分配策略

  • 静态分配方式:进程运行前一次拿到全部独占资源:资源使用效率低
  • 动态分配方式:使用资源前临时申请
    • 可能产生竞争资源的死锁
    • 并发访问的难题
  • 资源抢占方式:被抢夺资源的进程需要回滚执行

控制程序执行的视角

多道程序同时计算

  • CPU速度与I/O速度不匹配的矛盾,非常突出
  • 只有让多道程序同时进入内存争抢CPU运行,才可以够使得CPU和外围设备充分并行,从而提高计算机系统的使用效率。

示例

示例

多道程序设计

指让多个程序同时进入计算机的主存储器进行计算

特点:

  • CPU 与外部设备充分并行
  • 外部设备之间充分并行
  • 发挥 CPU 的使用效率
  • 提高单位时间的算题量
  • 但是,单道程序的运算时间会增加

实现:

  • 为进入内存执行的程序建立管理实体:进程
  • OS 应能管理与控制进程程序的执行
  • OS 协调管理各类资源在进程间的使用
    • 处理器的管理和调度
    • 主存储器的管理和调度
    • 其他资源的管理和调度

实现要点:

  • 如何使用资源:调用操作系统提供的服务例程(如何陷入操作系统)
  • 如何复用CPU:调度程序(在CPU空闲时让其他程序运行)
  • 如何使CPU与I/O设备充分并行:设备控制器与通道(专用的I/O处理器)
  • 如何让正在运行的程序让出CPU:中断(中断正在执行的程序,引入OS处理)

操作控制计算机的视角

计算机系统操作方式

  • OS规定了合理操作计算机的工作流程
  • OS的操作接口 – 系统程序:OS提供给用户的功能级接口,为用户提供的解决操作计算机和计算共性问题的所有服务的集合
  • OS的两类作业级接口
    • 脱机作业控制方式:作业控制语言
    • 联机作业控制方式:操作控制命令

脱机作业控制方式

  • OS:提供作业说明语言
  • 用户:编写作业说明书,确定作业加工控制步骤,并与程序数据一并提交
  • 操作员:通过控制台输入作业
  • OS:通过作业控制程序自动控制作业的执行
  • 例:批处理 OS 的作业控制方式,UNIX 的 shell 程序,DOS 的 bat 文件

联机作业控制方式

  • 计算机:提供终端(键盘/显示器)
  • 用户:登录系统
  • OS:提供命令解释程序
  • 用户:联机输入操作控制命令,直接控制作业步的执行
  • 例:分时OS的交互控制方式

程序接口的视角 – 重点

操作系统的程序接口

  • 操作系统的程序接口:操作系统为程序运行扩充的编程接口
  • 系统调用:操作系统实现的完成某种特定功能的过程;为所有运行程序提供访问操作系统的接口
  • POSIX支持

系统调用的实现机制

  • 陷入处理机制:计算机系统中控制和实现系统调用的机制
  • 陷入指令:也称访管指令,或异常中断指令,计算机系统为实现系统调用而引起处理器中断的指令
  • 每个系统调用都事先规定了编号,并在约定寄存器中规定了传递给内部处理程序的参数

系统调用的实现要点

  • 编写系统调用处理程序
  • 设计一张系统调用入口地址表,每个入口地址指向一个系统调用的处理程序,并包含系统调用自带参数的个数
  • 陷入处理机制需要开辟现场保护区,以保存发生系统调用时的处理器现场。

系统调用的实现流程

系统结构的视角

操作系统软件的结构设计

  • OS 构件:内核、进程、线程、管程等
  • 设计概念:模块化、层次化、虚拟化
  • 内核设计是 OS 设计中最为复杂的部分

操作系统内核

  • 单内核:内核中各部件杂然混居的形态,始于1960年代,广泛使用;如Unix/Linux,及Windows(自称采用混合内核的CS结构)
  • 微内核:1980年代始,强调结构性部件与功能性部件的分离,大部分OS研究都集中在此
  • 混合内核:微内核和单内核的折中,较多组件在核心态中运行,以获得更快的执行速度
  • 外内核:尽可能减少内核的软件抽象化和传统微内核的消息传递机制,使得开发者专注于硬件的抽象化;部分嵌入式系统使用

操作系统实现的一种层次式结构

操作系统实现的另一种层次式结构

Reference

  1. 南京大学软件学院本科三年级课程《计算机与操作系统》
文章作者: ZY
文章链接: https://zyinnju.com/2022/11/06/计算机操作系统概述/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ZY in NJU