中断系统是计算机系统中响应和处理中断的系统,包括硬件子系统和软件子系统两部分,中断响应由硬件子系统完成,中断处理由软件子系统完成数据结构
在指令执行周期最后增长一个微操做,以响应中断编辑器
计算机系统中发现并响应中断/异常的硬件装置称为中断装置,因为中断源的多样性,硬件实现的中断装置有多种,分别处理不一样类型的中断,这些中断装置因计算机而异,一般有:函数
中断控制器是CPU中的一个控制部件,包括中断控制逻辑线路和中断寄存器,外部设备向其发出中断请求IRQ,在中断寄存器中设置已发生的中断;指令处理结束前,会检查中断寄存器,如有不被屏蔽的中断产生,则改变处理器内操做的顺序,引出操做系统中的中断处理程序性能
陷阱与系统陷阱是指令的逻辑和实现线路的一部分,执行指令出现异常后,会根据异常状况转向操做系统的异常处理程序,出现虚拟地址异常后,须要从新执行指令,每每越过陷阱独立设置页面异常处理程序,执行陷入指令后,越过陷阱处理,触发系统陷阱,激活系统调用处理程序操作系统
中断处理程序是操做系统处理中断事件的控制程序,主要任务是处理中断事件和恢复正常操做指针
中断处理过程:code
状况一:对于某些中断,在处理完毕后,直接返回刚刚被中断的进程blog
状况二:对于其余一些中断,须要中断当前进程的运行,调整进程队列,启动进程调度,选择下一个执行的进程并恢复其执行索引
当计算机检测到中断时,中断装置经过中断屏蔽位决定是否响应已发生的中断,能够有选择的响应中断队列
当计算机同时检测到多个中断时,中断装置响应中断的顺序,有优先度的响应中断,一种可能的处理次序:处理机硬件故障中断事件、自愿性中断事件、程序性中断事件、时钟中断等外部中断事件、输入输出中断事件、重启动和关机中断事件,不一样类型的操做系统有不一样的中断优先级
当计算机响应中断后,在中断处理过程当中,能够再响应其余中断,操做系统是性能攸关程序系统,且中断响应处理有硬件要求,考虑系统效率和实现代价问题,中断的嵌套处理应限制在必定层数内,如3层,中断的嵌套处理改变中断处理次序,先响应的有可能后处理
决定中断处理次序的因素:
操做系统必须全方位地管理计算机系统中运行的程序,所以操做系统为正在运行程序创建一个管理实体——进程,进程是一个具备必定独立功能的程序关于某个数据集合的一次运行活动,进程是操做系统进行资源分配和调度的一个独立单位,进程是操做系统进行资源分配和调度的一个独立单位
一个进程包括五个实体部分,分别是:
不一样程序在不一样数据集上运行:构成两个无关进程;不一样程序在相同数据集上运行:构成两个共享数据的交往进程
相同代码在不一样数据集上运行:构成两个共享代码的无关进程,共享的代码称为可再入程序,如编辑器;可再入程序是纯代码的
前述的程序与数据集均是内存级的,那么,在不一样时段中针对(同一个外存数据文件)运行(同一个外存程序文件),意味着彻底不一样的(P,C,D,R,Psw),因此两次运行构成两个不一样的进程
OS没法预期进程的数目与资源需求,计算机系统在运行过程当中可能出现资源不足的状况,运行资源不足表现为性能低和死锁两种状况,解决办法:剥夺某些进程的内存及其余资源,调入OS管理的对换区,不参加进程调度,待适当时候再调入内存、恢复资源、参与运行,这就是进程挂起
挂起态与等待态有着本质区别,后者占有已申请到的资源处于等待,前者没有任何资源
通常选择等待态进程进入挂起等待态,也可选择就绪态进程进入挂起就绪态,运行态进程还能够挂起本身,等待事件结束后,挂起等待态进入挂起就绪态,通常选择挂起就绪态进程予以恢复
进程控制块PCB是OS用于记录和刻画进程状态及环境信息的数据结构,借助PCB,OS能够全面管理进程的物理实体,刻画进程的执行现状,控制进程的执行
用于存放惟一标识该进程的信息:
用于存放该进程运行时的处理器现场信息:
用于存放与管理、调度进程相关的信息:
某一时刻进程的内容及其执行状态集合::
进程映像是内存级的物理实体,又称为进程的内存映像
进程的执行须要环境支持,包括CPU现场和Cache中的执行信息,OS中的进程物理实体和支持进程运行的环境合成进程上下文,包括如下:
进程上下文刻画了进程的执行状况
关键的进程管理软件包括::
队列管理模块是操做系统实现进程管理的核心模块,操做系统创建多个进程队列,包括就绪队列和等待队列,按需组织为先进先出队列与优先队列,队列中的进程能够经过PCB中的队列指引元采用单/双指引元或索引链接,出队和入队操做,进程与资源调度围绕进程队列展开
进程控制过程当中涉及对OS核心数据结构(进程表/PCB池/队列/资源表)的修改,为防止与时间有关的错误,应使用原语,原语是由若干条指令构成的完成某种特定功能的程序,执行上具备不可分割性,原语是由若干条指令构成的完成某种特定功能的程序,执行上具备不可分割性,原语的执行能够经过关中断实现,进程控制使用的原语称为进程控制原语,另外一类经常使用原语是进程通讯原语
进程切换指从正在运行的进程中收回处理器,让待运行进程来占有处理器运行,进程切换实质上就是被中断运行进程与待运行进程的上下文切换,处理过程是:
进程切换必须在操做系统内核模式下完成,这就须要模式切换,模式切换又称处理器状态切换,包括:
中断装置完成正向模式切换,包括:
中断返回指令完成逆向模式转换,包括:
1.(中断/异常等触发)正向模式切换并压入PSW/PC
2.保存被中断进程的现场信息
3.处理具体中断/异常
4.把被中断进程的系统堆栈指针SP值保存到PCB
5.调整被中断进程的PCB信息,如进程状态
6.把被中断进程的PCB加入相关队列
----------------------------------
7.选择下一个占用CPU运行的进程
----------------------------------
8.修改被选中进程的PCB信息,如进程状态
9.设置被选中进程的地址空间,恢复存储管理信息
10.恢复被选中进程的SP值处处理器寄存器SP
11.恢复被选中进程的现场信息进入处理器
12.(中断返回指令触发)逆向模式转换并弹出PSW/PC
进程切换必定发生在中断/异常/系统调用处理过程当中,常见的状况是:
一些中断/异常不会引发进程状态转换,不会引发进程切换,只是在处理完成后把控制权交回给被中断进程,处理流程是: