共28页第8页CollegeofTechnologyandEngineering第一部分(内容三)2.1中断和陷入引例:假设在某小饭馆中,仅有一位大师傅,现有三批客人几乎同时到达,第一批客人点6个菜,第二批点8个菜,第三批点4个菜,请思考如何炒这多个菜,才能使客人的满意度最高?分析:对于大师傅来说,设第一、二、三批客人的点菜单对应任务A、B、C,对于A任务又可细分为小任务A1、A2、…、A6,同理B分为B1、B2、…、B8,C分为C1、…、C4。2.1中断和陷入类比:一个大师傅一个“CPU”如何完成多个点菜单A、B、C?如何运行多个程序A、B、C?中断是实现多道程序并发运行的基础2.1中断和陷入概念中断/陷入:指系统发生某个异步/同步事件后,处理机暂停正在执行的程序,转去执行处理该事件的程序,执行完后再返回的过程。引入目的中断的引入:为了开发CPU和通道(或设备)之间的并行操作。当CPU启动通道(或设备)进行I/O后,通道(或设备)可以独立工作了,CPU也可以转去做与此次I/O不相关的事情,那么通道(或设备)I/O完成后,还必须告诉CPU,让CPU继续I/O以后的事情,通道(或设备)通过向CPU发中断告诉CPU此次输入输出结束。2.1中断和陷入CollegeofTechnologyandEngineering共28页第15页陷入引入:用于表示CPU执行指令时本身出现算术溢出,零做除数,取数时的奇偶错,访存指令越界,或就是执行了一条所谓“陷入指令”(用于实现系统调用)等情况,这时中断当前的执行流程,转到相应的错误处理程序或陷入处理程序。注:最早中断和陷入并没有区分,都把它们叫做“中断”。随着它们的发生原因和处理方式的差别愈发明显,才有了以后的中断和陷入。2.1中断和陷入CollegeofTechnologyandEngineering共28页第15页中断/陷入分类中断(外中断)陷入(内中断、例外、异常I/O中断时钟中断机器故障系统调用程序性异常缺页异常中断:与正执行指令无关,可以屏蔽陷入:与正执行指令有关,不可屏蔽广义中断中断(狭义)与陷入的区别:2.1中断和陷入CollegeofTechnologyandEngineering共28页第15页中断的分级中断信号的存储——“中断寄存器”中断寄存器:寄存中断事件的全部触发器。中断位:每个触发器称为一个中断位,当发生某个中断事件时相应位被置1,否则为0。中断序号:给中断的一个顺序编号.……………101012中断寄存器示意图2.1中断和陷入CollegeofTechnologyandEngineering共28页第15页中断的分级中断优先级(响应级别)思考:由于中断信号是由不同外部设备产生的,可能在同一时刻由不同外设向CPU发出多个中断信号,这样就存在谁先被响应、处理的优先次序问题,该如何解决?中断优先级2.1中断和陷入CollegeofTechnologyandEngineering共28页第15页高级中断处理中级中断处理低级中断处理中断优先级:中断的优先程度。原则上,高、低优先级中断同时到先响应高级中断。高级中断可以打断低级中断处理程序的运行,同级中断同时到时,则按位序响应。低级中断处理中级中断处理高级中断处理多级中断同时产生的CPU轨迹高级中断打断低级中断的CPU轨迹2.1中断和陷入CollegeofTechnologyandEngineering共28页第15页中断优先级设计原则:一般来说,高速设备的中断优先级高,慢速设备的中断优先级低。因为高速设备的中断被处理机优先响应可以让处理机尽快地向他发出下一个I/O请求,提高高速设备的利用率。如PDP-11机上的UNIX系统把中断级别分为:时钟中断:中断优先级=6级磁盘中断:中断优先级=5级终端等其它外设中断:中断优先级=4级注:这里优先数越大,优先级别越高,但不一定,由不同系统的设计而定2.1中断和陷入CollegeofTechnologyandEngineering共28页第15页中断屏蔽概念:中断屏蔽指禁止处理机响应中断或禁止中断出现,一般指前者。方法:硬件实现(软件置处理机优先级,硬件按系统设计时的约定屏蔽那些低优先级中断)处理机优先级:指出处理机正运行程序的中断响应级别。即当处理机处于某一优先级时,只允许处理机去响应比该优先级高的中断,而屏蔽低于或等于其的中断。可以通过置处理机优先级来通知硬件(设置屏蔽寄存器)屏蔽优先级小于等于处理机优先级的中断.例:以PDP-11机为例,当处理机优先级为5时,系统将屏蔽磁盘、终端及其他外设中断,响应时钟中断。2.1中断和陷入CollegeofTechnologyandEngineering共28页第15页方法:软件实现(由软件按操作系统优先级约定置屏蔽寄存器)中断寄存器屏蔽寄存器1110响应中断中断屏蔽图示高优先级中断源低优先级中断源2.2中断/陷入响应和处理CollegeofTechnologyandEngineering共28页第15页中断/陷入响应中断响应:中断信号是外部设备发给CPU的,故在CPU的控制部件中需增设一个能检测中断的机构。该机构能够在每条机器指令执行周期内的最后时刻扫描中断寄存器,“询问”是否有中断信号。若无中断信号,CPU继续执行程序的后续指令,否则CPU停止执行当前程序的后续指令,无条件地转入操作系统内的中断处理程序。这一过程称为中断响应。2.2中断/陷入响应和处理CollegeofTechnologyandEngineering共28页第15页中断/陷入响应陷入响应:陷入是在执行指令的时候,由指令本身的原因发生的,因此当指令的实现逻辑发现发生了异常则转入操作系统内的异常处理程序。2.2中断/陷入响应和处理CollegeofTechnologyandEngineering共28页第15页(一)断点和恢复点PC:程序计数器,指向当前指令的下一条指令。断点:检测到中断时,处理机刚执行完的那条指令地址。恢复点:断点的逻辑后续指令地址,即PC的值。现场信息:指中断那一刻确保被中断程序能继续运行的有关信息。如PC,通用寄存器,特殊寄存器的内容等。几个基本概念2.2中断/陷入响应和处理CollegeofTechnologyandEngineering共28页第15页断点和恢复点图示断点恢复点注:陷入发生后,恢复点会因为不同的陷入原因而有所区别(不一定是断点的下一条指令)。如:程序性异常(除0错、溢出)——结束程序系统调用(访管指令)——返回访管指令的下一条执行访存指令(缺页)——返回该“访存指令”2.2中断/陷入响应和处理CollegeofTechnologyandEngineering共28页第15页(二)核心态与用户态核心态(系统态,监督方式,管态):操作系统程序的运行状态。当CPU处于内核态时,它可以执行计算机中所有指令。用户态(用户方式,目态):用户程序的运行状态。当CPU处于用户态时,它只能执行非特权指令,包括访管指令,但不能执行特权指令。注:用户态程序不能直接调用内核态程序,而是通过执行访管指令即系统调用,引起一次中断,系统控制由中断系统转入执行OS内核态程序,这一过程是由硬件完成的。区分的目的:保护OS程序,提高OS的可靠性和安全性。2.2中断/陷入响应和处理CollegeofTechnologyandEngineering共28页第15页(三)中断向量中断向量:一片存放中断处理程序入口地址和程序运行所需处理机状态字的内存单元。PS(PSW):处理机状态字。PS寄存器描述了CPU的执行状态,主要包括:处理机当前运行态标志位。内设一个标志触发器,根据当前值为0或1分别表示处理机在核心态或用户态。处理机优先级标志位是否屏蔽外中断标志位2.2中断/陷入响应和处理CollegeofTechnologyandEngineering共28页第15页中断/陷入处理的一般过程:一旦CPU响应中断/陷入,系统就开始进行中断/陷入处理,过程如下:①保存现场。为了在中断处理结束后能使被中断程序正确地返回到中断点,系统必须保存当前处理机的PSW和PC等的值。①分析原因,转中断/陷入处理程序(根据中断向量)。在多个中断请求同时发生时,先处理优先级最高的中断源发出的中断请求。③恢复现场。恢复被中断程序的现场,CPU继续执行原来被中断的程序。2.3OS与人的接口CollegeofTechnologyandEngineering共28页第15页OS提供的用户接口:系统调用、命令接口、图形接口(GUI)系统调用定义:也称为程序接口,用户程序可以利用系统提供的一组系统调用命令,来调用OS内核中的一个或一组过程以完成自己所需的功能。如:打开文件fd=open(name,…)关闭文件s=close(fd)2.3OS与人的接口CollegeofTechnologyandEngineering共28页第15页系统调用作用:系统调用是OS内核和用户态运行程序之间的接口,它把用户程序的请求传送至内核,调用相应的内核函数完成所需的处理,将处理结果返回给用户程序。由于计算机系统中各种共享资源都有OS统一管理,所以在OS的外层软件或用户程序中,凡是涉及OS核心管理资源的操作必须由系统调用实现。2.3OS与人的接口系统调用访管指令:由于系统调用而引起处理机“中断(指陷入)”的机器指令称为访管指令或自陷指令。它属于非特权指令,在用户态下执行时会将CPU转换为内核态。用户程序执行调用系统调用从系统调用返回执行系统调用内核用户进程用户态模式位=1核心态模式位=0陷入模式位=0返回模式位=1系统调用过程中CPU模式的转换2.3OS与人的接口系统调用问题:当OS完成用户要求的“系统调用”功能后,应使CPU在什么状态工作?一般的程序调用和系统调用的区别:一般的程序调用都是调用一个应用子程序或者某个系统子程序,调用者与被调用者都处于同一状态,即用户态或核心态;而系统调用的发出者是运行在用户态下的用户程序,被其调用的子程序是运行在核心态下的系统程序。从核心态转到用户态2.3OS与人的接口CollegeofTechnologyandEngineering共28页第15页命令接口用户利用OS命令组织和控制作业的执行或管理计算机系统,用户在命令输入界面上输入命令,由系统在后台执行,并将结果反映到前台界面或特定的文件。图形接口图形用户接口采用图形化的操作界面,用非常容易识别的各种图标来将系统各项功能、各种应用程序和文件,直观、逼真地表示出来。组成图形接口的基本元素有窗口、图标和菜单等。作业1.一个多道批处理系统中仅有P1和P2两个作业,P2比P1晚5ms到达,它们的计算和I/O操作顺序如下:P1:计算60ms,I/O80ms,计算20msP2:计算120ms,I/O40ms,计算40ms若不考虑调度和切换时间,则完成两个作业需要的时间最少是多少ms?2.什么是操作系统?它有什么基本特征?P264,7P461,6,9CollegeofTechnolo