-
中断与处理器调度
-
中断是实现多道程序设计的必要条件,表示一切导致控制随机发生转移的事件。
-
系统启动后,操作系统处于中断状态。
-
-
中断概念
-
遇到突发事件,必须中止当前程序,处理此事件,之后恢复原来运行的程序。
-
-
中断系统
-
中断装置
-
硬件部分,发现并响应中断。
-
识别中断源:选择级别最高的中断源。
-
每个中断源有一个中断寄存器,用于保存与中断相关的信息(中断字),便于中断处理程序分析原因和采取措施。
-
-
保存现场:将正在运行的进程的PSW和PC压入系统栈。
-
引出中断处理程序:根据中断字,将对应的中断向量送入PSW(中断处理程序的运行环境)和PC(中断处理程序的入口地址)中,如此转入中断处理程序。
-
中断向量的位置是硬件规定的,内容是OS在初始化时设置好的。
-
-
-
中断处理程序
-
每类中断事件有一个中断处理程序。
-
位于操作系统中,软件部分。
-
若时机恰当,系统考虑切换进程,进行程序调度。
-
-
中断类型
-
强迫性中断
-
时钟中断:最重要的中断。
-
输入输出中断。
-
控制台中断。
-
硬件故障中断。
-
程序错误中断。
-
-
自愿性中断
-
系统调用。
-
访管指令:要求系统提供某种服务。非特权指令,CPU暂停用户程序执行,用OS为用户服务。
-
-
-
-
中断嵌套和系统栈
-
中断嵌套
-
如果系统在处理一个中断事件的过程中又响应了新的中断,则发生中断嵌套。栈(系统空间中)是中断现场的保存区域。
-
被中断程序的PSW和PC需要由中断装置压入系统栈,被中断程序的其他现场信息(如寄存器中的内容)由中断处理程序选择性压入系统栈,系统栈位置由硬件确定。
-
-
-
中断优先级
-
硬件将中断源分为若干个级别,称为中断优先级别。优先级高的先响应。
-
硬件系统提供了中断屏蔽指令,即暂时禁止中断源发送中断请求。
-
通常,不允许同级和低级的中断,但允许更高级的中断插入。
-
优先级不可改变,但能通过屏蔽来调整响应次序。
-
关中断:一些程序段的执行不允许任何中断打扰(如保存现场和恢复现场),故屏蔽所有中断源。
-
-
-
中断处理逻辑
-
图3-6及其课本说明
-
图3-7及其课本说明
-
表3-1(注意:就绪到核心运行时,PCB恢复核心现场信息,核心运行到等待时,PCB保存核心现场信息;而核心运行到目态运行时,系统栈弹出核心级别现场的寄存器信息、PSW和PC,反之压入目态级别现场的PSW和PC、寄存器信息到系统栈。当进程发生中断(目态运行到核心运行,核心运行到核心运行)时,压入PSW,PC等到系统栈,而若要发生进程切换,再将更多的现场信息保存到PCB中。只有中断后,才有可能保存信息到PCB,并且中断后进程就进入核心态运行。)
-
-
现场级别
-
中断现场
-
保存在系统栈中
-
发生中断时,目态现场(PSW,PC,寄存器)压入系统栈,其次中断处理程序的嵌套函数调用的返回点,参数,局部变量,返回值压入系统栈。若中断嵌套,则核心级别现场压入系统栈,核心级别现场的中断嵌套函数信息压入系统栈。
-
-
进程切换现场
-
保存在进程PCB中
-
进程切换时,涉及核心态的等待和剥夺,故PCB保存的现场是核心级别现场。(目态没有等待和剥夺,若涉及等待和剥夺,等待和剥夺的状态会被记录,而这是用户级现场所不可具备的。)换而言之,目态现场因为中断而被操作系统管理后,变成核心现场,核心现场信息再被保存在PCB中。
-
-
-
中断处理历程
-
强迫性中断
-
输入输出中断处理
-
通道发出
-
-
正常结束:再启动通道或唤醒进程
-
传输错误:进行复执;复执失败一定次数后通知操作员
-
-
-
-
时钟中断处理
-
硬件时钟
-
绝对时钟:年月日
-
间隔时钟:间隔产生中断信号
-
时钟中断管理(P57)
-
-
-
软件时钟
-
硬件和程序实现
-
-
-
控制台中断处理
-
利用控制台发出中断请求
-
-
硬件故障中断管理
-
人工干预;中断处理程序保存现场信息
-
电源故障
-
将寄存器内容和内存信息保存到外存
-
停止外围设备工作
-
停止处理器工作
-
排除后:启动处理器恢复程序
-
启动外围设备工作
-
取回保存的信息
-
-
主存故障
-
奇偶校验错误或海明校验错误引起。
-
将其划分为永久性的不可用区域。
-
-
-
-
程序错误中断处理
-
只能由系统处理的中断
-
内存访问越界,执行非法特权指令,缺页故障,缺段故障等影响到其他进程或者OS。
-
-
可由用户处理的中断
-
浮点数溢出,阶数为0等。如果用户没有指定处理方式,则按标准处理方法处理。
-
用户自编的处理程序叫做中断续元,其入口地址叫做中断续元入口。对于发生在不同位置的同种中断,用户可以给出不同的处理方法。
-
中断续元表:每个程序具备,长度为系统允许用户处理的中断的个数。表的初始内容只有PSW,PC为0。中断续元的调用为目态。
-
图3-10及其课本描述
-
-
-
-
自愿性中断处理
-
用户程序在目态执行访管指令时引起。(P61)
-
-
-
-
处理器调度(进程调度,低级调度)
-
CPU资源在进程或线程之间的分配。
-
操作系统不可调度用户级线程,可调度包含其的进程。
-
进程的执行为CPU阵发期与I/O阵发期的交替。
-
CPU阵发期:对处理器一次连续的使用。
-
阵发时间:在CPU阵发期所需要的处理时间。
-
阵发时间的递推公式。P63
-
-
处理器调度算法
-
根据CPU阵发时间,确定了处理器的分配策略,确定了进程的运行次序。
-
指标
-
CPU利用率尽可能高
-
吞吐量尽可能高
-
周转时间(任务从就绪(到达/进入系统)到完成所用的时间)尽可能低
-
平均周转时间,衡量对同一作业流的不同调度算法的调度性能,越小越好
-
带权周转时间(大于1)
-
平均带权周转时间,衡量不同作业流的同一调度算法的调度性能,越小越好
-
-
响应时间(任务从就绪到开始处理所用的时间)尽可能低
-
系统开销尽可能少
-
-
先到先服务算法
-
按照申请CPU的次序来调度。公平但是短进程等待时间长,从而平均等待时间长。
-
-
最短作业优先算法
-
按照CPU阵发时间递增的顺序调度,平均周转时间最短,不公平:一个较长的就绪任务可能会被饿死。
-
-
最短剩余时间优先算法
-
剥夺式的最短作业优先算法,优先选择剩余时间最短的进程或线程。
-
-
最高响应比优先算法
-
先到先服务,最短作业优先的折中。
-
响应比公式及其说明。P65
-
-
最高优先数优先算法
-
由一个数字来表达进程的紧迫程度/优先级。
-
静态优先数:进入系统时拥有的固定优先数,简单开销小,但对低优先级公平性差。(适合批处理)
-
动态优先数:进程获得资源时提高其优先级,以免资源被浪费。进程就绪态过久,提高其优先级。资源利用率高,公平性好,但复杂开销大。
-
非剥夺式
-
进程一直运行,直到运行完毕或者进入等待。
-
-
剥夺式
-
发生进程切换:进程进入等待;运行完毕;出现高优先级的新就绪进程。
-
-
-
循环轮换算法(适合分时系统)
-
公平,响应及时。
-
每个进程一个时间片,进程按照就绪队列的次序轮流执行。
-
时间片用完时,若CPU阵发期未结束,进程未进入等待,则再度进入就绪队列尾部。
-
基本轮转(时间片等长)
-
改进轮转(可变长时间片):灵活,但需恰当。
-
-
分类排队算法
-
多个就绪队列。
-
通用操作系统中:实时就绪队列,分时就绪队列,批处理就绪队列。优先级递减。不同队列内的算法可不同。
-
-
反馈排队算法
-
多个就绪队列。
-
每个队列通常使用循环轮转算法。
-
进程可以在不同就绪队列移动。首次进入第一级就绪队列,逐层下降(最后一层循环);高优先级的队列时间片短。
-
特点
-
短进程优先处理。
-
设备资源利用率高。
-
系统开销小。
-
很好的一种适应性调度。
-
-
-
-
处理器调度时机
-
处理器调度程序是操作系统底层的模块,调用该程序的前提是进入操作系统(系统态)。
-
进程结束,进程等待资源,进程等待数据传输,会引起中断进而进程切换。
-
时钟中断,设备输入输出可能引起进程切换。
-
-
-
交换(中级调度)
-
系统控制并发程度的一个调度级别。
-
进程在内存和外存储器中的调度。
-
缓解资源紧张矛盾,减少并发度以降低系统开销。
-
并发度过高会导致激烈的资源竞争,降低进程推进速度,导致CPU资源切换频繁,增加系统开销。
-
-
图3-19。
-
-
作业调度(高级调度)
-
将一个作业由输入井送入内存。
-
使作业以进程的形式进入内存并获得运行资格。
-
流程
-
提交:输入机到输入井
-
后备:呆在输入井(作业调度1,位于操作系统高层)
-
执行:输入井到内存(作业调度1,2,位于操作系统高层)
-
完成:完成,进入输出井(作业调度2,位于操作系统高层)
-
退出:输出井到输出设备
-
-
作业调度(后备到执行)
-
不可剥夺式算法适合批处理作业。(FCFS,HPF,SJF,HRN)
-
-
-
实时调度
-
合理地安排多个实时任务的执行次序,使各个实时任务都能满足约束条件
-
随机性实时任务
-
周期性实时任务
-
硬实时任务
-
软实时任务(允许超时)
-
实时人物的紧迫程度用优先级表示
-
-
在实时系统中,有时间约束
-
就绪时间:可以开始处理的时间
-
开始截止期(最迟开始处理时间)
-
处理时间
-
完成截止期(最迟完成时间,一般是下一个周期的开始时间)
-
-
多个实时任务可调度的必要条件:∑Ci/Ti≤1
-
对于某些算法,并不能等于1
-
剥夺式调度
-
实现灵活,可以充分发挥处理器利用率,实现复杂
-
最早截止期优先调度
-
优先选择完成截止期最早的实时任务
-
-
最小裕度优先调度
-
裕度L越小,优先级越高
-
裕度为0必须立即分派,否则错过截止期
-
-
-
非剥夺式调度
-
实现简单,处理器往往不能负载运行(一个任务完成后,到下一个周期开始这一段空闲时间,可能不足以塞入一个任务,导致处理器空闲)
-
单调速率调度
-
任务发生频率越高(周期短),调度级别越高
-
可调度的上限值(查表)
-
开销小,效率偏高
-
-
-
-
计算机操作系统教程:中断与处理器调度-期末复习大纲
最新推荐文章于 2024-06-02 07:43:40 发布