资源描述
Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,Press here to Change Title,*,第二章操作系统的逻辑结构,主讲:张玉宏,yhily,补充理解资料,解释几个重要术语,操作系统的构件,我们把组成操作系统程序的单位称作操作系统的构件。,剖析现代操作系统,其构成操作系统的基本单元除内核之外,主要还有进程、线程、类程和管程。,1.,什么是进程,1,)进程的定义:,一个具有一定独立功能的程序在某个数据集合上的一次动态执行过程。,简单的可以理解为一个程序的动态执行,进程进程与程序的区别,进程是一个动态的概念,而程序则一个是静态的概念。,程序是指令的有序集合,没有任何执行的含义。而进程 则强调执行过程,它动态的被创建,并被调度执行后消亡。,进程是一个能独立运行的单位,能与其它进程并行活动,具有并行特性,而程序没有。,进程是竞争计算机系统资源的基本单位,也是进行处理机调度的单位。,同一个程序同时运行于若干不同的数据集合上,它将属于若干个不同的进程。,2.,什么是,线程,早期,进程是操作系统中资源分配以及系统调度的独立单位。,由于每个进程拥有自己独立的存储空间和运行环境,进程和进程之间并发性粒度较粗,通信和切换的开销相当大。,要更好地发挥硬件提供的能力(如多,CPU,),要实现复杂的各种并发应用,单靠进程是无能为力的,于是,近年来开始流行多线程(结构)进程(,Multithreaded process,),亦叫多线程。,2.,什么是,线程,线程是进程中一条执行路径,每个进程中允许有,多个并行,执行的路径。,在一个多线程环境中,,进程是系统进行保护和资源分配的单位,,而,线程才是系统进行调度的单位,。,在一个进程中包含有多个可并发执行的控制流,而不是把多个控制流一一分散在多个进程中,这是并发多线程程序设计与并发多进程程序设计的主要不同之处。,关 于 线 程 的 比 喻,假设某家庭主男正在,准备晚餐,,微波炉里正烤着面包,咖啡壶里正煮着咖啡,煤气灶边忙着煎鸡蛋。正忙活时,电话铃也想起来了,老婆打电话来说自己不喜欢喝咖啡,她想喝牛奶美容。,如果把,准备晚餐,比作,运行的进程的话,,那么在,没有线程的机制里,:他不能同时干这些事情,只能一件一件的干,(运行单一的进程),。因此他的炊具,(,CPU,等硬件),没有得到充分的利用,而稍微懂得统筹安排时间的人(,有线程的机制里,):他就会边关照着微波炉和咖啡壶,还可注意不把蛋煎糊了,如果电话铃响了,还可以把电话夹在腋窝下接电话,答应老婆用电磁炉给她热她爱喝的牛奶,(创建新的线程),,如此一来当然效率大大提高了,这就是多线程任务。,3.,什么是内核?,现代操作系统中大都采用了进程的概念,为了解决系统的并发性、共享性和随机性,使进程能协调地工作,,单靠计算机硬件提供的功能是十分不够的,。,例如,进程调度工作目前就不能用硬件来实现;而进程自己调度自己也是困难的。,所以,,系统必须有一个部分能对,硬件处理器及有关资源进行首次改造,,以便给进程的执行提供良好的环境。这个部分就是操作系统的,内核,。,内核的功能,一般而言,内核提供以下三方面功能:,1,)中断处理。,当中断事件产生时,先由内核的中断处理例行程序接受并进行原则处理。它分析中断事件的类型和性质,进行必要的状态修改,然后交给进程或模块去处理。,例如,产生外围设备结束中断事件时,内核首先分析是否正常结束,如果是正常结束,那么,就应释放等待该外围传输的进程。又如当操作员请求从控制台输入命令时,内核将把这一任务转交给命令管理进程或模块去处理。,内核的功能,2,)进程程调度。,主要职能是分配处理器。当发生了一个事件之后,可能一个进程要让出处理器,而另一个进程又要获得处理器。短程调度按照一定策略管理处理器的转让,以及完成保护和恢复现场的工作。,内核的功能,3,)原语管理。,原语是内核中一个完整的过程。为了协调进程并发工作和共享资源,同步原语是必不可少的,此外还有其它原语,如启动外围设备工作的启动原语,若启动不成功则请求启动者应等待,显然,这个启动过程应该是完整的,否则在成为等待状态时,可能外围设备已经空闲。,关于内核,内核是操作系统对裸机的第一次改造,内核和裸机组成了一台虚拟机,进程或模块就在这台虚拟机上运行,它比裸机的功能更大。,4.,什么是原语?,所谓原语(,service primitive,),是操作系统内核中,由若干条指令构成、用于完成一个特定的功能的一个过程,该过程在执行时是,不可中断,的。,如:创建进程原语:,create(n),,撤销进程原语:,destroy(n),,阻塞进程原语:,block(),,唤醒进程原语:,wakeup(n),开始课本内容,2.1,概述,操作系统是一个大型的复杂的系统软件。它对整个计算机系统实施控制和管理,为用户提供灵活、方便的结构。,操作系统包括处理机管理、存储管理、输入输出设备管理、文件系统管理,那么如何将这些复杂的模块构成一个完整的操作系统呢,这就是操作系统的结构问题。,操作系统的几种构造结构,操作系统规模庞大,结构复杂,其质量的好坏直接关系到计算机系统能否有效可靠的运行。,从操作系统的发展过程来看,构造操作系统的方法有如下几种:,1.,整体式结构,在早期开发操作系统时,设计者只是把他的注意力放在功能的实现和获得高的效率上,缺乏首尾一致的设计思想。这种,OS,是无结构的。,整体式系统,是最常用的组织方式,又叫模块组合法,但常被人们形容为“一锅粥”,其结构其实就是“,无结构,”。,Monolithic(one unstructured program),整体式结构,整个操作系统是一堆过程的集合,,每个过程都可以调用任意其他过程,。使用这种技术时,系统中的每一过程都有一个定义完好的接口,即它的入口参数和返回值,,而且相互间的调用不受约束。,整体式系统也必须,采用模块化的程序设计技术,,即将系统设计成若干个模块,信息被隐藏在这些模块内部,在外部只允许从预先定好的调用点访问这些模块。,整体式结构,模块接口结构具有一系列的优点,主要是编制紧凑程序,便于利用内存,但其对,goto,无限制,,缺乏清晰的程序结构,,难以维护和理解,,增加了维护人员的负担。,Monolithic Operating System,MS-DOS System Structure,MS-DOS written to provide the most functionality in the least space:,not divided into modules(monolithic).,Although MS-DOS has some structure,its interfaces and levels of functionality are not well separated.,MS-DOS System Structure,UNIX System Structure,UNIX limited by hardware functionality,the,original UNIX,OS had,limited structuring,.,The UNIX OS consists of two separable parts:,Systems Programs:,The Kernel:,Consists of everything below the system-call interface and above the physical hardware,Provides the file system,CPU scheduling,memory management,and other operating-system functions;a large number of functions for one level.,Traditional UNIX Kernel Bach86,2.,分层式,OS,结构,所谓分层结构,,即是把操作系统划分为内核和若干模块(或进程)组成,这些模块(或进程)排列成若干层,各层之间只能是单向依赖关系,不构成循环。,2.,分层式,OS,结构,层次结构是如此构造起来的,从裸机,A0,开始,在它上面添加一层软件,使机器的功能得以扩充,形成了一台功能比原来机器要强的虚拟机,A1,。,又从,A1,出发,在它上面添加一层新的软件,把,A1,改造成功能更强的虚拟机,A2,。,就这样“,添加,扩充,再添加,”,由底向上地增设软件层,每一层都在,原来虚拟机,的基础上扩充了原有的功能,于是最后实现一台具有所需操作系统各项功能的虚拟机。,Layered Approach,The operating system is divided into a number of layers(levels),each built on top of lower layers.The bottom layer(layer 0),is the hardware;the highest(layer N)is the user interface.,With modularity,layers are selected such that each uses functions(operations)and services of,only lower layers,.,An Operating System Layer,General OS Layers,Layered Operating System,Older Windows System Layers,OS/2 Layer Structure,3.,微内核结构,由于,Mach,操作系统成功应用了微内核,(,Microkernel,),技术,微内核的概念近来得到了广泛的关注。,尽管不同的操作系统开发者对微内核有着不同的解释,微内核技术可以看作是提供一个小型的操作系统核心,它为操作系统的扩展提供了基于模块扩充的基础。,这种方法给系统带来了高度的灵活性、模块性和可移植性,已经在微机、工作站和服务器操作系统中得到广泛使用。,3.,微内核结构,早期操作系统实现时采用过程调用的方式,系统缺乏结构性,过于庞大。,如,OS/360,由,5000,个程序员做了五年,有,100,万行源程序;,Multics,则包括,2000,万行。,以后,模块化程序设计技术被引进来解决大型软件的开发,于是出现了分层操作系统结构,操作系统被划分为进程管理、存储管理、设备管理、文件管理等等层次,它们一般都处于操作系统内核,很少分布在用户模式下。,3.,微内核结构,但是由于层与层之间是按功能划分的,互相之间关系密切,因此操作系统的扩充和裁减变得十分困难;并且由于许多交互卡在相邻层之间进行,还影响到系统的安全性。,现代操作系统的,一个趋势,是将这种把代码移到更高层次的思想进一步发展,从,操作系统中去掉尽可能多的东西,而只留一个最小的核心,。,通常的方法是将大多数操作系统功能由用户进程来实现。过去已成为操作系统传统的许多服务,现在成了与微内核交互的外部子系统。,微内核思想,微内核用水平型代替传统的垂直型结构操作系统。,微内核,基本思想是:,内核中仅存放那些最基本的核心操作系统功能。其它服务和应用则建立在微内核之外,在用户模式下运行。,Layered vs.,Microkernel,Architecture,分层结构内核和微内核结构对比,分层结构内核和微内核结构对比,分层结构操作系统,的内核很大,互相之间调用关系复杂。,微内核结构操作系统,则把大量的操作系统功能放到内核外实现,这些外部的操作系统构件是作为服务过程来实现的,它们之间的信息相互均借助微内核提供的消息传送机制实现。,这样,,微内核起消息交换功能,,它验证消息,在构件构件之间传送消息,并授权存取硬件。,分层结构内核和微内核结构对比,例如,当一个应用程序要打开一个文件,它就传送一个消息给文件系统服务器;,当它希望建立一个进程或线程,就送一个消息给进程服务器;每个服务器都可以传送消息给另外的服务器,或者调用在内核中的原语功能。这是一种可以运行在单计算机中的,C/S,结构。,Microkernel,Operating System,单机环境下的客户,/,服务器模式,微内核 客户,/,服务器模式的优点,(,1,)提高了系统的灵活性和可扩充性。,modular design.,easy to add services.,(,2,)提高了,OS,的可靠性:,-small,microkernel,can be rigorously tested.,(,3,)可运行于分布式系统中。,message are sent without knowing what the target machine is.,微内核 客户,/,服务器模式的优点,(4),支持面向对象的操作系统(,OOOS,),components are objects with clearly defined interfaces that can be interconnected to form software,.,Windows NT Client-Server Structure,4.,虚拟机结构,虚拟机系统的最早尝试是,IBM,公司的,CP/CMS,,后来改名为,VM/370,。这一系统的后继产品今天仍然在,IBM S/390,等大型主机上广泛使用。,它基于如下思想,一个分时系统应该提供以下特性:(,1,)多道程序,(,2,)一个具有比裸机更方便、界面扩展的计算机。,VM/370,的主旨在于将此二者彻底地隔离开来。,虚拟机结构,虚拟机结构是在裸机上扩展一层软件,向上提供了若干台虚拟机。,这些虚拟机不是那种具有文件良好特征的扩展计算机,而仅仅是裸机硬件的精确复制。它包含核心态,/,用户态,,I/O,功能,中断,以及真实硬件的全部内容。,虚拟机结构,因为每台虚拟机与裸机完全一样,所以每台虚拟机可以运行裸机上运行的,任何操作系统,。虽然虚拟机是裸机的精确复制,实际上它是一个具有比裸机更方便、灵活的计算机。,例如。在奔腾,CPU,运行老的,MS-DOS,程序,此时程序就是运行在虚拟,8086,的模式下。,虚拟机结构,奔腾,CPU,(或其他,Intel,的,32,位,CPU,)也采用虚拟机的思想运行老的,MS-DOS,程序。在设计奔腾芯片的硬件和软件时,,Intel,和,Microsoft,都意识到要使软件能够在新硬件上运行,于是,Intel,在奔腾芯片上提供了一个虚拟,8086,模式。在此模式下,奔腾机就象一台,8086,计算机一样,包括,1M,字节内的,16,位寻址方式。,虚机机的概念结构,Non-virtual Machine,Virtual Machine,虚拟机,物理计算机资源通过,多重化和共享技术,可改变成多个虚拟机。,这种技术的基本做法是:通过用一类物理设备来,模拟,另一类物理设备,或通过,分时,地使用一类物理设备,把一个物理实体改变成若干个逻辑上的对应物。,物理实体是实际存在的,而逻辑上的对应物是虚幻的、感觉上的。,虚拟机结构,因为每台虚拟机都与裸机完全一样,所以,每台虚拟机可以运行裸机能够运行的任何操作系统。,不同的虚拟机可以运行不同的操作系统而且往往如此。,Integrating two Operating Systems,Application:Testing a new Operating System,2.1.1,操作系统虚拟机,对多数计算机而言,在机器语言一级的体系结构上编程是很困难的,尤其是输入输出操作。,显然,程序员不想涉及硬件的这些具体细节。他需要的是一种简单的高度抽象的设备。,一种典型的,抽象,是一张磁盘包含了一组命名的文件,每个文件可以被打开,然后进行读写,最后被关闭。其中的一些细节如数据记录格式、当前步进电机的开启状态等则对用户隐藏。,2.1.1,操作系统虚拟机,这种将硬件细节与程序员隔离开来、同时提供一个简洁的命名文件方式的程序,就是操作系统。它还隐藏了其他许多低层硬件的特性,包括中断、时钟、存储器等。总之,操作系统提供的每一种抽象都较低层硬件本身更简单、更易用。,从这个角度看,操作系统的作用是为用户提供一台等价的扩展计算机,或称虚拟机,它比低层硬件更容易编程。,2.1.1,操作系统虚拟机,操作系统虚拟机,上图既可看成是一个多层虚拟机结构,也可是通常操作系统的逻辑结构,2.1.1,操作系统虚拟机,在裸机上配置了操作系统程序后就构成了操作系统虚拟机,一道考研题,填空题:所谓操作系统的虚拟机的概念,是指()(华中科技大学,2002,),答案:裸机装配有操作系统,虚拟机的用户界面,操作系统虚拟机为用户提供了一个协助解决问题的装置。其功能是通过它提供的命令来实现的,用户也是通过这一组命令和操作系统虚拟机大交道的。,系统所提供的全部命令的集合称为操作命令语言,它是用户和系统进行通信的手段和界面。,这一界面分为两个方面:,一是操作命令(又称命令接口)和系统功能调用(又称程序)接口。,1.,操作命令,操作命令按使用方式的不同可以分为以下三种:,(,1,)键盘命令,分时系统或个人计算机系统中的用户使用键盘命令通过控制台或终端设备向系统提出请求,组织自己的程序运行。,(,2,)作业控制语言,批处理系统中的用户使用这种语言编写作业说明书,组织作业的运行或提出对系统资源的申请。,1.,操作命令,(,3,)图形化用户界面,它以菜单驱动、图符驱动等方式为用户提供一个友好的,直观的、图文并茂的视窗环境,2.,系统调用,系统调用,是操作系统与应用程序之间的接口,是为用户程序或其它系统程序在执行过程中访问系统资源、调用系统功能而建立的。,在用户程序中可以直接使用系统调用功能来请求操作系统提供的服务。,若把操作系统比作一台为用户定义的,虚拟机,,那么,操作命令语言,就给出了虚拟机作能执行的,“指令”集合,,也刻画了相应的虚拟机的功能。,2.1.2,操作系统逻辑结构,整个操作系统在结构上类似于一个,洋葱头,,它由若干层组成,每一层都提供一组功能,这些功能,只依赖于该层以内的各层,。洋葱头的中心部分是机器硬件本身提供的各种功能。,洋葱头的各个层次可以看作一系列的虚拟机,,而洋葱头作为整体实现了用户要求的虚拟机。,操作系统逻辑结构见下图所示:,操作系统逻辑结构,进程控制,与通信,处理机分配,操作系统逻辑结构,操作系统逻辑结构,与,基本机器硬件紧挨着的是系统核,,具有初级中断处理、外部设备驱动、在进程之间切换处理机以及实施进程控制和通信的功能,提供一种进程可以存在和活动的环境。,系统核以外各层依次是存储管理层、,I/O,处理层、文件存取层、调度,(,作业调度,),和资源分配层。它们,具有各种资源管理功能并为用户提供各种服务,。,2.2.1,处理机的状态及特权指令,为什么要区分处理机的态,?,答:操作系统是计算机系统的最重要的系统软件,为了能正确的进行管理和控制,其本身是不能被破坏的。为此系统应能建立一个保护环境,采用的办法就是处分处理机的状态。,在系统中有两类程序在运行,1.,管理程序,2.,用户程序,2.2.1,处理机的状态及特权指令,1.,管理程序,其担负的任务是:,管理和控制者,为用户提供服务,负责管理和分配系统资源,2.,用户程序,其担负的任务是:,被管理和被控制者,所需资源必须向操作系统提出请求,享受系统提供的服务,什么是处理机的态,?,处理机的态,处理机的工作状态,,即处理机当前正在执行哪一类程序,依此来区分处理机的状态。,计算机系统在执行上述两种不同类型的程序时,就应该有不同的权限,而为此根据对资源和机器指令的使用权限,把处理执行时的两种工作状态分为,核态和用户态,。,有的系统还将管理程序在执行时机器状态进一步细分为,核态和管态,,管态比核态的权限要低,而比用户态高。,关于“态”的几个概念,核态(,Kernel Mode),,又称系统态:,CPU,执行管理程序时所处的状态。,在此状态下允许,CPU,使用全部资源和全部指令,其中包括一组特权指令(如涉及外设的,I/O,、改变处理机状态、修改存储保护的指令),实现对系统资源的分配与管理,为用户提供使 用外部设备的服务。,关于“态”的几个概念,管态,(Supervisor Mode),:,管态比核态的权限低,在此状态下,只允许使用一些在用户态下所不能使用的资源,但不能使用修改机器的状态指令。,在,无管态的系统,,核态执行核态的所有指令,此时管态和核态是合二为一的,不再区分核态和管态的称呼。,用户态,(User Mode),:又叫目态或常态,。用户程序执行时,CPU,所处的状态。在此状态下禁止使用特权指令,不能直接使用系统资源与改变,CPU,状态,并且只能访问用户程序所在的存储空间。,关于“态”的几个概念,当用户程序执行时,如果需要请求操作系统服务,则必然由用户态转为核态,即由操作系统得到控制权,在核态下执行其管理程序。服务完毕后,返回用户态,继续让用户程序执行。,一道考研题,在计算机系统中,为什么要区分管态与目态?(西安电子科技大学,1999,年试题),【,解答,】,操作系统是计算机系统中最重要的系统软件,为了能正确地进行管理和控制,其本身是不能被破坏的。因此,系统采用了区分处理机状态的办法,为操作系统程序建立一个保护环境。这样,用户程序只能在目态下运行,只能执行非特权指令,只能访问自己的存储区,从而保护了操作系统程序的正常运行。,一道考研题,判断对错:操作系统程序都是在核心态下才能运行。(大连理工大学,2000,年试题),【,分析,】,操作系统是一组控制和管理计算机硬件和软件资源、合理地对各类作业进行调度以及方便用户的程序的集合。,操作系统提供的服务,一部分必须在核心态下才能运行,如进程调度、目录服务等。还有一些功能,如,DOS,下的外部命令,则可以由用户调用,运行在用户态下。,特权指令集合,在,CPU,的所有指令中,有一些指令是非常危险的,如果错用,将导致整个系统崩溃。比如:清内存、设置时钟等,所以,,CPU,将指令分为,特权指令(,Privileged Instructions,),和,非特权指令,,对于那些危险的指令,只允许操作系统及其相关模块使用,普通的应用程序只能使用那些不会造成灾难的指令。,形象地说,特权指令就是那些儿童不宜的东西,而非特权指令则是老少皆宜。,特权指令集合,所谓特权指令,是指具有特殊权限的指令,由于这类指令的权限最大,所以如果使用不当,就会破坏系统或其它用户信息。,因此为了安全起见,这类指令只能用于操作系统或其它系统软件,而一般不直接提供给用户使用。,特权指令集合,在核态下,,操作系统可以使用所有指令,包括一组特权指令。这些特权指令执行如下各种功能:,允许和禁止中断,在进程之间切换处理,存取用户主存,保护的寄存器,执行,I/O,操作,停止一个中央处理器的工作,常见特权指令与非特区指令,特权指令举例:,启动输入输出设备、设置时钟、控制中断屏蔽位、清内存、建立存储键,加载,PSW,(程序状态字)等,非特权指令举例:,访管指令,加法减法等,用户态,-,管态,在下列情况下,,由用户态转向管态,:,用户进程访问操作系统,要求操作系统的某种服务。这种访问称为管理程序调用,发生一次中断,在一个用户进程中产生了一个错误。这种中断称为内部中断,并能调用中断处理程序进行处理,在用户态下企图执行一条特权指令。这种企图可被看作一中特殊类型的错误,并按,处理,从管态转回用户态是用一条指令实现的,这条指令本身也是,特权指令,2.2.2,存储器,存储器(主存、内存):,中央处理机能直接访问的存储器称为主存储器,用来存放正在或将要执行的系统和用户程序和数据以及程序执行时要求的临时存储空间。,辅存储器(辅存、外存):,中央处理机不能直接访问的存储器,如磁盘、磁带、光盘等,用来存放大量的数据信息。,主存储器的类型,主存储器的类型主要可以分为如下两种:,随机访问存储器,RAM,(,random access memory),只读存储器,ROM(Read-only memory),在微机中有这两种类型的存储,一种是,ROM,称为,BIOS,,用来存放基本的,I/O,程序。,另一种是,RAM,,通常所说的,128MB,,,256MB,内存。,存储器组织,当前计算机系统中,采用三种运行原理不同、性能差异很大的存储介质,来分别构建,高速缓冲存储器、主存储器和辅助(虚拟)存储器,三级结构的存储器系统如下图所示:,存储器组织,这种多级结构的存储器使,CPU,大部分时间访问,高速缓存,(,速度最快,),;,仅,在从缓存中读不到数据时,才去读主存,(,速度略慢但容量较大,),;,当从主存中还读不到数据时,才去批量读辅助(虚拟)存储器,(,速度很慢容量极大,),这样就解决了对速度、容量、成本的需求。,多级结构的存储器具有良好的性能,/,价格比是建立在程序运行的局部性原理之上的。,三级不同的存储器的区别,选用生产与运行成本不同的、存储容量不同的、读写速度不同的多种存储介质,组成一个统一管理的存储器系统。,高速缓存:使用静态存储器芯片,主存储器:使用动态存储器芯片,虚拟存储器:使用辅存磁盘存储器上的一片区域,Win2000,的虚拟内存,存储器组织,2,、存储器组织,3,、存储保护,时钟是操作系统运行时必不可少的硬设施,它以固定的时间间隔产生中断信号,这对于实施进程调度、计算系统资源的消耗、实时控制等功能是必不可少的。,在操作系统中需时钟支持的工作有:,2.2.4,中断,和俘获,中断,(interrupt),定义,是指程序执行过程中,当发生某个事件,(,例如电源掉电、定点加法溢出或,I/O,传输结束等,),时,中止,CPU,上现行程序的运行,引出处理该事件的服务程序执行的过程,处理完毕后返回断点,继续执行。,整个中断过程示意,中断技术,这种处理突发事件的能力是由硬件和软件协作完成的。,首先,由硬件的,中断装置发现,产生的中断事件,然后,中断装置中止现行程序的执行,引出,处理该事件的程序来处理,。,中断技术,在不同的硬件结构中,通常有不同的中断源和不同的中断装置,但它们有一个共性,即:,当中断事件发生后,中断装置能改变处理器内操作执行的顺序。,可见,中断,是现代操作系统,实现并发性,的基础之一。,中断源分类,引起中断的事件称为,中断源,.,发现中断源并产生中断的硬件称,中断装置,不同硬件结构的中断源各不相同,从中断事件的性质来说,可以分成,强迫性中断事件,和,自愿性中断事件,两大类。,强迫性中断事件,强迫性中断事件,不是正在运行的程序所期待的,而是由于,某种事故或外部请求,信息所引起的。这类中断事件大致有以下几种:,机器故障中断事件。,例如,电源故障,主存储器出错等。,程序性中断事件。,例如,定点溢出,除数为,0,,地址越界等。,外部中断事件。,例如,时钟的定时中断,控制台发控制信息等。,输入输出中断事件。,例如,设备出错,传输结束等。,自愿性中断事件,自愿性中断事件,是正在运行的程序所期待的事件。,这种事件是由于执行了一条访管指令而引起的,它表示,正在运行的程序对操作系统有某种需求,,一旦机器执行到一条访管指令时,便,自愿停止,现行程序而转入访管中断处理程序处理。,例如,要求操作系统协助启动外围设备工作。,两类中断事件的响应过程对比图,两类中断事件的响应过程略有不同,如下图所示:,按照中断信号的来源的中断分类,还可以按照中断信号的来源,把中断分为两类:,1.,外中断 一般又称中断,,是指来自处理器和主存储器之外的中断。,包括:电源故障中断、时钟中断、控制台中断和,I/O,中断等。,按照中断信号的来源的中断分类,2.,内中断,是指来自处理器和主存内部的中断,一般又称,陷入,(trap),或异常,。,包括:通路校验错、主存奇偶错、非法操作码、地址越界、页面失效、调试指令、,访管中断,*,、算术操作溢出等各种程序性中断等。,Note:,访管中断,访管中断,对操作系统提出某种需求,(,如请求,I/O,传输、建立进程等,),时所发出的中断称为访管中断。,它是正在运行的程序有意识安排的,通常是由于,程序员在编制程序时,因要求操作系统提供服务而,有意使用访管指令(特权指令)或系统调用,,从而导致中断的,,所以又称其为访管中断。,普通中断和陷入的区别,普通中断和陷入的区别如下:,中断,是由与现行指令无关的中断信号触发的,通常在,两条机器指令之间,才可以响应中断,一般来说,中断处理程序提供的服务不是为当前进程所需的;,而,陷入,则是由处理器正在执行现行指令而引起的,因而,,一条指令执行期间,允许响应陷入,通常,陷入处理程序提供的服务是为当前进程所用的,有时称之为,自陷程序,。,一道考研题,选择题:用户程序在目态下使用特权指令引起的中断属于()(,2002,华中科技大学),硬件中断,程序中断,外部中断,访管中断,答案,D,中断装置,发现中断源并产生中断的硬件称,中断装置,。,迄今为止,所有的计算机系统都采用硬件和软件结合的方法实现中断处理:,整个中断过程由,中断响应,(或称中断进入)和软件的,中断处理,过程组成。,中断处理,NOTE:,当,硬件,完成了,中断进入过程,后,由相应的中断处理程序得到控制权,进入了,软件,的中断处理,过程,,如下图所示,:,中断处理,中断处理过程主要有如下三项工作:,保护现场,和传递参数;,执行相应的中断(或自陷)处理程序;,恢复和退出。,注,:,在中断进入时,由硬件保护了被中断程序的,PC,和,PS,,在中断处理中保护各寄存器的值和其它状态信息。,中断处理流程的软硬件分工,保护现场与恢复现场,什么是现场?,是指在中断的那一时刻能确保程序继续运行的有关信息,主要包括,:,后继指令所在主存的单元号,程序运行所处的状态,指令执行情况以及程序执行的中间结果等,中断,现场,什么叫保护现场,当中断发生时,立即将现场信息保存到主存中,什么是恢复现场?,程序重新运行之前,把保留的该程序现场信息从主存中送至相应的指令计数器、通用寄存器或一些特殊的寄存器中。,程序状态字,任何程序运行时都有反映其运行状态的一组信息。,有的机器将这些信息集中在一起就称之为“程序状态字(,P,rogram,S,tate,W,ord),”,存放这些信息的寄存器称为,程序状态字寄存器,。,但是并不是所有机器都是这样集中存放的,也有采用分散存放的。,什么是程序状态字?,程序状态字,是反映程序执行时机器所处的现行状态的代码。,主要内容包括:,程序现在应该执行哪条指令,当前指令执行情况,机器处于何种程序状态,(核态、用户态),程序在执行时应该屏蔽哪些中断,(处理机运行级),寻址方法、编址、保护键,响应中断的内容。,程序状态字,上述信息内容显然是在执行指令时都要用到的或者可能要用到的,这些信息基本上反映了程序运行过程中,指令一级的,瞬间状态,。,这些信息存放在什么位置,不同的机器可以有不同的方法。,如,IBM370,把这些信息集中存放在一个,双字,的,机器字,中,称为,程序状态字,。,程序状态字,而,PDP11,系统机程序状态信息存放在两个寄存器中,一个是程序计数器(,PC,),一个是,处理器状态寄存器,(,PS,)。例:,PDP,11,系列机的,PS,(,PC,是另一个寄存器)如下图所示:,什么是中断响应,中断响应是,当中央处理机发现已有中断请求时,中止现行程序执行,并自动引出中断处理程序的过程,。,中断响应的实质,中断响应的实质:,交换指令地址及处理机的状态信息。,以达到如下目的:,保留程序断点和有关信息,自动转入相应的中断处理程序。,PDP11,系列及把程序状态字信息存放在两个寄存器中,一个,指令计数器,(PC),一个,处理器状态,(PS).,其中断示意图如下所示:,IBM,中大型机中断响应过程,一道考研题,中断响应的实质是什么?,(,北京大学,1997,年试题,),答案:中断响应的实质是交换指令执行地址和处理器状态信息。,向量中断和中断向量,当中断发生时,由中断源自己引导处理机,(CPU),进入中断服务程序的中断过程称为,向量,中断。,为了提高中断的处理速度,在向量中断中,对于每一个中断类型都设置一个,中断向量。,向量中断和中断向量,中断相量,就是存储类型,中断的服务例行程序的,入口地址,和,处理器状态字的,存储单元。,系统中所有中断类型的中断向量放在一起,就形成了,中断向量表。,例如下图所示:,向量中断和中断向量,在,向量中断,中,由于每一个中断都有自己的,中断向量,,所以当发生某一中断事件时,可直接进入处理该事件的,中断处理程序,。,向量中断和中断向量,微型机一般采用向量中断机制。具有向量机制的计算机(,PDP 11,机器)的中断向量包括两个字:,中断服务例行程序入口地址,中断服务例行程序所用的处理状态字(,PSW,),一道考研题,选择题:中断向量地址是(),子程序入口地址,中断服务例行程序入口地址,中断服务例行程序入口地址的地址,例如程序入口地址,(,2002,年华中科技大学),答案:,B,一道考研题,选择题:中断发生时,由硬件保护并更新程序指令计数器,PC,,而不是由软件完成,主要是为了()(华中科技大学,1998,年试题),A,提高处理速度。,B,使中断程序易于编制。,C,节省内存。,D,能进入中断处理程序并能正确返回。,【,答案分析,】,一次中断过程分为,中断进入(由硬件负责),和,中断处理过程(由软件负责),。,在中断进入过程中,首先保存原先运行程序的,PC,、,PS,值,然后从,中断向量地址,中得到,PC,、,PS,值放入寄存器。,软件的中断处理过程是,先保存现场信息和参数传递,再执行中断处理程序,最后恢复和退出中断。,简要地说,,一次中断,两次保护现场,。分步保护现场的原因是,进入软件的中断处理后,,PC,、,PS,寄存器,(,硬件,),里被填上了新内容,因此,,PC,、,PS,的保护只能由硬件完成。,【,解答,】,答案是,D,。,两道考研题,填空题:,1.,中断响应将保留处理机状态字和指令计数器的内容,这项工作是由计算机的()完成的(华中科技大学,2001,),2.,操作系统具备处理同时性活动的能力,最重要的硬件支持是()(华中科技大学,2002,),答案:,1.,硬件,2.,中断机构,中断的优先级,在计算机执行的每一瞬间,可能有几个中断事件同时发生。,例如,由非法操作码引起程序性中断的同时可能发生外部中断要求。,这时,中断装置如何来响应这些同时发生的中断呢,?,中断的优先级,一般说,中断装置按照预定的顺序来响应,这个按中断请求轻重缓急的程度预定的顺序称为,中断的优先级,,中断装置首先响应优先级高的中断事件。,中断的屏蔽,主机可以允许或禁止某类中断的响应,称之为,中断的屏蔽,如主机可以允许或禁止所有的输入输出中断、外部中断、机器校验中断以及某些程序性中断。,中断的屏蔽,对于被禁止的中断,有些以后可继续响应,有些将被丢弃。,例如,对于被禁止的输入输出中断的条件将被保留以便以后响应和处理,对于被禁止的程序中断条件,除了少数置特征码以外,都将丢弃不管。,有些中断是不能被禁止的,。例如,计算机中的电源掉电中断,自愿性访管中断就不能被禁止。,中断嵌套,在一个计算机系统运行过程中,由于中断可能同时出现,或者虽不同时出现但却被硬件,同时,发现,或者出现在其他中断正在进行处理期间,这时,CPU,又响应了这个新的中断事件。,这种,暂时停止正在运行的中断处理程序,转去执行新的中断处理程序,,这就叫,多重中断(又称中断嵌套),。,中断嵌套,一般来说,,优先级别高的中断有打断优先级别低的中断处理程序的权利,,但反之不允许优先级别低的中断干扰优先级别高的中断处理程序的运行。,那么系统如何来处理出现的多个中断呢,?,多重中断事件的处理,对于多个中断,可能是,同一中断类型,的不同中断源,也可能是,不同类型,的中断。,对于前者,一般由同一个中断处理程序按,预定的次序,分别处理之;,对于后者,可以区别不同情况作
展开阅读全文