1.1.1 计算机系统概述

冯诺依曼结构

image-20250510185225182

1.1.2 计算机硬件系统

计算机系统包括硬件子系统软件子系统

硬件系统

  • 中央处理器
    • 运算单元
    • 控制单元
  • 主存储器
  • 外围设备
    • 输入设备
    • 输出设备
    • 存储设备
    • 网络通信设备
  • 总线

存储程序计算机在体系结构上主要特点

  • 以运算单元为中心,控制流由指令流产生

  • 采用存储程序原理,面向主存组织数据流

  • 主存是按地址访问、线性编址的空间

  • 指令由操作码和地址码组成

  • 数据以二进制编码

image-20250510185801523

总线(Bus)

总线是计算机各种功能部件之间传递信息的公共通信干线,是CPU主存、输入输出设备传递信息的公用通道

计算机的各个部件通过总线相连接,外围设备通过相应的接口电路再与总线相连接,从而形成了计算机硬件系统

根据所传输信息种类,总线包括

  • 一组控制线
  • 一组数据线
  • 一组地址线

总线类型

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

中央处理器(CPU)

是计算机的运算核心(Core)和控制单元(Control Unit)

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

处理器和寄存器

image-20250510191227052

1.1.3 计算机软件系统

计算机软件系统的组成

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

image-20250511163235662

1.2.1计算机操作技术的发展

简单批处理系统的操作控制

  • 引入作业控制语言,用户编写作业说明书,描述对一次计算机求解(作业)的控制

操作系统与自动化操作控制

  • 电子计算速度与机械I/O速度的矛盾
    • 设备在慢慢输,CPU在等
  • 在程序执行过程中能否同时输入其他作业,实现时间重叠,提高处理器利用率
    • 需要多道程序同时执行
    • 程序切换需要高速的外存储设备
  • 磁盘设备出现
    • 计算机操作系统浓墨登场,实现了计算机系统的自动化控制

1.2.2 计算机操作系统

操作系统的概念

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

操作系统的类型

  • 多道批处理操作系统,脱机控制方式 内存中存放多道程序,当某道程序因某种原因如执行I/O操作时而不能继续运行放弃CPU时,操作系统便调度另一程序运行,这样CPU就尽量忙碌,达到提高系统效率的目的 宏观上并行
  • 分时操作系统交互式控制方式 允许在一台主机上同时连接多个终端,各个用户可以通过各自的终端交互使用计算机 是一种基于时间片轮转调度算法的操作系统。它将时间分成若干个时间片,每个时间片分配给一个任务,任务在该时间片内运行。当时间片用完时,操作系统会把任务挂起,然后将CPU分配给下一个任务,以此类推。在分时操作系统中,每个任务都有相同的时间片,因此任务的处理时间并不是非常关键 Unix操作系统是第一个实用化的分时操作系统
  • 实时操作系统 为了满足实时性要求而设计的操作系统。它可以确保任务在规定的时间内得到响应和完成,因此在实时操作系统中,任务的处理时间是非常关键的。在实时操作系统中,任务分为硬实时和软实时两种类型。硬实时任务必须在固定的时间内完成,而软实时任务则有一定的容忍度,但是必须在允许的时间范围内完成。

1.3.1 资源管理的视角

计算机系统的资源

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

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

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

屏蔽资源使用的底层细节

  • 驱动程序:最底层的、直接控制和监视各类硬件(或文件)资源的部分
  • 职责是隐藏底层硬件的具体细节,并向其他部分提供一个抽象的、通用的接口

资源的共享方式

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

资源分配策略

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

1.3.2 控制程序执行的视角

多道程序同时计算

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

单道程序设计

缺点在于单个程序没有结束之前独占CPU,该程序在做输入输出时,CPU空闲,性能浪费

多道程序设计 在一台处理机上并发运行多个程序

指让多个程序同时进入计算机的主存储器,交替使用处理器,进行计算

多道程序系统的实现

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

多道程序系统的实现要点

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

1.3.3 操作控制计算机的视角

计算机系统操作方式

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

脱机作业控制方式

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

联机作业控制方式

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

1.3.4人机交互的视角

操作系统的人机交互部分

  • OS改善人机界面,为用户使用计算机提供良好的环境
  • 人机交互设备包括传统的终端设备新型的模式识别设备
  • OS的人机交互部分用于控制有关设备运行理解执行设备传来的命令
  • 人机交互功能是决定计算机系统友善性的重要因素,是当今OS研发热点

趋势:行命令->全屏->GUI界面

1.3.5程序接口的视角

操作系统的程序接口

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

系统调用的实现机制

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

系统调用的实现要点

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

image-20250511173918600

1.3.6系统结构的视角

操作系统软件的结构设计

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

操作系统内核

image-20250511174238029