您好,欢迎访问三七文档
第三章处理器管理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.4UNIX系统中的进程Unix系统中的进程1、系统进程——工作在核心态2、用户进程——工作在用户态3.4.2UNIX进程的组成UNIX进程由3部分组成:(一)进程控制块1、基本控制块(称proc结构)P46-倒15行2、扩充控制块(称user结构)P48-8行(二)正文段(P50-倒17行)(三)数据段(P51-倒9行)进程3部分的结构图3.4.3Unix的进程状态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.6UNIX系统的中断技术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-17P67)分时操作系统控制下的作业称为终端作业。3.7.2批处理作业的调度算法调度算法的准则(1)极大的流量是指在单位时间内系统所完成的作业数。(2)公平性。(3)各类资源的平衡利用。周转时间Ti:是指从作业被提交给系统开始,到作业完成为止的这段时间间隔(称为作业周转时间)。Ti=Ei(完成时间)-Si(进输入#时间)•周转时间包括四部分时间:①作业在外存后备队列上等待调度的时间②进程在就绪队列上等待进程调度的时间③进程在CPU上执行的时间④进程等待I/O操作完成的时间。•平均周转时间描述为:•作业调度算法(一)先来先服务算法(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-18P74)3.7.4UNIX系统的进程调度算法UNIX系统对进程调度采用动态优先数调度算法,进程的优先数随进程的执行情况而变化。UNIX系统优先数越小,则优先级越高。UNIX系统优先数确定的原则(P75-15行))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.有更高优先权的进程要占用CPU5.异常处理时强迫对处理器进行再调度.•Swtch程序睡眠时给以最小的优先数(-100),一但唤醒就具有最高优先权,可首先占用处理器运行.•Swtch程序的主要任务(P77-4行)
本文标题:第三章 处理器管理
链接地址:https://www.777doc.com/doc-3141075 .html