资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第三章 处理器管理,3.1 多道程序设计,3.1.1 何谓多道程序设计?,多道程序中应注意的问题:,1、多道程序同时驻留内存,各道程序只能访问自己的区域。,2、各道程序能在任何区域正常执行。,程序浮动程序可以随意地从主存的一个区域移动到另一个区域,程序移动后不影响他的执行。,3、多,道程序要竞争,CPU,OS,必须进行合理的调度选择一道占用,CPU,执行。,4、多道程序的系统中,必须对各种资源按一定的策略进行分配和调度。,3.1.2 为什么采用多道程序设计?,单道,系统中的处理过程,多道程序设计使,CPU,和,I/O,设备能并行工作。,采用多道程序设计后提高了整个系统的效率,主要表现:,1、提高,CPU,利用率,减少,CPU,空闲时间。,2、使不同设备间能并行工作。,3、由于多道程序设计提高了系统的吞吐率,3.1.3 采用多道程序设计应注意的问题:,(一)可能延长程序执行时间,举例:,P38-4,行,(二)并行工作道数与系统效率不成正比,见,P39-2,行所述,3.2 进程概念,3.2.1 定义,什么叫进程?,P39-,倒8行,进程与程序的区别?,1、程序代码和数据的集合。(静态),2、进程在程序、数据上的处理,并能获得结果。(动态的),3.2.2为什么要引入“进程”?,引入“进程”可以同时并发执行,提高系统的性能。,进程分为:系统进程和用户进程,3.2.3 进程的属性,(一)进程的动态特性,(二)多个不同的进程可以包含相同的程序,何为“可再入”的程序?(,P41-14),(,三)进程的三种基本状态及变化,(,P41-,倒8),(四)进程可以并发执行,何谓并发执行?,进程的特性:(,P42-18),3.3 进程队列,3.3.1 进程控制块,3.3.2 进程的创建与撤消,1、进程的创建,(1)为程序分配一个工作区,(2)建立一个进程控制块,2、进程撤消,当一个进程完成了特定任务后,系统回收进程占用的工作区和取消进程的,PCB,原语:,(,P44-12),3.3.3 进程队列的连接,把经常处于相同状态的进程连接再一起,称为进程状态。,进程队列:单向连接和双向连接。,(,P45-,图3-8),3.4,UNIX,系统中的进程,Unix,系统中的进程,1、系统进程工作在核心态,2、用户进程工作在用户态,3.4.2,UNIX,进程的组成,UNIX,进程由3部分组成:,(一)进程控制块,1、基本控制块(称,proc,结构),P46-,倒15行,2、扩充控制块(称,user,结构),P48-8,行,(二)正文段(,P50-,倒17行),(三)数据段(,P51-,倒9行),进程3部分的结构图,3.4.3,Unix,的进程状态,3.4.4 进程的创建和终止,1.,UNIX,的进程树,2.进程的创建,除0号和1号进程外,其他进程由,fork,创建。,调用,fork,函数来创建子进程。,进程的创建过程:(,P53-,倒2行),子,进程等待,父进程执行,父进程等待,子进程执行,进程的创建过程,3.进程的终止,进程在用户态运行时可以使用系统调用,exit,终止执行.,Exit,的主要任务(,P55-,倒6行),Wait,的主要任务(,P55-,倒1行),3.4.5 进程的换进换出,进程的换进换出:磁盘与主存的信息交换.,(,P56,图3-14),3.4.6 进程的睡眠与唤醒,1.进程的睡眠,多种原因可引起进程的睡眠.,一个进程需要睡眠时调用,sleep,程序,就可以进入睡眠,并挂在睡眠队列.,由于进程的睡眠,则根据,runin,标志判断是否有进程要进入,如果有则唤醒交换进程,实现等待区的进程进入内存,睡眠进程进交换区.,2.进程的唤醒,由于资源释放等原因,释放资源的进程调用,wakeup,程序将等待资源的进程唤醒.,在主存唤醒的进程放就绪队列,在对换区唤醒的进程仍在对换区,放在就绪唤出队列.,3.5 中断技术,3.5.1、中断和中断类型,何谓中断、中断源和中断处理程序?,根据中断性质可分为两大类:,(一)强迫性中断事件,1、由于外部的请求或某些意外事故而迫使正在运行的进程被打断。,2、强迫性中断的类型(,P58-16,行),(二)自愿性中断事件,(软中断),在进程中请求操作系统服务,通过系统调用所引起的。,3.5.2 中断响应,何谓中断响应?(,P59-6,行),(一)中断寄存器:记录强迫性中断事件的寄存器。,(二)程序状态字:记录程序执行的相关状态。(,P60),(,三)中断响应:是通过交换,PSW,完成。(,P61,图3-15),3.5.3 中断事件的处理,中断事件的处理过程:,(一,),保护现场,(二)分析中断原因,(三)处理发生的中断事件,(1)由于各种中断事件的性质不同,因此,也要进行不同的处理,甚至对同一种中断的不同事件的处理也不相同。(例如:调度中断、定时中断),(2)各种中断事件的处理原则:(,P61-,倒1行),3.5.4 中断优先级和中断屏蔽,中断优先级是按中断事件的重要性和紧迫程度来确定的。,中断的嵌套处理(,P63,图3-16),中断屏蔽可设置对某些中断不响应。,自愿中断是不能屏蔽的。,3.6,UNIX,系统的中断技术,3.6.1 中断事件和异常情况,UNIX,把可能出现的事件分为两种:,(1)中断事件(,P63-,倒3行),(2)异常情况(,P63-,倒1行),3.6.2 处理机状态字,每个进程都有自己的处理机状态字(,PSW),处理机状态字包含的内容(见图,P64),3.6.3 中断处理,1.中断响应,中断处理入口表:(,P64-,倒9行),2.中断处理过程:,3.7 处理机调度,处理机调度负责为作业分配处理机的操作。,3.7.1 处理机的两级调度,1作业调度:用于决定把外存上处于后备队列中的哪些作业调入内存,并为它们创建进程、分配必要的资源,然后,再将新创建的进程排在就绪队列上,准备执行。,2进程调度:用来决定就绪队列中的哪个进程应获得处理机,并占用处理机执行。,作业调度与进程调度的层次关系。,(见,图3-17,P67),分时操作系统控制下的作业称为终端作业。,3.7.2,批处理作业的,调度算法,调度算法的准则,(1)极大的流量是指在单位时间内系统所完成的作业数。,(2)公平性。,(3)各类资源的平衡利用。,周转时间,Ti:,是指从作业被提交给系统开始,到作业完成为止的这段时间间隔(称为作业周转时间),。,Ti=,Ei,(,完成时间)-,Si,(,进输入#时间),周转时间包括四部分时间,:,作业在外存后备队列上等待调度的时间,进程在就绪队列上等待进程调度的时间,进程在,CPU,上执行的时间,进程等待,IO,操作完成的时间。,平均周转时间描述为:,作业调度算法,(一)先来先服务算法,(,P68,倒5行),(二)计算时间短的作业优先算法,(,P69,倒3行),(三)响应比高者优先算法,响应比高者优先算法,既照顾了短作业,又考虑了作业到达的先后次序,不会使长作业长期得不到服务。,利用该算法时,每次调度之前,都须先做响应比的计算,会增加系统开销。,举例(,P71-1,行),4.,优先权调度算法,优先权的类型:静态优先权和动态优先权.,静态优先权,是在创建进程时确定的,且在进程的整个运行期间保持不变。,动态优先权,是指在创建进程时所赋予的优先权,是可以随进程的推进或随其等待时间的增加而改变的,以便获得更好的调度性能。,5.均衡调度算法,根据作业对系统的资源要求来进行调度.,3.7.3 进程调度算法,进程调度程序是按照某种调度算法从就绪队列中选择一个进程,让他占用处理器,称为进程切换。,引起进程切换的原因,:(,P72 3,行),1、一个进程从运行状态变成等待状态。,2、一个进程从运行状态变成就绪状态。,3、一个进程完成工作后被撤消。,进程切换是由进程状态的变化引起的。,常见的进程调度算法,:,(一)先来先服务算法:按进程进入就绪队列的先后次序来选择进程占用处理器。,举例(,P72 21,行),(二)优先数调度算法:按进程优先级来选择最高优先权的进程占用处理器。,1、优先数的确定;,(1)固定优先数,(2)可变优先数,2、占用处理器的方式有两种:,(1)非抢占方式,(2)可抢占方式,(三)时间片轮转调度算法,时间片轮转调度算法:将就绪进程按先后次序排队,按时间片依次轮流让进程占用处理机执行。,(四)分级调度算法(多级调度算法),设置多个就绪队列,每个队列按时间片轮转调度算法占用处理机。,每个就绪队列的优先级不同。,进程执行从高优先级开始,逐渐会降低。,(如图3-18,P74),3.7.4,UNIX,系统的进程调度算法,UNIX,系统对进程调度采用动态优先数调度算法,进程的优先数随进程的执行情况而变化。,UNIX,系统优先数越小,则优先级越高。,UNIX,系统优先数确定的原则,(,P75-1,5,行),UNIX,系统中确定优先数有两种方法:,(1)设置优先数进程进入睡眠状态时,系统按其睡眠原因设置优先数。,(2)优先数的计算进程正在或即将转入用户态运行时,用计算方法确定优先数。,P_PRI=P_CPU/2+PUSER+P_nice+NZER0,(3),优先数的计算时机选择有2个:,利用时钟中断,每1秒钟对大于,PUSER、NZER0,的,P_CPU,数,进行除2计算。,进程请求系统调用之后重新计算,P_CPU,优先数。,进程调度,Swtch,UNIX,系统中进程调度是由,Swtch,程序来完成的。,Swtch,程序什么时间开始启动执行:,1.进程完成了预定的工作而终止。,2.进程因某事件等待而睡眠.,3.进程运行时间片到.,4.有更高优先权的进程要占用,CPU,5.,异常处理时强迫对处理器进行再调度.,Swtch,程序睡眠时给以最小的优先数(-100),一但唤醒就具有最高优先权,可首先占用处理器运行.,Swtch,程序的主要任务(,P77-4,行),
展开阅读全文