处理器管理

2.1 处理器

2.1.1 处理器与寄存器

  • 用户程序可见寄存器:减少访问主存储器
  • 控制与状态寄存器
  • 程序状态字

2.1.2 指令与处理器模式

  • 机器指令:计算机系统执行的基本命令,中央处理器执行的基本单位
  • 指令执行过程:取指——解码——执行
  • 特权指令和非特权指令
  • 模式切换

2.2 中断管理

2.2.1 中断与中断源

  • ==中断==:程序执行过程中,遇到急需处理的事件时,暂时中止CPU上现行的程序,转去执行相应的事件处理程序,待处理完成后再返回原程序被中断处或者调度其他程序执行的过程
  • 操作系统是中断驱动的,中断是激活操作系统的唯一方式
  • 狭义的中断:来源于处理器之外的中断事件,与当前执行指令无关的中断事件
  • 异常:当前运行指令引起的中断事件=》非正常
  • 系统异常:执行陷入指令出发系统调用:请求设备、请求I/O、创建进程等
  • 中断源
    • 硬件故障
    • 程序性中断——异常
    • 自愿性中断——系统调用、陷入指令
    • I/O中断事件——IO处理
    • 外部中断事件——设备引起的中断(时钟、键盘)

2.2.2 中断系统

  • 中断系统是计算机系统响应并处理中断的系统

    • 硬件子系统=》中断响应
    • 软件子系统=》中断处理
  • 中断响应处理 =》在每个指令周期的最后进行

  • 中断装置:计算机系统发现并相应中断的硬件装置

    • 处理器以外的中断:中断控制器发现并响应
    • 处理器以内的异常:指令的控制逻辑和实现线路发现并响应
    • 请求OS服务的系统异常
  • 中断控制器:控制部件,中断控制逻辑线路+中断寄存器

    • 外部设备发出IRQ=》在中断寄存器中设置已发生的中断
    • 在指令处理结束前,检查中断的产生
  • 中断响应过程

2.2.3 多中断的响应与处理

  • 中断屏蔽可以使中断装置不响应某些中断
  • 中断优先级决定了中断装置响应中断的次序
  • 中断嵌套有层数限制
  • 中断的嵌套处理改变了中断处理的次序(先响应后处理)

2.3 进程管理

2.3.1 进程及其状态

  • 进程:一个具有一定独立功能的程序关于某个数据集合的一次运行活动

  • 进程是操作系统进行资源分配和调度的一个独立单位

  • 一个进程包括五个实体部分:P(管理运行程序的数据结构)、C(内存代码)、D(内存数据)、R(通用寄存器信息)、PSW(程序状态字信息)

  • 代码、数据、运行时间的不同都意味着不同的进程

  • 状态

    • 运行态:进程占有处理器
    • 就绪态:进程具备运行条件等待被处理器选中运行
    • 等待态:等待资源、输入输出、信号等而不具备运行条件

  • 挂起态:某些进程被剥夺了内存及其他资源,调入OS管理的对换区,不参加进程调度,等待适当时候再调入内存、恢复资源、参与运行 =》 进程挂起(不占据任何资源)

2.3.2 进程的数据描述

  • 进程控制块PCB,OS用于记录和刻画进程状态及环境信息的数据结构,借以全面管理进程的物理实体,刻画进程的执行现状,控制进程的执行
    • 标识信息:唯一标识进程
    • 现场信息:用户可见寄存器、控制与状态寄存器、栈指针内容
    • 控制信息
  • 进程映像:某一时刻进程的内容及其执行状态集合。进程映像是内存级的物理实体,又称为进程的内存映像
    • 进程控制块
    • 进程程序块
    • 进程数据块
    • 核心栈(内核模式)
  • 进程上下文:进程物理实体+支持进程运行的环境=》进程上下文
    • 用户级上下文
    • 寄存器上下文
    • 系统级上下文

2.3.3 进程管理的实现

  • 建立多个进程队列=》就绪队列和等待队列=》先进先出队列和优先队列

  • 进程的控制和管理

  • 进程控制过程中涉及对OS核心数据结构的修改需要使用原语

  • 进程切换

2.4 多线程技术

2.4.1 多线程环境概述

  • 单线程结构进程的问题:
    • 进程切换开销大
    • 进程通信开销大
    • 限制了并发进程的粒度
    • 降低了并行计算的效率
  • 多线程环境下,进程是OS进行保护和资源分配的基本单位线程是调度的基本单位,同一个进程中的所有线程共享进程获得的主存空间和资源。
  • 多线程优点:线程切换快速;减少管理开销;通信易于实现;并行程度提高;节省内存空间
  • 多线程应用:前后台工作、C/S应用模式、加快执行速度、设计用户接口

2.4.2 多线程的实现技术

  • 内核级多线程(KLT):线程管理的所有工作由OS内核来做

    • 线程切换需要内核参与=》模式切换=》系统开销大
    • 物理并行性问题
  • 用户级多线程(ULT):线程管理的所有工作都由应用程序完成,内核没有意识到线程的存在

    • 线程切换不需要内核参与;但是不能利用多处理器的优点,线程的阻塞会引起整个进程的阻塞
    • 逻辑并行性问题
  • Jacketing技术

    • 解决ULT中一个线程的阻塞引起整个进程阻塞的问题
    • 线程不是直接进行系统调用,而是调用jacketing程序,由jacketing程序来检查线程所需资源是否空闲,如果不空闲的话就进行线程切换(如果不使用jacketing技术,该线程就会陷入系统调用然后被阻塞),当该线程再次被赋予时间片的时候,jacket程序会再次检查资源是否空闲
      • 阻塞式系统调用=》非阻塞式
  • 混合式策略:组合用户级线程和内核级线程

    • 一个应用中的ULT会被映射到一个或多个KLT上

    • 线程的创建、调度和同步完全是在用户空间完成的

    • 调度图

内核级线程 用户级线程 混合式线程

2.5 处理器调度

2.5.1 处理器调度层次

  • 高级调度(长程/作业调度):决定能否加入到执行的进程池中
    • 新建态=》就绪态/就绪挂起态
    • 是否新建?是否加入进程池中?运行前的准备
  • 中级调度(平衡负载调度):决定主存中可用的进程集合(挂起相关)
    • 为了提高内存利用率和作业吞吐量
    • 决定哪些进程留在主存中参与处理器竞争,哪些进程换出主存
  • 低级调度(短程/进程调度):决定哪个可用进程可以占用处理器执行(核心三态模型之间的调度)

2.5.2 处理器调度算法

  • 优先数调度算法:根据分配给进程的优先数
    • 抢占式/非抢占式
    • 优先数确定准则:任务紧迫程度、交互性、使用外设频率、进入系统时间长短
    • 计算时间短、剩余计算时间短、响应比(等待时间/进入时间)高优先、先来先服务
  • 时间片轮转调度算法:根据进入就绪队列的时间先后轮流占有CPU一个时间片
  • 分级调度算法:多级队列策略
  • 彩票调度算法:随机?根据优先级发放彩票数量(优先级高彩票数量多)调度=》随机抽彩票

处理器管理
http://example.com/2023/02/15/nju-course-review-notes/os/processor-management/
作者
zhc
发布于
2023年2月15日
许可协议