资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,二,章,处理器管理,处理器管理是操作系统最核心的部分。,负责管理、调度和分配计算机系统的重要资源处理器。,1,2.1 中央处理器(CPU),一、处理器的构成,处理器由运算器、控制器、一组寄存器以及高速缓存构成。,运算器:,实现指令中的算术和逻辑运算,是计算机计算的核心。,控制器:,负责控制程序运行的流程,包括取指令、维护CPU状态、CPU与内存的交互等等。,寄存器:,是指令在CPU内部作处理的过程中暂存数据、地址以及指令信息的存储设备,在计算机的存储系统中它具有最快的访问速度。,高速缓存:,处于CPU和物理内存之间,访问速度快于内存,低于寄存器。利用程序局部性原理使得高速指令处理和低速内存访问得以匹配,从而提高CPU的效率。,2,二、寄存器,两类寄存器:,用户可见寄存器:,高级语言编译器通过算法分配并使用之,以减少程序访问主存次数。,控制和状态寄存器:,用于控制处理器的操作。由OS,的特权指令使用,以控制其它程序的执行。,计算机系统的处理器包括一组寄存器,其个数根据机型的不同而不同,它们构成了一级存储,比主存容量小,但访问速度快。,这组寄存器所存储的信息与程序的执行有很大关系,构成了处理器现场。,3,1.用户可见寄存器,机器语言(汇编语言)直接引用,包括数据寄存器、地址寄存器等,数据寄存器(data register):,又称通用寄存器,地址寄存器(address register):,用于存储数据及指令的物理地址。如index register、segment pointer、stack pointer,4,2.控制和状态寄存器,用于控制处理器的操作,大部分对于用户是不可见的,一部分可以在某种特权模式(由OS使用)下访问,常见的控制和状态寄存器:,程序计数器,(PC:Program Counter),:记录将要取出的指令的地址,指令寄存器,(IR:Instruction Register),:包含最近取出的指令,程序状态字(PSW:Program Status Word),:记录处理器的运行模式信息等等,5,三、特权指令和非特权指令,1.处理器执行指令过程,处理器依据在程序计数器中的指令地址从存储器中取一条指令,取到的指令放在指令寄存器(IR)中,处理器解释并执行指令,自动将程序计数器的值变成下条指令的地址,6,2.五类指令,(1)数据处理类指令;,(2)转移类指令;,(3)数据传送类指令;,(4)移位与字符串类指令;,(5)I/O类指令。,7,处理器如何知道当前运行的是操作系统还是一应用软件?,执行时有不同的权限。,有赖于处理器状态。,3.特权指令与非特权指令,从资源管理和控制程序执行的角度出发,必须把指令系统中的指令分作两部分:,特权指令,和,非特权指令,。,特权指令:,只能由操作系统的内核程序使用的指令,如启动I/O设备、设置时钟、控制中断屏蔽位、清主存、建立存储键,加载PSW等。,内核能够执行全部指令,应用程序只能使用非特权指令。,8,四、处理器的状态,根据运行程序对资源和机器指令的使用权限将处理器设置为不同状态,处理器状态又称为处理器模式。,多数系统将处理器工作状态划分为,核心态,和,用户态,。,1.核心态,(Kernel Mode),CPU执行操作系统程序时所处的状态。,较高的特权级别,又称为特权态(特态)、系统态、管态。,处理器处于核心态时,程序可以执行全部指令,使用所有资源,具有改变处理器状态的能力。,2.用户态(User Mode),用户程序执行时CPU所处的状态。较低的特权级别,又称为普通态(普态)、目态。,处理器处于用户状态时,程序只能执行非特权指令,不能直接使用系统资源,只能访问用户程序所在的存储空间,不能改变CPU状态。,9,实例:x86系列处理器,386、486、Pentium系列处理器都支持4个处理器特权级别(R0、R1、R2和R3),从R0到R3特权能力依次降低,R0相当于双状态系统的核心态,R3相当于用户态,R1和R2则介于两者之间,它们能够运行的指令集合具有包含关系:,10,四个级别运行不同类别的程序:,R0-运行操作系统核心代码,R1-运行关键设备驱动程序和I/O处理例程,R2-运行其它受保护共享代码,如语言系统运行环境,R3-运行各种用户程序,现有基于x86处理器的操作系统,如UNIX、Linux以及Windows系列大都只用了R0和R3两个特权级别。,11,3.处理器模式转换,(1)用户态核心态,有两种情况会导致处理器从用户态向核心态转换:一是程序请求操作系统服务,执行系统调用;二是程序运行时,产生中断或异常事件,运行程序被中断,转向中断处理或异常处理程序工作。,两类情况都通过,中断机制,发生,中断和异常是用户态到内核态转换仅有的途径,当系统中产生中断或异常,处理器作出响应且交换程序状态字,会导致处理器从用户态转向核心态,处理事件的中断或异常处理程序的程序状态字中,处理器模式位一定为“核心态”。,12,(2)核心态用户态,计算机提供一条特权指令称作加载程序状态字(IBM370为load PSW指令,Intel x86为iret指令),用来实现从系统(核心态)返回到用户态,控制权交给应用进程。,13,五、程序状态字PSW,计算机如何知道当前处于何种工作状态?这时能否执行特权指令?通常操作系统都引入,程序状态字,PSW,(,Program Status Word,),来区别不同的处理器工作状态。,PSW,用来控制指令执行顺序并保留和指示与程序有关的系统状态,主要作用是实现程序状态的保护和恢复。,每个程序都有一个与其执行相关的,PSW,,,每个处理器都设置一个,PSW,寄存器。程序占有处理器执行,它的,PSW,将占有,PSW,寄存器,14,PSW包括以下内容:,程序基本状态:,(1),程序计数器;,(2),条件码;,(3,)处理器状态位。,中断码:保存程序执行时当前发生的中断事件。,中断屏蔽位:指明程序执行中发生中断事件时,是否响应出现的中断事件。,15,实例:IBM360/370系列计算机程序状态字的基本格式,XX X X XXXX X X XXXXXX,8位系统,屏蔽,4位CMWP,字段,4位程序,屏蔽,4位保护键,16位中断码,字段,指令长和,条件码,24位指令,地址,16,2.2,中断技术,中断对于操作系统的重要性,就像机器中的驱动齿轮一样,所以有人把操作系统称为是由,“中断驱动”或者“(中断)事件驱动”,17,中断:,是指程序执行过程中,遇到急需处理的事件(,例如电源掉电、俘点运算溢出、外部设备传输完成或出错等),时,暂时中止CPU上现行程序的运行,转去执行相应的事件处理程序,待处理完成后再返回原程序断点处或调度其他程序执行的过程。,中断源,:引起中断的事件称中断源,如打印完成中断,其中断源是打印机。,断点,:发生中断时正在运行的程序被暂时停止,程序的暂停点称为断点。例如,某程序正在执行0200地址的指令被中断,那么,0200地址就是断点,在中断返回时就执行0200的下一条指令。,一、中断概念,18,从用户角度看中断,19,二、中断源分类,1.按中断事件的性质和激活方式划分,(1)强迫性中断:,强迫性中断事件肯定不是正在运行的程序所期待的,是由随机事件或外部请求引起的。,分为:,机器故障中断,程序性中断,外部中断,输入输出中断,(2)自愿性中断:,自愿性中断事件是正在运行的程序所期待的。是由于用户在编制程序时因为要求操作系统提供服务,有意使用“访管”指令或系统调用,使中断发生。,20,2.按事件来源和实现手段分类,硬中断,软中断,外中断(中断、异步中断),内中断(异常、同步中断),信号,软件中断,按事件来源和实现手段分类,21,(1)硬中断,外中断(中断或异步中断)-,是指来自处理器之外的中断信号,包括时钟中断、键盘中断、它机中断和设备中断等;外中断又分可屏蔽中断和不可屏蔽中断,每个不同中断具有不同的中断优先级,表示事件的紧急程度,在处理高一级中断时,往往会屏蔽部分或全部低级中断。,内中断(异常或同步中断)-,是指来自处理器内部的中断信号,通常由于程序执行中,发现与当前指令关联的、不正常的、或是错误的事件。内中断可细分为三种:访管中断、硬件故障中断、程序性异常。,中断和异常要通过硬件设施来产生中断请求,是硬中断。,22,(2)软中断,软中断是利用硬中断的概念,用软件方法对中断机制进行模拟,实现宏观上的异步执行。,软中断分两种:“信号”和“软件中断”。,23,(3)中断的通常用法,“中断”(硬中断)用于外部设备对CPU的中断(中断的是正在运行的任何程序),转向中断处理程序上半部分执行;,“异常”(硬中断)因指令执行不正常而中断CPU(中断的是正在执行这条指令的程序),转向异常处理程序;,“软件中断”(软中断)用于硬中断服务程序对内核的中断,在上半部分中发出软件中断(即标记下半部分),使得中断下半部分在适当时刻获得处理;,“信号”(软中断)用于内核或进程对某个进程的中断,通知进程某个特定事件发生或迫使进程执行信号处理程序。,24,三、中断和异常的响应过程,1.发现中断源:,2.保护现场:,3.转向处理中断/异常事件的处理程序:,4.恢复现场:,现场:,是被中断断点时刻处理机的各种信息,包括程序状态字;各寄存器的值;打开文件的状态.,25,四、中断优先级和多重中断,1.中断优先级,在一些机器中,中断优先级按中断类型划分:,以机器故障中断的优先级最高,程序中断和访管中断次之,外部中断更次之,输入输出的优先级最低,26,2.中断屏蔽,在CPU上运行的程序,有时由于种种原因,不希望其在执行过程中被别的事件所中断,称为中断屏蔽。,在PSW中设置中断屏蔽位以屏蔽某些指定的中断类型,各设备接口中也有中断禁止位,以禁止该设备的中断,27,3.多个中断的处理,若中断处理过程中又发生中断,引起多中断处理问题。,两种策略方法:,(1)串行处理,处理一个中断时禁止中断,对任何新中断置之不理,当再次允许中断时,新中断才被响应。,可以通过屏蔽中断来实现。,这种方法简单易行,所有中断严格按照发生顺序处理,不考虑中断紧急程度,无法达到较严格时间要求。,28,多中断处理第一种策略方法,29,(2)嵌套处理,允许优先级高中断打断优先级低的中断处理过程,这样中断优先级技术将引起中断处理的嵌套。,只要合适地定义中断的优先级别,方法一的弊端大都可以克服,30,多中断处理第二种策略方法,31,
展开阅读全文