第二章 处理器管理
处理器管理(最核心功能)
处理器及中断
指令分类:数据处理类指令,转移类指令,数据传送类指令,移位与字符串指令,I/O类指令。
中断码:保存程序执行时当前发生的中断事件。
中断屏蔽位:指明程序执行中发生中断事件时,是否响应出现的中断事件。
进程及其实现
进程的定义和性质
进程是可并发执行的程序在某个数据集合上的一次计算活动,也是操作系统进行资源分配和保护的基本单位。
进程是一个既能用来共享资源,又能描述程序并发执行过程的一个基本单位
进程是动态的,程序是静态的;进程是暂时的,程序是永久的
进程:代码+数据+状态,
进程的状态和转换


挂起状态:无法立即执行,进程进入挂起状态是由于操作系统、父进程或进程本身阻止它的运行,结束进程挂起状态的命令只能通过操作系统或父进程发出。
进程的描述和组成
进程切换与模式切换
进程的控制和管理
线程及其实现
处理器调度
处理器调度的层次
高级调度:多道批处理系统,选择作业进入主存,通常不需要分时系统
中级调度:外存与内存中的进程对换,提高主存的利用率
低级调度:就绪\(\to\)运行,操作系统必备
后备作业队列一般由高级调度负责,将其分配后,挂起就绪队列与挂起等待队列由中级调度负责,而就绪队列由低级调度负责。

选择调度算法的原则
CPU利用率:\(\displaystyle \frac{\text{CPU有效工作时间}}{\text{CPU总运行时间}}\)
CPU总运行时间=CPU有效工作时间+CPU空闲等待时间
吞吐率:单位时间内CPU处理作业的数目
公平性:避免饥饿
响应时间:交互式进程从提交一个请求到接收到响应之间的时间间隔(实时系统,分时系统的重要指标)
周转时间:批处理用户从作业提交给系统开始,到作业完成为止的时间间隔称作业周转时间(批处理系统的重要指标)
作业周转时间/平均作业周转时间:如果作业\(i\)提交给系统的时刻是\(t_s\),完成时刻是\(t_f\),该作业的周转时间为\(t_i=t_f-t_s\)
带权周转时间/平均带权周转时间:如果作业\(i\)的周转时间为\(t_i\),所需运行时间为\(t_k\),则称\(w_i=\displaystyle \frac{t_i}{t_k}\)为该作业的带权周转时间

作业和进程的关系
作业的管理与调度
Linux和Windows处理器调度算法
低级调度的功能和类型
调度:实现调度策略:组织和维护就绪进程队列,包括确定调度算法按调度算法组织和维护就绪进程队列。
分派:实现调度机制:当处理机空闲时,从就绪队列队首中移一个PCB,并将该进程投入运行,负责上下文切换等。
类型:剥夺式:高优先级进程/线程可剥夺低优先级进程/线程,当运行进程/线程时间片用完后被剥夺(用户程序)
非剥夺式:一直运行,直到完成或自我放弃(内核关键程序)
作业调度和低级调度算法
先来先服务算法(FCFS)
作业1,2,3同时到达,分别耗时28,9,3。提交顺序为1,2,3时,平均周转时间为35;提交顺序为3,2,1时,平均周转时间为18。
最短作业优先算法(SJF)
以进入系统所要求的CPU时间为标准,总选取估计计算时间最短的作业投入运行。比FCFS好。
缺点:很难估计作业运行时间,容易出现饥饿,非抢占式
最短剩余时间优先算法(SRTF)
将SJF算法改为抢占式的,不但适用于工作调度,同样适用于进程调度。
| 进程 | 到达系统时间 | 所需CPU时间/ms |
|---|---|---|
| P1 | 0 | 8 |
| P2 | 1 | 4 |
| P3 | 2 | 9 |
| P4 | 3 | 5 |
SJF算法平均等待时间:7.75ms;SRTF算法平均等待时间:6.5ms
响应比最高者优先算法(HRRF)
FCFS只考虑等待时间,忽略运行时间;SJF只考虑运行时间,忽略等待时间。HRRF是折中方案。
响应比:\(\displaystyle 1+\frac{\text{已等待时间}}{\text{估计运行时间}}\),响应比最大的最先运行.
优点:短作业容易得到较高响应比,长作业等待时间足够长后,也将获得足够高的响应比,不会发生饥饿现象。
静态优先算法
使用外围设备频繁者优先级高,有利于提高效率
重要算题程序的进程优先级高,有利于用户
进入计算机时间长的进行优先级高,有利于缩短作业完成的时间
交互式用户的进程优先级高,有利于终端用户的响应时间
动态优先算法
根据进程占有CPU时间多少来决定:进程占有CPU时间愈长,在它被阻塞之后再次获得调度的优先级就越低。
根据进程等待CPU时间多少来决定:当进程在就绪队列中等待时间愈长,那么,在它被阻塞之后再次获得调度的优先级就越高。
实时调度算法
多处理机调度算法