《(精品)第二章处理机管理.ppt》由会员分享,可在线阅读,更多相关《(精品)第二章处理机管理.ppt(188页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2.1中央处理器 2.2中断技术 2.3进程及其实现 2.4线程及其实现 2.5处理器调度 2.6批处理作业的管理与调度 2.7低级调度 第第2 2章章 处理器管理处理器管理 主要内容:主要内容:n单处理器系统和多处理器系统 n寄存器 n特权指令与非特权指令 n处理器状态 n程序状态字寄存器 2.1中央处理器 进程可以被调度在一个处理器上交替执行,或在多个处理器上同时执行。交替执行和同时执行都是并发的类型。一、单处理器系统和多处理器系统(1)计算机系统的核心是中央处理器。1.单处理器系统:一个计算机系统只包括一个运算处理器。2.多处理器系统:一个计算机系统有多个运算处理器。3.串行和并行 早期
2、计算机系统是基于单个处理器的顺序处理机器,程序员编写串行执行的代码,让其在处理器上串行执行,每条指令的执行也是串行的(取指令、取操作数、执行操作、存储结果)。提高计算机处理速度的技术:流水线技术、发射体系结构(超标量结构、超流水线结构、超长指令字结构)一、单处理器系统和多处理器系统(2)4.4.计算机系统结构分类计算机系统结构分类 目前计算机系统可以分作以下四类:单指令流单数据流(SISD)一个处理器在一个存储器中的数据上执行单条指令流。单指令流多数据流(SIMD)单条指令流控制多个处理单元同时执行,每个处理单元包括处理器和相关的数据存储,一条指令控制了不同的处理器对不同的数据进行操作。向量机
3、和阵列机是这类计算机系统的代表。多指令流单数据流(MISD)一个数据流被传送给一组处理器,通过这一组处理器上的不同指令操作最终得到处理结果。一、单处理器系统和多处理器系统(3)多指令流多数据流(MIMD):多个处理器对各自不同的数据集同时执行不同的指令流。MIMD系统划分为:共享内存紧密耦合MIMD系统 内存分布松散耦合MIMD系统1 1 1 1)紧密耦合)紧密耦合)紧密耦合)紧密耦合MIMDMIMDMIMDMIMD系统系统系统系统可以分为 主从式系统MSP(Main/Slave Multiprocessor)对称式系统SMP(Symmetric Multi-Processor)主从式系统(M
4、SP)基本思想是:在一个特别的处理器上运行操作系统内核,其他处理器上则运行用户程序和操作系统例行程序,内核负责分配和调度各个处理器,并向其他程序提供各种服务。一、单处理器系统和多处理器系统(4)对称式多处理器系统(SMP)中有两个或两个以上的处理器,操作系统内核可以运行在任意一个处理器上。每个处理器都可以自我调度运行的进程和线程,单个进程的多个线程可在不同处理器上同时运行。操作系统内核也被设计成多进程或多线程,内核的各个部分可以并行执行。2 2 2 2)松散耦合)松散耦合)松散耦合)松散耦合MIMDMIMDMIMDMIMD系统系统系统系统 每个处理单元都有一个独立的内存储器,各个处理单元之间通
5、过设定的线路或网络通信,多计算机系统和集群(Cluster)系统都是松散耦合MIMD系统的例子。集群(Cluster)系统是一组互连的计算机系统,属于分布式系统的一种。集群操作系统也是分布式操作系统的一种。集群系统运行时构成统一的计算资源,给人以一台机器的感觉。集群系统中的每一台计算机离开集群后自己可以独立工作。二、寄存器(1)处理器包括一组寄存器,其个数根据机型的不同而不同,它们构成了一级存储,比主存容量小,但访问速度快。这组寄存器与程序的执行有很大关系,构成了处理器现场处理器现场。这些寄存器可分成以下几类:通用寄存器:可由程序设计者指定许多功能,如存放操作数或用作寻址寄存器。数据寄存器:存
6、放操作数,作为内存数据的高速缓存。地址寄存器:指明内存地址,如索引寄存器、段寄存器、堆栈指针寄存器等。I/O地址寄存器:指定I/O设备。I/O缓冲寄存器:用于处理器和I/O设备交换数据。二、寄存器(2)控制寄存器:存放处理器的控制和状态信息,至少包括程序计数器PC和指令寄存器IR,中断寄存器以及用于存储器和I/O模块控制的寄存器。还有存放将被访问的存储单元地址的存储器地址寄存器,以及存放从存储器读出或欲写入的数据的存储器数据寄存器。其他寄存器 三、特权指令与非特权指令 (1)1.1.程序执行的基本过程程序执行的基本过程 计算机的基本功能是执行程序,最终被执行的程序是存储在内存中的机器指令程序。
7、处理器根据程序计数器(PC)从内存中取指令到指令寄存器并执行它,PC将自动增长或改变为转移地址指明下条执行的指令。2.2.指令功能分类指令功能分类 机器指令的集合称指令系统指令系统。指令分为以下五类:(1)数据处理类指令:执行算术和逻辑运算。(2)转移类指令:改变指令执行序列,如无条件转移、条件转移等。(3)数据传送类指令:用于在处理器的寄存器和寄存器、寄存器和存储器单元、存储器单元和存储器之间交换数据。三、特权指令与非特权指令 (2)(4)移位与字符串指令:算术、逻辑、循环移位;字符串的传送、比较、查询、转换。(5)I/O类指令:用于启动外围设备,让主存和外围设备之间交换数据。3.3.指令使
8、用权限分类指令使用权限分类 引入操作系统后,从资源管理和控制程序执行的角度出发,必须把指令系统中的指令分作两部分:特权指令和非特权指令。特权指令特权指令是指只能提供给操作系统的核心程序使用的指令,如启动I/O设备、设置时钟、控制中断屏蔽位、清内存、建立存储键,加载PSW(程序状态字)等。只有操作系统才能执行指令系统中的全部指令(特权指令和非特权指令),用户程序只能执行指令系统中的非特权指令。三、特权指令与非特权指令 (3)如,置程序状态字指令属于特权指令;启动外围设备进行输入/输出的指令也属于特权指令,只能在操作系统程序中执行,否则会出现多个用户程序竞争使用外围设备而导致I/O混乱。如果用户程
9、序试图执行特权指令,将会产生保护性中断,转交给操作系统的“用户非法执行特权指令”的特殊处理程序处理。四、处理器状态(1)中央处理器怎么知道当前是操作系统还是一般用户程序在运行呢?这将依赖于处理器状态的标志。1.1.处理器状态分类处理器状态分类 处理器状态又称为处理器的运行模式,有些系统把处理器状态划分为核心状态、管理状态和用户状态,大多数系统把处理器状态简单划分为核心态(特权状态、系统模式、特态或管态)和用户态(目标状态、用户模式、常态或目态)。2.2.处理器状态与资源和机器指令使用权限的关系处理器状态与资源和机器指令使用权限的关系 当处理器处于核心态时,程序可以执行全部指令,访问所有资源,并
10、具有改变处理器状态的能力;当处理器处于用户状态时,程序只能执行非特权指令。四、处理器状态(2)3.3.Intel x86Intel x86处理器状态处理器状态 Intel x86处理器状态有四种,支持4个保护级别,0级权限最高,3级权限最低。一般典型的应用把4个特权级别依次设定为:0级为操作系统内核级。处理I/O、存储管理和其他关键操作。1级为系统调用处理程序级。用户程序可以通过调用这里的过程执行系统调用,但是只有一些特定的和受保护的过程可以被调用。2级为共享库过程级。它可以被很多正在运行的程序共享,用户程序可以调用这些过程,读取它们的数据,但是不能修改它们。3级为用户程序级。受到的保护最少。
11、四、处理器状态(3)各个操作系统在实现过程中可以根据具体策略有选择地使用硬件提供的保护级别,如运行在Intel x86上的Windows操作系统只使用了0级和3级。4.4.处理器模式转换(状态之间的转换处理器模式转换(状态之间的转换)(1)(1)用户态向核心态的转换用户态向核心态的转换 两种情况会导致从用户状态向核心态的转换:一是程序请求操作系统服务,执行一条系统调用;二是程序运行时,产生了一个中断事件,运行程序被中断,让中断处理程序工作。这两种情况都是通过中断机构发生的。中断是用户态到核心态转换的唯一途径。四、处理器状态(4)(2)(2)核心态向用户状态的转换核心态向用户状态的转换 每台计算
12、机通常会提供一条特权指令称作加载程序状态字LPSW(Load PSW),用来实现操作系统向用户程序的转换。五、程序状态字寄存器(1)计算机如何知道当前处于何种工作状态?这时能否执行特权指令?通常操作系统都引入程序状态字程序状态字PSWPSW(Program Status Word)来区别不同的处理器工作状态。1.1.IBM360/370IBM360/370系列计算机程序状态字的基本格式系列计算机程序状态字的基本格式 8位系统屏蔽(07位):表示允许或禁止某个中断事件发生。4位保护键(811位):设置存储器保护时,PSW中的这4位保护键与欲访问的存储区的存储键相匹配,否则指令不能执行。4位CMW
13、P字段(1215位):PSW基本/扩充控制方式位、开/关中断位、运行/等待位、用户态/核心态位。16位中断码字段:与中断事件对应,记录当前产生的中断源。五、程序状态字寄存器(2)指令长(32,33位):01/10/11分别表示半字长指令、整字长指令、和一字半长指令。条件码(34,35位)4位程序屏蔽(3639位):表示允许或禁止程序性中断。24位指令地址(4063位)XX X X XXXX X X XXXXXX8位系统屏蔽 4位CMWP字段4位程序屏蔽4位保护键16位中断码字段指令长和条件码24位指令地址五、程序状态字寄存器(3)2.2.PSWPSW寄存器包括的内容寄存器包括的内容 每个正在执
14、行的程序都有一个与其执行相关的PSW,而每个处理器都设置一个程序状态字寄存器。程序状态字寄存器一般包括以下内容:程序基本状态:(1)程序计数器:指明下一条执行的指令地址;(2)条件码:表示指令执行的结果状态;(3)处理器状态位:指明当前的处理器状态,如目态或管态、运行或等待。中断码。保存程序执行时当前发生的中断事件。五、程序状态字寄存器(4)中断屏蔽位。指明程序执行中发生中断事件时,是否响应出现的中断事件。3.3.Intel x86Intel x86程序状态字程序状态字 在Intel x86中,PSW由标志寄存器EFLAGS和指令指针寄存器EIP组成,均为32位。EFLAGS的低16位称FLA
15、GS,标志可划分为三组:状态标志、控制标志、系统标志。状态标志:使得一条指令的执行结果影响后面的指令。算术运算指令使用溢出标志,符号标志,结果为零标志,辅助进位标志,进位标志,奇偶校验标志;串扫描、串比较、循环指令使用ZF通知其操作结束。五、程序状态字寄存器(5)控制标志:串指令操作方向标志。虚拟86方式标志(为1时,从保护模式进入虚拟8086模式)。步进标志(为1时,使处理器执行单步操作)。陷阱标志(为1时,允许响应中断,否则关中断)。系统标志:与进程管理有关:I/O特权级标志、嵌套任务标志和恢复标志,被用于保护模式。指令指针寄存器低16位(保护模式使用32位)。主要内容:主要内容:n中断的
16、概念n中断源分类n中断和异常的响应及服务n中断处理程序n中断事件的具体处理方法n中断的优先级和多重中断 2.2中断技术 一、中断的概念中断技术的引入:I/O 广泛的应用 OS是由中断驱动的 中断中断是指程序执行过程中,当发生某个事件时,中止CPU上现行程序的运行,引出处理该事件的程序执行的过程。中断检测:在每两条指令或某些特殊指令执行期间都检查是否有中断事件发生,若无则立即执行下一条或继续执行,否则响应并处理中断事件。中断源中断源是引起中断的事件。中断装置中断装置是发现中断源并产生中断的硬件。中断机制的共性:当中断事件发生后,它能改变处理器内操作执行的顺序。中断是现代操作系统实现并发性的基础之
17、一中断是现代操作系统实现并发性的基础之一。二、中断源分类 (1)1.1.从中断事件的性质和激活的手段来分从中断事件的性质和激活的手段来分 可以分成两类:强迫性中断事件和自愿性中断事件。(1)(1)强迫性中断事件强迫性中断事件 强迫性中断事件不是正在运行的程序所期待的,而是由于随机发生的某种事故或外部请求信息所引起的。这类中断事件大致有:机器故障中断事件 如电源故障、主存储器出错等。程序性中断事件 如定点溢出、除数为0、地址越界等。又称异常 外部中断事件 如时钟的定时中断、控制台发控制信息等。输入输出中断事件 如设备出错、传输结束等。二、中断源分类 (2)(2)(2)自愿性中断事件自愿性中断事件
18、 自愿性中断事件是正在运行的程序所期待的事件。这种事件是由于执行了一条访管指令而引起的,它表示正在运行的程序对操作系统有某种需求,一旦机器执行到一条访管指令时,便自愿停止现行程序的执行而转入访管中断处理程序处理。二、中断源分类 (3)运行程序中断处理程序中断装置中断处理程序中断装置机器故障中断事件程序性中断事件外部中断事件输入输出中断事件运行程序访管指令两类中断事件 二、中断源分类 (4)2.2.按照中断信号的来源来分按照中断信号的来源来分 (由硬件产生(由硬件产生 属于硬件中断)属于硬件中断)(1)外中断外中断(又称中断中断)指来自处理器和主存之外的中断。外中断包括:电源故障中断、时钟中断、
19、控制台中断、它机中断和I/O中断等。(2)内中断内中断(又称异常异常)指来自处理器和主存内部的中断。内中断包括:通路校验错、主存奇偶错、非法操作码、地址越界、页面失效、调试指令、访管中断、算术操作溢出等各种程序性中断。访管中断是由机器提供的特殊指令,该指令执行时将会引起内中断。内中断外中断二、中断源分类 (5)(3)(3)中断和异常的区别中断和异常的区别 中断是由与现行指令无关的中断信号触发的(异步的异步的),且中断的发生与CPU处在用户模式或内核模式无关,通常在两条机器指令之间才可响应中断,一般来说,中断处理程序提供的服务不是为当前进程所需的,如时钟中断、硬盘读写服务请求中断;异常是由处理器
20、正在执行现行指令而引起的(同步的),一条指令执行期间允许响应异常,异常处理程序提供的服务是为当前进程所用的。异常包括很多方面,有出错(fault),也有陷入(trap)。二、中断源分类 (6)(4)出错和陷入的区别 出错和陷入的区别如下:它们发生时保存的返回指令地址不同,出错保存指向触发异常的那条指令,而陷入保存指向触发异常的那条指令的下一条指令。从处理程序返回时,出错会重新执行那条指令,而陷入就不会重新执行那条指令。如缺页异常是一种出错,而陷入主要应用在调试中。二、中断源分类 (7)IBM中大型机操作系统使用了上述第一种分类方法,Windows2000/XP则采用了上述第二种分类方法。3.3
21、.硬中断与软中断硬中断与软中断 硬中断:中断和异常要通过硬件设施来产生中断请求,可看作硬中断。软中断:不必由硬件发信号而能引发的中断称软中断,软中断是利用硬件中断的概念,用软件方式进行模拟,实现宏观上的异步执行效果。软中断通常是由内核或进程对某个进程发出的中断信号,可看作内核与进程或进程与进程之间用来模拟硬中断的一种信号通信方式(信号机制)。软中断分为:信号和软件中断二、中断源分类 (8)硬中断和软中断共同点:当中断源产生中断请求或发出软中断信号后,CPU或者接收进程在适当的时机自动进行中断处理或完成软中断信号所对应的功能。适当的时机是指接收的硬中断会及时获得中断处理程序的处理,但接收软中断信
22、号的进程不一定正好在接到此信号时占有处理器,而相应的软中断信号处理必须等到该接收进程获得处理器后才能进行,通常会有一定时间的延迟。二、中断源分类 (9)上述几种中断的通常用法1)“中断”(硬中断)用于外部设备对CPU的中断(中断正在运行的任何程序),转向中断处理程序。2)“异常”(硬中断)因指令执行不正常而中断CPU(中断正在执行这条指令的程序),转向异常处理程序。3)“软件中断”(软中断)用于硬中断服务程序对内核的中断,在某点设置标记,以便在适当时刻获得处理。4)“信号”(软中断)用于内核或进程对某个进程的中断,向进程通知某个特定事件发生或迫使进程执行信号处理程序二、中断源分类 (10)中断
23、机制与信号机制的类比 相同之处:两者在概念上是一致的,进程接信号和CPU接中断相似两者都是异步的两者在实现上均采用“向量表”两者均有“屏蔽”设施 不同之处:前者由硬件和软件结合来实现后者则完全靠软件来实现中断向量表和中断处理程序均位于系统空间,信号处理程序往往由应用程序提供,并在用户空间执行二、中断源分类 (11)按中断事件的来源和实现手段分类硬中断软中断外中断(中断、异步中断外中断(中断、异步中断)内中断(异常、同步中断内中断(异常、同步中断)外部中断I/O中断硬件故障程序性异常访管中断信号(处理异常)软件中断(一些延迟处理事件或任务)三、中断装置及中断和异常的响应(1)发现中断源并产生中断
24、的硬件称中断装置,这些硬件包括中断逻辑线路和中断寄存器。所有计算机系统都采用硬件和软件(硬件中断装置和软件中断处理程序)结合的方法响应中断和实现中断处理。1.中断装置主要做的三件事 发现中断源,响应中断请求。保护现场。将运行程序中断点在处理器中某些寄存器内的现场信息(又称运行程序的执行上下文)存放于内存储器。交换新老程序状态字 启动中断处理程序。三、中断装置及中断和异常的响应(2)中断寄存器用来记录中断事件,中断寄存器的内容称中断字,中断字的每一位对应一个中断事件。每当一条机器指令执行结束的时刻,中断控制部件扫描中断字,查看是否有中断事件发生,若是则处理器便响应这个中断请求。中断发生后,中断字
25、的相应位会被置位。由于同一时刻可能有多个中断事件发生,中断装置将根据中断屏蔽要求和中断优先级选取一个,然后把中断寄存器的内容送入程序状态字寄存器的中断码字段,且把中断寄存器相应位清“0”。三、中断装置及中断和异常的响应(3)外中断旧PSW访管中断旧PSW程序中断旧PSW机器故障中断旧PSWI/O中断旧PSW外中断新PSW访管中断新PSW程序中断新PSW机器故障中断新PSWI/O中断新PSW18202830385860687078现行PSW中断时保存现行PSW中断时装入现行PSW中断后恢复PSW主存专用双字单元 (16进制)装配中断码IBM中大型机中断响应过程硬件所做的工作中断响应三、中断装置及
26、响应(4)被中断的程序的程序状态字称为旧程序状态字,中断处理程序的程序状态字称为新程序状态字,如何实现新旧程序状态字的交换?通常,系统为每一种中断都开辟了主存的固定单元存放新的和旧的程序状态字。IPCSPSW现行PSW寄存器新IP新CS老IP老CS老PSW新栈顶主存新PSW中断向量表中断堆栈IBM PC机中断的响应过程四、中断处理程序(1)1.处理中断事件的程序称为中断处理程序中断处理程序。它的主要任务是处理中断事件和恢复正常操作。2.入口地址的寻找 中断向量表(入口地址和PSW称为中断向量)3.中断处理程序主要做四项工作(1)保护未被硬件保护的一些必需的处理状态。如保存通用寄存器的内容到主存
27、储器。(2)识别各个中断源,分析产生中断的原因。(3)处理发生的中断事件。(4)恢复正常操作。恢复中断前的程序从断点执行或者重新启动一个新的程序或者甚至重新启动操作系统。五、中断事件的具体处理方法 (1)1.机器故障中断事件的处理 这种事件是由硬件故障产生的,排除故障须进行人工干预。中断处理能做的工作是:保护现场,防止故障蔓延,报告给操作员并提供故障信息以便维修和校正,及对程序中所造成的破坏进行估价和恢复。下面是一些硬件失效中断事件的处理办法:1)电源故障的处理:电源发生故障时,硬设备能保证继续正常工作一段时间,操作系统利用这一段时间做三个工作:将处理器有关寄存器内的信息经主存储器送到磁盘保存
28、起来。停止外围设备工作。有些外围设备不能立即停止,中断处理程序将把这些正在交换信息又不能立即停止的设备记录下来。五、中断事件的具体处理方法 (2)停止处理器工作。此时,整个系统既不执行指令又不响应中断。当故障排除后,操作员可以从一个约定点启动操作系统以恢复工作。2)主存储器故障的处理 中断处理程序停止与出现的中断事件有关的程序的执行,然后向操作员报告出错单元的地址和错误的性质。2.程序性中断事件的处理 程序性中断事件大致有两种处理办法:(1)系统报告错误,请求操作员干预。如非法使用特权指令。(2)用户程序自定义处理办法。如定点溢出、阶码下溢等中断事件,操作系统可以将其转交给用户程序自行处理。如
29、果用户程序没有给出处理办法,则由操作系统进行标准处理。五、中断事件的具体处理方法 (3)3.外部中断事件的处理 1)时钟中断事件的处理 时钟是操作系统进行调度工作的重要工具,如让分时进程作时间片轮转、让实时进程定时发出或接收控制信号、系统定时唤醒或阻塞一个进程、对用户进程进行记账。时钟可以分成绝对时钟绝对时钟和间隔时钟间隔时钟两种。系统设置绝对时钟绝对时钟寄存器,定时地把该寄存器的内容加1。如果开始时这个寄存器的内容为0,那么,只要操作员告诉系统开机时的年、月、日、时、分、秒,以后就可推算出当前的年、月、日、时、分、秒。计算当前时间时,只要按时钟中断的次数和绝对时钟寄存器的内容推算就可得到。五
30、、中断事件的具体处理方法 (4)间隔时钟间隔时钟是定时将一个间隔时钟寄存器的内容减1,当间隔时钟寄存器的内容为0时,产生一个间隔时钟中断,起到闹钟的作用,意味着预定的时间到了。操作系统经常利用间隔时钟作控制调度。操作系统有关时钟的任务包括内容:维护绝对日期和时间;防止进程的运行时间超出其允许值,发现陷入死循环的进程;对使用CPU的用户进程记账;处理进程的间隔时钟(闹钟);对系统的功能或部件提供监视定时器。五、中断事件的具体处理方法 (5)在Intel x86/Pentium微机中,Linux利用CMOS中记录的时间作为系统启动时的基准时间。Linux系统时间的测量基准是jiffies(瞬时)(
31、一个全局变量)。系统启动时,CMOS中记录的时间转化从1970年1月1日0时0分0秒(UNIX纪元)算起的jiffies值(累积秒数)。Linux中两种类型系统定时器:老的定时器机制和新的定时器机制,两种定时器都有对应的处理例程,必须在到达给定的系统时间时被进程调用。老的定时器机制:有一个32个指针的数组定义的定时器。每个指针指向一个timer-struct结构,timer-active是活动定时器掩码。新的定时器机制:突破了32个定时器的限制,使用一个timer-list数据结构的链表,按定时器到期时间的升序排列。五、中断事件的具体处理方法 (6)两类定时器中expires给出该定时器被激活
32、的时间,*fn()指出定时器被激活后的处理函数。两类定时器都使用jiffies值作为到期比较时间。例如,某个定时器要在2s之后到期,则必须将2s转换成对应的jiffies值,加上当前的系统时间(也是以jiffies为单位)后,得到的便是该定时器到期的系统时间expires。定时器bottom half处理过程处理两种类型的系统定时器。对于老的系统定时器,检查timer-active中被置位的位掩码,以便确定活动的定时器。如果一个活动的定时器到期,便调用对应的定时器例程,timer-active对应位被清除。对于新的系统定时器,检查链表中的timer-list数据结构,每个到期的定时器将被从链表
33、中移出,对应的定时器例程被调用。五、中断事件的具体处理方法(7)031timer-structtimer-tabletimer-active expires *fn()timer-structtimer-listtimer-list*next*prevexpiresdatafunction()timer-list*next*prevexpiresdatafunction()*next*prevexpiresdatafunction()expires *fn()timer-list310Linux系统定时器4、I/O中断的处理 I/O中断种类较多,处理方法各异1)I/O操作正常结束后的处理2)I
34、/O操作发生故障后的处理3)I/O操作发生异常后的处理4)设备报到或设备结束的处理五、中断事件的具体处理方法(8)5、自愿中断事件的处理 系统程序或用户程序执行访管指令而引起的中断,它表示运行程序对操作系统功能的调用,所以,也称系统调用,可以看作是机器指令的一种扩充。系统调用机制通过特殊硬指令和中断系统来实现。其流程:用户程序执行n号系统调用通过中断系统进入访管中断处理,保护现场通过系统调用入口表,按功能号跳转找到相应功能入口地址执行相应例行程序,结束后正常情况返回系统调用的下一条指令执行 五、中断事件的具体处理方法(9)六 中断优先级和多重中断1、中断的优先级2、中断的屏蔽3、多重中断事件的
35、处理 1 中断优先级 计算机执行的每一瞬间,可能有几个中断事件同时发生,中断装置如何来响应同时发生的中断呢?它按照预定顺序来响应,这个预定顺序称中断的优先级中断的优先级,首先响应优先级高的中断事件。2 中断的屏蔽 主机可允许或禁止某类中断的响应,如允许或禁止所有的I/O中断、外部中断、及某些程序性中断。有些中断是不能被禁止的,例如,计算机中的自愿性访管中断就不能被禁止。3多重中断事件的处理 中断正在进行处理期间,这时 CPU又响应了新的中断事件,于 是暂时停止正在运行的中断处理 程序,转去执行新的中断处理程 序,这就叫多重中断(又称中断多重中断(又称中断 嵌套)嵌套)。主要内容:主要内容:n进
36、程的定义和属性n进程的状态和转换n进程的描述和组成n进程切换与模式切换n进程的管理与控制 2.3进程及其实现 进程概述进程是操作系统中最基本、重要的概念,是多道程序系统出现后,为了刻画系统内部出现的动态情况,描述系统内部各道程序的活动规律引进的一个概念,所有多道程序设计操作系统都建立在进程的基础上。从理论角度看,进程是对正在运行的程序过程的抽象;从实现角度看,进程是一种数据结构,目的在于清晰地刻划动态系统的内在规律,有效管理和调度进入计算机系统主存储器运行的程序。对于单任务的操作系统而言,由于任何时候内存中只有一道程序(计算活动),程序与程序运行(计算)之间具有一对一的关系。但是在多任务的操作
37、系统环境下,内存中可以同时存在两道或两道以上的程序(计算活动)在并发运行,在这种情况下,程序概念不能描述程序的运行,有时一个程序可以对应多个运行,一个运行也可以调用多个程序。程序和计算不再一一对应 程序运行环境不再封闭 资源竞争和共享导致制约关系 程序的运行是停停走走 进程概念提出的必要性一、进程的定义和属性(1)1.操作系统为什么要引入进程概念?一是刻画系统的动态性,发挥系统的并发性,提高资源利用率。在多道程序设计环境下,程序可以并发执行,一个程序的任意两条指令之间都可能发生随机事件而引发程序切换。因而,每个程序的执行都可能不是连续的而是走走停停。二是它能解决系统的“共享性”,正确描述程序的
38、执行状态。几个概念:(1)“可再入可再入”程序程序-是指能被多个程序同时调用的程序。(2)“可再用可再用”程序程序-被调用过程中自身会被修改,在调用它的程序退出之前不允许其他程序来调用它。一、进程的定义和属性(2)(3)“可再入可再入”程序具有的性质程序具有的性质:它是纯代码,即它在执行中自身不被改变;调用它的各程序应提供工作区,因此,“可再入”程序可被多个程序同时调用。“可再入”程序举例编译程序P编译源程序甲,从A点开始工作,执行到B点时需将信息记到磁盘上,且程序P在B点等待磁盘传输。为提高系统效率,利用编译程序的“可再入”性,让编译程序P再为源程序乙进行编译,仍从A点开始工作。现在怎样来描
39、述编译程序P的状态呢?称它为在B点等待磁盘传输状态,还是称它为正在从A点开始执行的状态?把编译程序P,与服务对象联系起来,P为甲服务就说构成进程P甲,P为乙服务则构成进程P乙一、进程的定义和属性(3)两个进程虽共享程序P,但它们可同时执行且彼此按各自的速度独立执行。可见程序与计算(程序的执行)不再一一对应,进程是一个既能用来共享资源,又能描述程序并发执行过程的一个基本单位。2.进程的概念 进进程程是一个可并发执行的具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行资源分配和保护的基本单位。有些系统称进程为“任务”(task)或“活动”(active)。一、进程的定义和属性(4)
40、3.进程的属性(进程与程序比较)(1)结构性:进程包含了数据集合和运行于其上的程序。每个进程至少包含三个组成要素:程序块、数据块和进程控制块。(2)共享性:同一程序运行于不同数据集合上时,构成不同的进程。多个不同的进程可以共享相同的程序,所以进程和程序不是一一对应的。(3)动态性:进程由创建而产生,由调度而执行,由撤销而消亡。程序是一组有序指令序列,作为一种系统资源是永久存在的。(4)独立性:进程是系统中资源分配和保护的基本单位,也是系统调度的独立单位(单线程进程)。一、进程的定义和属性(5)(5)制约性:并发进程之间存在着制约关系,进程在进行的关键点上需要相互等待或互通消息,以保证程序执行的
41、可再现性和计算结果的唯一性。(6)并发性:在一个单处理器系统环境下,各个进程轮流占用处理器。二、进程的状态和转换(1)1.三态模型三态模型(1)进程的三种基本状态 一个进程从创建而产生至撤销而消亡的整个生命周期,可用一组状态加以刻划,至少有三种不同的进程状态:运行态(running):进程占有处理器正在运行。就绪态(ready):进程具备运行条件,等待系统分配处理器以便运行。等 待 态(wait):又 称 为 阻 塞(blocked)态 或 睡 眠(sleep)态,进程不具备运行条件,正在等待某个事件的完成。通常,当一个进程创建后,就处于就绪状态。每个进程在执行过程中,任一时刻当且仅当处于上述
42、三种状态之一。在一个进程执行过程中,它的状态将会发生变化。二、进程的状态和转换(2)(2)引起进程状态转换的具体原因 运行态等待态:等待使用资源或某事件发生;等待态就绪态:资源得到满足或事件发生;运行态就绪态:运行时间片到;出现有更高优先权进程。就绪态运行态:CPU空闲时选择一个就绪进程。二、进程的状态和转换(3)运行态就绪态等待态选中落选出现等待事件等待事件结束进程三态模型及其状态转换二、进程的状态和转换(4)2.五态模型 五态模型在三态模型的基础上,引进了新建态和终止态。新建态-对应进程刚被创建的状态。为一个新进程创建必要的管理信息,它并没有被提交执行,而是在等待操作系统完成创建进程的必要
43、操作。终止态-进程的终止,首先,等待操作系统进行善后,然后,退出主存。进入终止态的进程不再执行,但依然临时保留在系统中等待善后。一旦其他进程完成了对终止态进程的信息抽取之后,系统将删除该进程。二、进程的状态和转换(5)运行态就绪态等待态选中落选出现等待事件等待事件结束新建态终止态进程五态模型及其转换二、进程的状态和转换(6)进程状态转换的具体原因 NULL新建态:创建一个子进程。新建态就绪态:系统完成了进程创建操作,且当前系统的性能和内存的容量均允许。运行态终止态:一个进程到达自然结束点,或出现了无法克服的错误,或被操作系统所终结,或被其他有终止权的进程所终结。终止态NULL:完成善后操作。就
44、绪态终止态:某些操作系统允许父进程终结子进程。等待态终止态:某些操作系统允许父进程终结子进程。二、进程的状态和转换(7)3.具有挂起功能系统的进程状态及其转换(1)为什么要有“挂起”状态?由于进程的不断创建,系统资源已不能满足进程运行的要求,就必须把某些进程挂起(suspend),对换到磁盘镜像区中,暂时不参与进程调度,起到平滑系统操作负荷的目的。(2)引起进程挂起的主要原因 系统中的进程均处于等待状态,需要把一些阻塞进程对换出去,腾出足够内存装入就绪进程运行。进程竞争资源,导致系统资源不足,负荷过重,需要挂起部分进程以调整系统负荷。定期执行的进程(如审计、监控、记账程序)对换出去,以减轻系统
45、负荷。二、进程的状态和转换(8)用户要求挂起自己的进程,以便进行某些调试、检查和改正。父进程要求挂起后代进程,以进行某些检查和改正。操作系统需要挂起某些进程,检查运行中资源使用情况,以改善系统性能;或当系统出现故障或某些功能受到破坏时,需要挂起某些进程以排除故障。(3)进程增加的两个新状态 挂起就绪态(ready suspend):表明进程具备运行条件但目前在辅助存储器中,当它被对换到主存才能被调度执行。挂起等待态(blocked suspend):表明进程正在等待某一个事件且在辅助存储器中。二、进程的状态和转换(9)挂起等待事件结束出现等待事件解除挂起挂起落选选中运行态就绪态等待事件结束终止
46、态新建态挂起就绪态解除挂起挂起挂起等待态等待态提交提交具有挂起功能的进程状态及其转换二、进程的状态和转换(10)(4)引起进程状态转换的具体原因 等待态挂起等待态:当前不存在就绪进程,至少一个等待态进程将被对换出去成为挂起等待态;挂起等待态挂起就绪态:引起进程等待的事件发生之后,相应的挂起等待态进程将转换为挂起就绪态。挂起就绪态就绪态:内存中没有就绪态进程,或挂起就绪态进程具有比就绪态进程更高的优先级,将把挂起就绪态进程转换成就绪态。就绪态挂起就绪态:系统根据当前资源状况和性能要求,决定把就绪态进程对换出去成为挂起就绪态。二、进程的状态和转换(11)挂起等待态等待态:当一个进程等待一个事件时,
47、原则上不需要把它调入内存。但是,当一个进程退出后,主存已经有了足够的自由空间,而某个挂起等待态进程具有较高的优先级并且操作系统已经得知导致它阻塞的事件即将结束,便可能发生这一状态变化。运行态挂起就绪态:当一个高优先级挂起等待进程的等待事件结束后,它将抢占CPU,而此时主存不够,从而可能导致正在运行的进程转化为挂起就绪态。运行态的进程也可以自己挂起自己。新建态挂起就绪态:根据系统当前资源状况和性能要求,可以将新建进程对换出去成为挂起就绪态。挂起的进程将不参与低级调度直到它们被对换进主存。二、进程的状态和转换(12)(5)挂起进程具有如下特征 该进程不能立即被执行。挂起进程可能会等待事件,但所等待
48、事件是独立于挂起条件的,事件结束并不能导致进程具备执行条件。进程进入挂起状态是由于操作系统、父进程或进程本身阻止它的运行。结束进程挂起状态的命令只能通过操作系统或父进程发出。三、进程的描述和组成(1)1.操作系统的控制结构 操作系统的本质任务是自动控制程序的执行,并满足进程执行过程中提出的资源使用要求,因此,操作系统的核心控制结构是进程结构。在操作系统的控制结构中,通常构造一些表来管理和维护进程和每一类资源的信息。操作系统的控制表分为四类:进程控制表:管理进程及其相关信息。存储控制表:管理主存和辅存,主要内容包括:主存储器的分配信息,辅助存储器的分配信息,存储保护和分区共享信息,虚拟存储器管理
49、信息。三、进程的描述(2)I/O控制表:管理计算机系统的I/O设备和通道,主要内容包括:I/O设备和通道是否可用,I/O设备和通道的分配信息,I/O操作的状态和进展,I/O操作传输数据所在的主存区。文件控制表:管理文件,主要内容包括:被打开文件的信息,文件在主存储器和辅助存储器中的位置信息,被打开文件的状态和其他属性信息。地址空间(虚地址空间)?物理空间?三、进程的描述(3)MemoryDevicesFilesProcessesMemory TablesI/O TablesFile TablesPrimary Process TableProcess 1Process NProcess 2Pr
50、ocess ImageProcess 1ImageProcess NImage操作系统控制表的通用结构三、进程的描述(4)2.进程的内存映像(某时刻进程的内容及其状态集合)(1)进程上下文的概念进程上下文的概念 进程上下文(进程上下文(context)-进程物理实体和支持进程运行的环境合称为进程上下文(进程上下文(contextcontext)。当系统调度新进程占有处理器时,新老进程随之发生上下文切换。进程的运行被认为是在上下文中执行。(2)进程上下文的三个组成部分进程上下文的三个组成部分 用户级上下文(user-level-context):由用户进程的程序块、用户数据块(含共享数据块)和用