处理器管理
多处理器系统
共享存储多处理器系统(紧密耦合)
- 主从式系统
- 对称式系统
分布存储多处理器系统(松散耦合)
寄存器管理
cpu和控制寄存器、数据寄存器、以及缓冲区之间的通信方式:
- 为寄存器分配端口号
- 为寄存器分配内存地址
- 既分配内存地址也分配端口号
特权指令和非特权指令
特权指令
仅供内核程序使用的指令
非特权指令
供所有应用程序使用的指令
处理器状态
根据当前执行的程序,修改处理器状态标识
核心态(管态)
获得所有权限
用户态(目态)
无法执行特权指令,访问仅限于当前进程地址空间
状态转换
1. 用户到核心
中断和异常是用户态到核心态转换的仅由途径
- 程序请求操作系统服务
- 程序运行时,产生中断和异常事件
2.核心到用户
通过调用特权指令
中断技术
中断是指在程序执行过程中,遇到急需处理的事件时,暂时中止现行程序在CPU上的运行,转而执行相应的事件处理程序,待处理完后再返回断电或调度其他程序执行。
中断的分类
- 机器故障中断
- 程序性中断
- 外部中断
- 输入输出中断
- 访管中断
按中断事件的来源和实现手段可将中断划分:
- 硬中断
要通过硬件设施来产生
- 外中断
来自处理器之外的中断信号 - 内中断(异常)
来自处理器内部的中断信号
- 外中断
(中断与异常的区别)
- 中断的发生与CPU模式无关
- 异常是有CPU控制单元产生的
- 信号
信号的发送者相当于中断源,信号的接收者必然是一个进程(相当于CPU)- 软件中断
采用软件方法对中断机智进行模拟,实现宏观上的异步执行。
中断和异常的响应
- 发现中断源
- 保护现场
- 转向中断/异常事件的处理程序
- 恢复现场
进程
进程是可并发执行的程序在某个数据集合上的一次计算活动,也是操作系统进行资源分配和保护的基本单元。
结构性
- 程序块
- 数据块
- 进程控制块
- 核心栈
共享性
- 动态性
- 独立性
- 制约性
- 并发性
进程的状态
运行态
进程占用处理器的状态
就绪态
进程具备运行条件,等待系统分配处理器以便其运行的状态
等待态(阻塞态、睡眠态)
进程不具备运行条件,正在等待某个时间完成的状态
新建态
进程被创建是的状态,进入就绪队列之前
终止态
进程完成任务,到达正常结束点,或因出现无法克服的错误而异常终止,或被操作系统及有终止权的进程所终止时所处的状态
挂起就绪态
进程具备运行条件,但目前在辅助存储器中
- 挂起等待态
表明进程正在等待某一事件发生且进程在辅助存储器中
进程的描述和组成
**进程映像****进程上下文**某时刻进程的内容及其状态集合
包括:
- 进程控制块
- 进程程序块
- 进程核心块
- 进程数据块
**进程控制块(进程描述符)** 进程存在的唯一标识,是操作系统用来记录和刻画进程转态及有关信息的数据结构,是进程动态特征的汇集进程物理实体和支持进程运行的环境合称
用户级上下文
程序块+数据块+堆栈
系统级上下文
PCB+内存管理信息+进程环境块+系统堆栈
寄存器上下文
各类寄存器
- 表示信息PID
- 现场信息
- 控制信息
进程队列
把所有PCB组织起来的结构
- 线性方式
- 链接方式
- 索引方式
进程是资源分配单位,线程是系统调度和分配单位
线程及其实现
线程组成部分:
- 线程唯一标识符及线程状态信息
- 未运行时所保存的线程上下文
- 核心栈
- 用于保存线程局部变量和用户栈的私有存储区
线程状态:
- 运行态
- 等待态
- 就绪态
线程的组织
- 调度员-工作者模式
- 组模式
- 流水线模式
线程的实现
内核级线程
线程的管理工作由应用程序完成,由内核提供的线程api使用线程,在内核空间建立和维护PCB和TCB
用户级线程
线程的管理由应用程序完成,在用户空间中实现。用户空间中的线程库是线程运行的支撑环境
- 混合式线程
处理器的调度
处理器调度的层次
- 高级调度 ——调度对象:作业
- 中级调度 ——决定进程在主存和辅存间的对换(挂起)
- 低级调度 ——调度对象:进程
处理器调度算法
非剥夺式
先来先服务算法(FCFS)
按作业进入后备作业队列的先后次序来挑选作业
最短作业优先算法(SJF)
总是选取预计时间最短的作业投入运行
- 响应比最高者优先算法(HRRF)
相应比 = 1+作业等待时间/作业处理时间
剥夺式
最短剩余时间优先算法(SRTF)
新进程进入就绪队列,如果他所需的CPU运行时间比当前运行进程所需的剩余CPU时间还短,抢占式最短作业优先算法强行剥夺当前执行者的控制权,调度新进程执行
轮转调度算法(RR)
就绪队列中进程轮流运行一个时间片
- 多级反馈队列调度算法(MLFQ)
系统建立多个就绪队列,每个队列一个优先级,优先级较高的分配较短时间片
- 彩票调度算法
为进程发放对应各种资源的彩票,当要调度的时候,随机选择一张彩票,彩票持有者获得相应的系统资源
可选
- 优先级调度算法(PS)
总是选择就绪队列中优先级最高的投入运行
- 优先级调度算法(PS)