处理器管理(精品).ppt
处理器管理处理器管理什么是多道程序设计什么是多道程序设计n让多个计算问题同时装入一个计算机系统的主存储器并行执行,这种程序设计技术称为多道程序设计多道程序设计。这种计算机系统称为多道程序设计系统多道程序设计系统,简称为多道系统多道系统。n采用多道程序设计技术要注意下面三方面问题:q存储保护:保证各道程序互不侵犯q程序浮动:程序放在主存的任意区域都能正确执行,甚至在执行过程中改变存储区都不受影响,这种技术称为程序浮动程序浮动。q资源的分配和调度:竞争处理器、外围设备为什么要采用多道程序设计为什么要采用多道程序设计n假设一个程序由输入、处理、输出组成,分别用时t0,t1,t2输入处理打印t0t1t2t0t1t2111222为什么要采用多道程序设计为什么要采用多道程序设计n现代计算机中的硬件使得处理机与外设具备了并行工作的能力。输入处理打印t0t1t2111222为什么要采用多道程序设计为什么要采用多道程序设计n采用多道程序设计技术后,能提高整个系统的效率,具体表现为:q提高了处理机利用率,从而提高单位时间的算题量q充分利用外设资源q发挥了处理器和外围设备以及外围设备之间的并行工作能力n提高资源的利用率,增加了单位时间内的算题量,从而提高了吞吐量单道程序的顺序执行单道程序的顺序执行n当一个程序独占处理器顺序执行时,它具有以下特性:n顺序:多个程序之间,同一程序内部n封闭:运行结果不受外界因素影响n可再现:只要初始条件相同,运行结果也相同多道程序的并发执行多道程序的并发执行n当多个程序并发执行时,它具有以下特性:q失去封闭:程序执行受到外界影响q失去可再现:程序的每次运行,其执行周期、执行过程中系统资源的状态都会不同q间断:由于共享资源或相互合作,程序并发运行时相互制约while(true)N+;while(true)print(N);N=0;N=5;P1:P2:进程的定义进程的定义n程序程序是具有独立功能的一组指令或一组语句的集合,或者说是指出处理器执行操作的步骤。程序的执行必须依赖于一个实体-数据集。n把一个程序在一个数据集上的一次执行称为一个进程进程。n程序是静态的文本,进程是动态的过程,进程包括程序和程序处理的对象(数据集)。为什么要引入进程为什么要引入进程n提高资源的利用率q把一个计算问题分成n个独立执行的程序模块,例如输入进程、打印进程、处理进程,进程间可以并行工作,提高系统的利用率n正确描述程序的执行情况q假设有编译程序P,将c语言的源文件编译为目标文件,使用P编译a.c和b.c,两个并行编译a.c编译b.ct0t1第1条指令第n条指令,暂停第1条指令如何描述t1时刻P程序的状态呢?正在暂停?还是开始编译b.c?引入进程后,P为a.c服务时的进程称为Pa,P为b.c服务时的进程称为Pb。Pa的状态是等待I/O,Pb的状态是开始执行进程的特性进程的特性n动态性:执行过程中状态不断发生变化n并发性:进程可同时执行,轮流占用处理器n异步性:执行速度不可预知n独立性:进程是能独立运行的基本单位进程的基本状态进程的基本状态n进程有三种基本调度状态进程有三种基本调度状态q就绪状态就绪状态(ready)(ready):进程已获得除处理机外的所需资源进程已获得除处理机外的所需资源,只要分配,只要分配处理器就可执行。处理器就可执行。q运行状态运行状态(running)(running):进程已获得处理机,:进程已获得处理机,正在执行正在执行。q等待等待/阻塞状态阻塞状态(blocking)(blocking):进程在运行过程中,因:进程在运行过程中,因等待某一事件等待某一事件(如等待某一输入输出操作完成)而(如等待某一输入输出操作完成)而暂停暂停的状态称为阻塞状态,的状态称为阻塞状态,运行阻塞就绪选中落选等待某一事件等待的事件完成进程的创建状态和退出状态进程的创建状态和退出状态运行阻塞就绪选中落选等待某一事件等待的事件完成创建接纳退出完成进程的创建状态和退出状态进程的创建状态和退出状态n进程的创建q当系统为一个程序分配了一个工作区和建立了一个进程控制块后就创建了一个进程。q进程控制块是进程存在的标识,一个刚被创建的进程其初始状态是就绪态。n进程的退出q当一个进程完成了特定任务后,系统收回这个进程所占的工作区和取消其进程控制块。进程的挂起状态进程的挂起状态n挂起进程在操作系统中可以定义为暂时被淘汰出内存的进程q用户请求调试程序q内外存对换q调节负载运行活动阻塞活动就绪选中落选等待某一事件等待的事件完成创建接纳退出完成挂起就绪挂起阻塞挂起激活挂起激活进程的组成进程的组成n进程由程序、数据、堆、栈和PCB组成。n程序和数据是进程的实体。n堆栈记录程序调用时的参数和调用地址信息。nPCB记录进程运行的动态信息。进程控制块进程控制块-PCBn为了标识进程,记录各个进程执行时的情况,操作系统在创建进程时为每个进程设置一个进进程控制块程控制块(Process Control Block,简称PCB)。n不同的操作系统,进程控制块记录信息的内容与数量是不相同的。一般情况下,进程控制块应包含四类信息进程名/编号进程状态等待原因进程程序存放位置进程数据存放位置通用寄存器内容程序状态字寄器内容控制寄存器内容进程优先级队列指针标识信息说明信息现场信息管理信息进程和进程和PCB的关系的关系n系统中所有进程都有自己的PCB。n操作系统利用PCB实现进程的动态管理和并发执行。nPCB是进程存在的唯一标志。进程队列的链接进程队列的链接n为了便于管理,经常把处于相同状态的进程PCB链接在一起,称为进程队列。n进程队列可以用进程控制块的链接来形成,同一进程队列中,通过进程控制块中的队列指针联系起来。链接方式有两种:单向链接和双向链接。进程队列的链接进程队列的链接PCBAPCBBPCBC进程A进程B进程C队首指针0单向链接PCBAPCBBPCBC进程A进程B进程C队首指针0双向链接0向后指针向前指针进程队列进程队列运行队列指针就绪队列指针阻塞队列1指针阻塞队列2指针空闲队列指针PCB0PCBPCB0PCB0PCB0PCB0PCBPCBPCBPCBPCBPCBPCBPCB硬件环境硬件环境 硬件保护措施之特权指令硬件保护措施之特权指令n硬件把中央处理器执行的指令分成两类q特权指令:不允许用户程序中直接使用的指令,只允许操作系统使用。例如:“启动IO”,设置时钟,设置控制寄存器等一类可能影响系统安全的指令。此类功能应请求操作系统代为完成。q非特权指令:除特权指令以外的指令硬件环境硬件环境 硬件保护措施之管态和目态硬件保护措施之管态和目态n万一用户程序中出现了特权指令怎么办?n如何知道当前执行的指令是用户程序的还是操作系统的?n为了解决这个问题,中央处理器设置了两种工作状态:管态和目态。q管态:当中央处理器处于管态时可以执行包括特权指令在内的一切机器指令。操作系统占用中央处理器时,应让处理器工作在管态。q目态:当中央处理器处于目态时不允许执行特权指令,用户程序占用中央处理器时,应让处理器工作在目态。n在目态下,如果中央处理器取得了一条特权指令,将会拒绝指令该指令,形成“非法操作”事件,硬件识别后暂停当前程序执行,交给操作系统处理,操作系统通知用户“程序中有非法指令”必须修改操作系统与用户的接口操作系统与用户的接口 操作控制命令操作控制命令n用户通过操作系统来使用计算机系统。操作系统为用户提供两种类型的使用接口:操作员级接口和程序员级接口n操作员级接口是一组操作控制命令q从键盘输入命令,从菜单选择命令系统调用系统调用n操作系统编制了许多不同功能的子程序(读文件、写文件、分配主存、启动I/O等)供用户程序调用。这些操作系统提供的子程序称为系统功能调用程序,简称系统调用。n系统调用是操作系统为用户程序提供的一种服务界面,是操作系统保证程序设计语言能正常工作的一种支持。n在源程序一级,用户程序设计语言的读文件、写文件等要求的实现只有通过操作系统的系统调用才能完成。n系统调用是在管态下执行的程序。ncreate(“/a/b/c.txt”,o_RDWR);nopen(pathname,mode);系统调用系统调用intint a=12 a=12;a+;a+;把把a a的值输出到的值输出到d:/a.txtd:/a.txt 编译100100101001001011011111100100101001001010010010110111111001001010010010100100101010101010101010(访管指令)1100110011001100CPU执行到访管指令(目态)产生中断执行操作系统相应的系统调用CPU转换为管态执行完毕后,继续执行用户程序,转换回目态源代码系统调用是如何被调用的?nwrite(fd,buffer,nbytes);系统调用系统调用n现在的计算系统硬件中都设置了“访管指令”,在目态下执行。n编译程序把源程序翻译成目标程序时,把需要调用系统功能的代码转换成一条访管指令,并设置一些参数。n处理机执行到访管指令时产生一个中断事件,中央处理器由原来目态下执行用户程序,变成在管态下执行操作系统的系统调用程序(目态和管态的转换)。n系统调用功能完成后,操作系统又使中央处理器返回目态下执行用户程序。系统调用种类系统调用种类n文件操作类q打开文件、新建文件、读文件、写文件、关闭文件、删除文件等n资源申请类q请求分配主存空间、归还主存空间、分配外设、归还外设等n控制类q程序正常结束、异常结束、返回断点/指定点等n信息维护类q设置/获取日历、时间、设置/获取文件属性等进程的控制进程的控制n操作系统中往往设计一些能完成特定功能且不可中断的过程,这些不可中断的过程称为原语。用于进程控制的原语有:q创建原语:为一个程序分配一个工作区和建立一个进程控制块,并设置该进程为就绪状态。q撤销原语:一个进程完成工作后,收回它的工作区和进程控制块q阻塞原语:进程运行过程中发生等待事件,把进程改为等待态q唤醒原语:当进程等待的事件发生时,把进程的状态改为就绪态q挂起原语:挂起进程q激活原语:激活挂起的进程线程线程n引入目的 减少程序并发执行时所付出的时间和空间开销。n进程并发执行,OS执行的操作 1)创建进程:建立PCB,分配内存等;2)撤销进程:回收资源,撤销PCB;3)进程切换:保存现场进程的缺陷进程的缺陷n每个进程要占用一个进程控制块和一个私有的主存区域,开销较大n进程之间的通信必须由通信机制来完成,速度较慢n进程的增多会给调度和控制带来复杂性,增加了死锁的机会n因此要避免设计过多的进程线程的定义线程的定义n线程是进程中可独立调度的执行单元,一个进程中可以有一个或多个线程,每个线程有唯一的标识符。n线程的属性q每个线程有一个唯一的标识符和一张线程描述表。q不同的线程可以执行相同的程序。q线程共享分配给进程的主存地址空间。q线程是处理器调度的单位q一个线程被创建后,便开始它的生命周期,直至终止。线程的定义线程的定义n线程和进程由许多相似之处,所以把线程又称为”轻型进程“。n线程和进程的根本区别是:进程是资源分配的单位,而线程是调度和执行的单位。线程和进程的比较线程和进程的比较n调度 线程不拥有资源,在调度和切换时系统开销小。n并发性进程间可以并发,进程内部的各个线程间也可以并发,提高系统吞吐量。n拥有资源进程拥有资源,线程不拥有资源,但可以共享进程资源。n系统开销 由于进程拥有资源,在进程状态转换时,需要对其资源进行处理,系统开销大。什么是中断什么是中断n一个进程占用处理机运行时,由于自身或外界的原因使运行被打断,让操作系统处理所出现的事件,到适当的时候再让被打断的进程继续运行。称这个进程在运行中被“中断”了,引起中断的事件称为中断源,对出现的事件进行处理的程序称为中断处理程序。n中断源为了获得CPU服务而向CPU发出的请求信息,称为中断请求nCPU检测到中断请求信号转向中断处理子程序的过程叫做中断响应。n被中断的主程序的位置称为断点n中断处理子程序做的事情叫做中断处理。n中断处理子程序结束后返回被中断的位置的过程叫做中断返回。中断类型中断类型n从中断事件的性质来说,可以分成以下两大类:q强迫性中断事件:不是正在运行的程序所期待的,由于外部的请求或者意外事故而迫使正在运行的进程被打断。q自愿性中断事件:正在运行的进程所期望的中断事件,是正在运行的进程执行一条“访管指令”请求系统调用所引起的中断。自愿性中断也称访管中断。中断请求中断请求n各种外部中断请求信号通过中断控制器汇集到CPU。n中断控制器就是在一个计算机系统中专门用来管理中断的器件,它的功能是接收外部中断源的中断请求n中断控制器对中断请求进行处理后(排优)再向CPU发出中断请求,然后则由CPU响应中断并进行处理。中断响应中断响应nCPU检测到中断请求信号转向中断处理子程序的过程叫做中断响应。q检查有没有中断请求q若有,暂停现行进程,保护被中断进程的断点q启动操作系统的中断处理程序检查是否有中断检查是否有中断n内部中断可以CPU由内部逻辑电路直接提出n中断字寄存器q中断字寄存器初值为0,有中断发生时,根据具体事件将相应的位置置1q中断装置只要检查中断字寄存器就能知道是否有中断发生。保护断点保护断点n每个处理器设置一个用来存放当前运行进程的PSW的寄存器,称为程序状态字寄存器。n程序状态字包含三部分内容q程序基本状态n指令地址:下一条指令地址n条件码:条件码n目态/管态n等待/计算q中断码q中断屏蔽位启动中断处理程序启动中断处理程序n根据中断类型码,查询中断向量表,得到中断处理程序地址。CPU转而执行中断处理子程序。中断过程中断过程当前PSWCPU中断请求堆栈中断码:01当前PSW中断码:01查中断向量表获得中断处理程序地址中断类型中断处理程序入口程序01处理01号中断的程序的PSW02处理02号中断的程序的PSW.保护断点,把断点PSW压入堆栈处理01号中断的PSW中断处理中断处理n操作系统的中断处理程序对中断事件进行处理,中断处理程序主要工作有如下几方面:q保护被中断进程现场n通用寄存器、控制寄存器、旧PSW内容保存到进程控制块中q分析中断原因n查询旧的PSW中的中断码,分析具体的中断原因q处理发生的中断n交给相应的子程序处理中断优先级和中断屏蔽中断优先级和中断屏蔽n中断装置按照预定的顺序响应同时出现的中断事件,这个预定的顺序称为“中断优先级”。n中断装置先响应优先级高的,再响应优先级低的。n中断处理程序在处理的过程中,又响应了另一个中断事件,会形成多重嵌套处理。n如果希望在一个中断处理程序没有结束前,不响应其他中断事件,或者只响应比当前级别高的中断事件,采用中断屏蔽技术。n有些中断是不可屏蔽的,例如自愿性中断。