您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 操作系统原理 第五章 处理器调度
第五章处理器调度一、三级调度的概念1、调度的层次1)作业调度又称宏观调度、高级调度或长程调度。用以决定把哪些后备队列中的作业调入内存,并为其创建进程,分配必要的资源,最后将所创建的进程插入就绪队列。从状态观点,就是将一个或一批作业从后备状态变为运行状态2)交换调度又称中级调度或中程调度从存储器资源的角度,将进程的部分或全部换出到外存上,将当前所需部分换入到内存以腾出空间让更多的具备运行条件的进程进入内存。从状态观点,就是将进程从活动态变为静止的挂起态,或者将进程从挂起态变为就绪态或等待态。3)进程调度又称低级调度、微观调度或短程调度。它决定哪个进程可获得物理CPU,从状态观点,就是将某个进程从就绪态变为执行态。2、作业的状态及其转换作业由用户程序、所需的数据和作业说明书组成。一个作业过程中所作的一项相对独立的工作称为一个作业步因此一个作业是由一些列作业步组成的。作业的四种状态提交状态后备状态运行状态完成状态作业输入方式通常有5种:1)联机输入方式2)脱机输入方式3)直接耦合方式4)SPOOLing系统5)网络输入方式3、作业和进程的关系任务实体和任务执行二、作业调度1、作业调度的功能记录系统中各作业的状况从后备队列中挑选出一部分作业投入运行为被选中的作业做好运行前的准备工作在作业运行结束时作善后处理工作2、作业调度的目标与性能衡量1)面向系统的准则系统吞吐量大cpu利用率高各类资源的平衡利用2)面向用户的准则周转时间短(批处理系统)响应时间快(分时系统)截止时间的保证(实时系统)优先权准则三、进程调度操作系统为了对进程进行有效的监控,需要维护一些与进程相关的数据结构,记录所有进程的运行情况,并在进程让出处理器或调度程序剥夺处于运行状态的进程占用的处理器时,选择适当的进程分配处理器,完成上下文的切换。我们把操作系统内核中完成这些功能的部分称为进程调度。1、进程调度的功能1)记录系统中所有进程的执行情况PCB2)选择占有处理器的进程3)进行进程上下文的切换2、进程调度的方式1)非剥夺调度方式2)剥夺调度方式3、进程调度时机进程调度的原因进程调度性能衡量:定形:可靠性和简洁性定量:CPU利用率、进程在就绪队列中的等待时间和运行之间之比等四、常用调度算法1)先来先服务2)短作业优先3)时间片轮转4)优先权调度5)最高相应比优先调度6)多级队列调度7)多级反馈队列调度五、UNIX进程调度1、UNIX系统的进程的图象(image)进程图象的组成:1)进程控制块PCB基本进程控制块proc结构:存放进程的最基本的控制和管理信息,不论该进程是否处于运行状态,系统都要访问的信息,必须常驻内存;扩充进程控制块user结构:存放进程的管理和控制信息,这些信息只有当进程处于运行状态时,系统才访问,不一定常驻内存。2)正文段(共享正文段)它是进程执行程序的一部分,可为多个进程共享执行,作为正文段的程序必须是可重入的。3)数据段包括:正文段程序的处理对象--数据、进程执行程序(私有)及数据和ppda(进程数据区)。4)用户栈2、UNIX进程树0进程:系统初启时由系统初启程序建立,完成系统初启的相应工作后,创建1进程;然后的工作有两项,其一是进程交换(进程图象的管理);其二是进程切换(进程调度)。1进程:为系统的每个联机终端创建一个终端进程,然后就做托管工作。2、3、…、n、n+1进程:终端进程,执行程序是shell,该进程执行是接受和执行用户键入的shell命令,或shell命令程序。用户创建的进程:用户的shell命令或shell程序所创建的进程;用户在其程序中创建的进程。3、进程状态(一)运行状态运行状态表示进程正在处理机上运行。(二)就绪状态在内存中就绪:指进程处于就绪状态,且进程图象在内存就绪且换出:指进程处于就绪状态,且进程图象不在内存。(三)睡眠状态睡眠状态是进程等待某事件发生而被迫暂时让出处理机时所取的状态。p_stat为SSLEEP高优先级睡眠状态;SWAIT低优先级睡眠状态;p_flag中的SLOAD为1,表示该进程图象在内存,否则不在内存。(四)创建状态父进程创建子进程时所处的状态,目的是保证子进程能完全复制父进程的图象。在UNIX系统中,父进程创建一个子进程时,子进程要复制父进程的全部的进程图象(除proc结构外),当有内存空间时,能很快完成复制工作,但若无内存空间时,就要在交换区中建立子进程图象的复本,这时父进程将自己置为创建状态,以保证自己的图象不被调出内存。(五)僵死状态僵死状态是子进程等待父进程作善后处理时所处的状态。进程转换成僵死状态后,就不能再转换成其它任何状态;进程已释放它占用的所有资源(除proc结构外)。p_stat为SZOMB(zombi,zombie还魂尸,僵尸)。进程控制的操作有进程创建fork()、进程睡眠sleep()、进程唤醒wakeup()、进程终止exit()和等待进程终止wait()。4、调度时机1)现行进程调用自己sleep或wait等进入睡眠状态2)现行进程调用exit自我终止3)现行进程的时间片到期且优先权低于其他就绪进程4)现行进程在完成中断和陷入处理后返回用户态时,他的优先权已经低于其他就绪进程或者调度标记被置位5)现行进程从系统调用执行结束后返回用户态时,他的优先权已经低于其他就绪进程或者调度标记被置位5、调度标记设置runrun:表示要求进行调度,当发现有就绪进程优先级高于当前进程时,设置该标识为1。在wakeup,setrun,setpri(设置优先级)过程和时钟中断处理例程进行设置。设置为16、优先数计算采用动态优先数调度策略,优先数越大,优先级越低。进程在用户态和核心态的优先级是不同的,这里说的是用户态进程的优先级。它是基于执行时间的动态优先级,进程优先级可为0~127之间的任一整数。–0~49之间的优先级为系统内核保留–用户态下的进程优先级为50~127之间在UNIXSystemV中,进程优先数:P_pri=P_CPU/2+PUSER+P_nice+NZERO•系统设置部分:PUSER和NZERO是基本用户优先数的阈值,分别为25和20。CPU使用时间部分:P_CPU表示该进程最近一次CPU使用时间。每次时钟周期(时钟脉冲的重复周期称为时钟周期)则该值加1(最多可达80)。此外,秒中断对p_cpu执行除以2的衰减操作。新创建进程的P_CPU值为0,因而具有较高的优先级。不同系统对P_CPU的计算方法有所不同。有的固定一个因子,有的会考虑系统负荷。用户设置部分:P_nice是用户可以通过系统调用设置的一个优先级偏移值。默认为20。超级用户可以设置其在0到39之间,而普通用户只能增大该值(即降低优先级)。7、调度的实现0进程的swtch过程实现对换过程,sched过程,也是0进程的一部分,完成内外存的对换。
本文标题:操作系统原理 第五章 处理器调度
链接地址:https://www.777doc.com/doc-3350190 .html