目录
1、中断与中断系统
中断概念:
中断装置:
中断相关概念:
中断优先级别与中断屏蔽
2、处理机(CPU)调度
调度相关参数:P62
调度算法:
处理机调度时机
处理机调度过程
3、调度级别与多级调度
调度级别
交换与中级调度
作业与高级调度
4、实时调度
实时任务:
实时调度:
最早截至优先算法EDF(可剥夺)P76:
单调速率调度RMS(不可剥夺)P76:
1、中断与中断系统
中断概念:
定义:处理机在运行过程中,出现了某一事件,必须中止正在运行的程序,转去处理这个事件,然后再返回原来运行的程序,这一过程称为中断。
实现中断需要中断系统,中断系统由软硬件两部分组成,硬件部分叫中断装置、软件部分叫中断处理程序。
中断装置:
中断系统的硬件部分,职能是发现并响应中断,其工作过程包括以下步骤:
1、识别中断源:当有多个中断源时,按优先级别排队;
2、保存现场:将正在执行的程序的程序状态字PSW及指令计数器PC压入系统栈 ;
3、引出中断处理程序:处理中断事件。
中断相关概念:
中断源:
引起中断的事件。
中断字:
中断寄存器的内容。协助中断处理程序进一步分析触发中断的原因并采取相应的处理措施。中断寄存器是用于保存与中断事件相关信息的寄存器。
中断类型
强迫性中断(运行程序不期望的):无法预知
例如:时钟中断、IO中断、控制台中断、硬件故障中断( power failure,内存校验错 )程序错误中断(越界,越权,缺页 、溢出,除0 ,非法指令)
自愿性中断(运行程序期望的):要求系统提供服务,发生必然,且位置确定。
例如:系统调用 ( fd=open(fname,mode) )
访管指令 (准备参数 svc n 取返回值)
中断向量:
中断处理程序的运行环境(PSW)与入口地址(PC),发生中断事件,中断装置会将PSW和PC分别送入程序状态字和指令计数器中,如此便可以执行对应的中断处理程序。因而PSW和PC被称为中断向量。
每类中断事件有一个中断向量, 中断向量的存放位置是由硬件规定的,存放在内存的固定单元处。中断向量的内容是OS在系统初始化时设置好的。
中断嵌套与系统栈:
中断嵌套:高优先级打断低优先级,因为现场保护和现场恢复次序相反,所以采用系统栈的形式来保存现场信息。
系统栈:它除了保存基本的现场信息外,还有传送操作系统子程序之间相互调用的参数、返回值以及返回地址。
中断优先级别与中断屏蔽
中断优先级:硬件规定的中断响应次序,依据: 紧迫程度, 处理时间。
中断屏蔽:屏蔽高优先级的中断事件,禁止打断。
中断处理逻辑:
这里有两个现场,一个是中断现场(嵌套中断时,保存),另一个是进程切换现场(涉及等待和剥夺),中断现场保存在系统栈中,进程切换现场相当于调度另一个进程,其保存在进程控制块PCB中,二者皆处于核心态(管态)。
2、处理机(CPU)调度
调度相关参数:P62
周转时间:作业等待时间和处理时间之和,即作业进入系统时间和完成时间之差。
平均周转时间:所有作业周转时间的平均值。
带权周转时间:作业周转时间和作业运行时间之比。
平均带权周转时间:所有作业带权周转时间的平均值。
调度算法:
1、先到先服务算法FCFS(非剥夺)P63
操作系统按进入就绪态的进程的先后次序来分配CPU。
2、最短作业优先SJF(非剥夺)P64
操作系统按CPU阵发时间的大小(相当于完成这个任务所需的CPU时间,从小到大排列)来分配CPU,同样其也受进入就绪态的次序影响(还没进入就绪态的进程哪有资格给CPU处理呢)。
3、最短剩余时间优先SRTN(可剥夺)P65
操作系统每次都选择剩余CPU阵法时间最短的进程或线程来分配CPU。比如:当前进程A还需要CPU处理30ms,而新到的进程B只需要CPU处理20ms,这时进程B就可以剥夺进程A,CPU会优先处理进程B。
4、最高优先数算法HPNF(可剥夺或不可剥夺)P66
优先数相当于优先级,分为两种一种是静态优先数,另一种是动态优先数。
静态优先数:进程进入系统时,被赋予的一个优先数,是固定不变的。
动态优先数:进程进入系统时,被赋予的一个优先数,是动态变化的。
非剥夺式的不可被剥夺,会一直运行下去,直到运行完成或因为某种事件而等待。
剥夺式的低优先数的进程会被高优选数的进程剥夺,保证了CPU运行的都是当前最高优先数的进程。
5、循环轮转算法RR(不可剥夺)P67
给所有到达的进程规定一个时间片,所有进程按照时间片的长短轮流进行,所有就绪进程构成就绪队列,用完时间片,但还未处理完成的进程将其放在队尾,重新分配时间片,新到的进程也放队尾,为其分配时间片。
基本轮转:时间片大小固定等长。
改进轮转:根据进程的不同特性,分配不等长的时间片,时间片长度是可变的。
6、分类排队算法
该算法是以多个就绪进程队列为特征的,按照某种原则对进程分类到相应的就绪队列。
7、反馈排队算法
该算法是以多个就绪进程队列为特征的,与前一个区别是进程可以在不同队列间移动。
8、最高响应比算法(不可剥夺)
对于同时到达的进程根据响应比计算公式计算的响应比大小来分配CPU,响应比大的先处理,响应比小的后处理。
响应比=(等待时间+CPU阵发时间)/CPU阵发时间
处理机调度时机
进程切换:如果在时刻T1进程P1在运行,在时刻T2进程P2在运行,且P1不等于P2,则在T1和T2之间发生了进程切换,并将P1称为下降进程,P2称为上升进程。
何时会发生进程切换,当进程中断时,会进入管态,并运行处理器调度程序(这是显式地调用),从而引起进程切换,也就是说中断是进程切换的前提,操作系统是靠中断驱动的。
以下是中断发生是否产生进程切换的情况。
处理机调度过程
1、保存下降进程的现场:下降线程现场信息写入进程控制块PCB
2、选择要运行的进程:按处理机调度的算法
3、恢复上升进程现场:从PCB里取出恢复到相应寄存器
3、调度级别与多级调度
调度级别
低级调度:处理器调度
中级调度:交换调度
高级调度:作业调度
三者构成了多级调度,实际调度以中级和高级为主。
交换与中级调度
交换是进程在内存和外存之间的调度,目的在于缓解内存空间资源紧张的问题,减小并发度以降低系统开销。
中级调度(中程调度)是系统控制并发程度的一个调度级别。当系统并发度高的时,将内存中的某些进程交换到外存,待其并发度低的时候,再交换回来。
作业与高级调度
高级调度(作业调度、长程调度、长期调度),将作业由输入井或外存调入内存,并为其建立内存,使其有运行资格。以下是作业状态转换关系图
4、实时调度
实时任务:
定义: 具有明确时间约束的计算任务。
分类:
按其发生规律划分:
1、周期性实时任务:每隔固定时间发生一次。
2、随机性实时任务:由随机事件触发,其发生时刻不确定。
按时间约束强弱划分:
1、硬实时 :必须满足任务截止期要求。
2、软实时 :期望满足截止期要求 。
实时调度:
定义:合理安排就绪实时任务的执行次序,满足每个实时任务时间约束条件的调度。
最早截至优先算法EDF(可剥夺)P76:
假定给定多个周期性实时任务,其可调度的必要条件公式如下:
令Ci为任务Pi处理时间,Ti为任务Pi的发生周期,则任务P1,…,Pm可调度的必要条件为:
首先所有周期任务必须满足可调度的必要条件,然后才能使用该算法调度。该算法会优先选择截止期最早的实时任务,完成截至期等同于发生周期。
单调速率调度RMS(不可剥夺)P76:
假定给定多个周期性实时任务,其可调度的必要条件公式如下:
令n为周期性任务个数,Ci为任务Pi处理时间,Ti为任务Pi的发生周期,则任务P1,…,Pm可调度的必要条件为:
以下是对应不同n值,RMS的上限值的变化,可以发现限制趋向0.693
首先所有周期任务必须满足可调度的必要条件,然后才能使用该算法调度。该算法会优先选择发生周期短的任务,也就是发生频率高的任务,完成截至期等同于发生周期。