1、12内容回顾:程序的执行程序的顺序执行3内容回顾:进程的定义进程是具有独立功能的程序 关于某个数据集合上的一次运行过程,是系统进行资源分配和运行调度 的独立单位4内容回顾:进程的定义进程是具有独立功能的程序关于某个数据集合上的一次运行过程,是系统进行资源分配和运行调度的独立单位5内容回顾:程序与进程之间的区别6内容回顾:进程的特征动态性进程是对应程序的执行进程是动态产生,动态消亡的,有生命周期并发性 多个进程同时运行独立性进程是资源分配的一个独立单位制约性指进程在执行过程中可能与其它进程产生直接或间接的关系7内容回顾:进程三状态进程模型进程的三种基本状态:运行态就绪态阻塞(等待)态进程在生命消
2、亡前处于且仅处于三种基本状态之一8运行态(Running):进程占有CPU,并在CPU上运行就绪态(Ready):一个进程已经具备运行条件,但由于无CPU暂时不能运行的状态(当调度给其CPU时,立即可以运行)阻塞态(Blocked):指进程因等待某种事件的发生而暂时不能运行的状态(即使CPU空闲,该进程也不可运行)9运行运行就绪就绪阻塞阻塞进程的状态及其转换进程的状态及其转换10内容回顾系统利用系统利用PCBPCB来控制和管理进程,所以来控制和管理进程,所以PCBPCB是系统感知进程存在的唯一标志是系统感知进程存在的唯一标志进程与进程与PCBPCB是一一对应的是一一对应的11内容回顾系统利用系
3、统利用PCBPCB来控制和管理进程,所以来控制和管理进程,所以PCBPCB是系统感知进程存在的唯一标志是系统感知进程存在的唯一标志进程与进程与PCBPCB是一一对应的是一一对应的12今日目标进程调度算法先来先服务调度算法先来先服务调度算法时间片轮转调度算法时间片轮转调度算法优先数调度算法优先数调度算法多级队列调度算法多级队列调度算法13进程调度程序和进程调度算法进程调度程序:-操作系统中决定把cpu分配给哪个进程使用的程序-从就绪队列中选择一个进程并把cpu分配给它使用进程调度算法:-进程调度程序采用的调度方法14进程调度程序功能记录系统所有进程的情况:优先级、状态等确定分配处理的算法完成处理
4、机的具体分配完成处理机的回收15CPU调度的时机调度的时机 当一个进程终止时当一个进程从运行状态切换到阻塞状态当一个进程从运行状态切换到就绪状态当一个进程从阻塞状态切换到就绪状态前两种情况必然引起调度程序,后两种可能执行原来的进程,不需要调度16三级调度时的调度队列模型就绪队列就绪队列进程调度进程调度CPU就绪,挂起队列就绪,挂起队列中级调度中级调度阻塞,挂起队列阻塞,挂起队列阻塞队列阻塞队列等待事件等待事件进程完成进程完成时间片完时间片完作业调度作业调度交互型作业交互型作业后备队列后备队列批量作业批量作业挂起挂起事件出现事件出现事事件件出出现现17两种占用CPU的方式不可抢占式:某一进程被调
5、度运行后,除非由于它自身的原因不能运行,否则一直运行下去可抢占式:当有比正在运行的进程优先级更高的进程就绪或时间片用完时,系统可强行剥夺正在运行进程的CPU,提供给具有更高优先级的进程使用18先来先服务调度算法先来先服务调度算法基本思想:调度时以到达就绪队列的先后次序选择占用处理机的进程。进程一旦占有处理机,就一直用下去,直至结束或因等待某事件而让出处理机。ABCD调度调度就绪队列就绪队列到达到达阻塞队列阻塞队列完成完成I/O完成完成阻阻塞塞CPUI/O19进程调度算法先来先服务调度算法先来先服务调度算法时间片轮转调度算法时间片轮转调度算法优先数调度算法优先数调度算法多级队列调度算法多级队列调
6、度算法20先来先服务调度算法优缺点先来先服务调度算法优缺点优点:实现简单缺点:使短进程等待长进程,重要或紧迫的进程等待不那么重要或紧迫的进程21时间片轮转调度算法时间片轮转调度算法基本思想:调度时为进程分配一个称为“时间片”的时间段,在使用完一个时间片后,即使进程没运行完,也要释放处理机,让给另一个进程使用,自己则排到就绪队列末尾,等待下一次调度。AABCD调度调度就绪队列就绪队列到达到达阻塞队列阻塞队列完成完成I/O完成完成阻阻塞塞CPUI/O时间片到时间片到22时间片长度的确定时间片长度的确定过长过长退化为退化为FCFS算法,进程在一个时算法,进程在一个时间片内都执行完,响应时间长。间片内
7、都执行完,响应时间长。过短过短用户的一次请求需要多个时间片才用户的一次请求需要多个时间片才能处理完,上下文切换次数增加,响应时能处理完,上下文切换次数增加,响应时间长。间长。适宜长度:每个时间片足以产生一个输入适宜长度:每个时间片足以产生一个输入/输出输出23优先数调度算法优先数调度算法基本思想:为系统中的每个进程规定一个优先数,就绪队列中具有最高优先数的进程有优先获得处理机的权利;如果几个进程的优先数相同,则对它们实行先来先服务的调度。24优先数调度算法:如何确定进程的优先数优先数调度算法:如何确定进程的优先数根据进程的类型系统和用户进程根据进程执行任务的重要性根据进程程序的性质根据对资源的
8、要求根据用户的请求25两种优先权算法两种优先权算法非抢占式:调度程序将CPU分配给优先权最高的进程后,等该执行进程执行完后再重新调度抢占式:调度程序将CPU分配给优先权最高的进程后,该进程执行过程中,如有另一高优先权进程出现,则停止该进程的执行,将CPU调度给新进程。26设置优先数的方法设置优先数的方法静态优先数法:在进程创建时指定优先数,在进程运行时优先数不变存在的问题:饥饿动态优先数法(P21公式1)(P22图2-10)在进程创建时创立一个优先数,但在其生命周期内优先数可以动态变化。如等待时间长优先数可改变27多级队列调度算法多级队列调度算法基本思想:系统中维持多个就绪队列,每个就绪队列具
9、有不同的调度级别,可以获得不同长度的时间片。级 1就绪队列里进程的调度级别最高,可获得的时间片最短;级 n就绪队列里进程的调度级别最低,但可以获得的时间片最长。创建新进程时,它的PCB将先进入级 1就绪队列的末尾。28多级队列调度算法具体方法多级队列调度算法具体方法*首先系统中设置多个就绪队列首先系统中设置多个就绪队列*每个就绪队列分配给不同时间片,优先级高的为第一级每个就绪队列分配给不同时间片,优先级高的为第一级队列,时间片最小,随着队列级别的降低,时间片加大队列,时间片最小,随着队列级别的降低,时间片加大*各个队列按照先进先出调度算法各个队列按照先进先出调度算法*一个新进程就绪后进入第一级
10、队列一个新进程就绪后进入第一级队列*进程由于等待而放弃进程由于等待而放弃CPUCPU后,进入等待队列,一旦等待后,进入等待队列,一旦等待的事件发生,则回到原来的就绪队列的事件发生,则回到原来的就绪队列*当有一个优先级更高的进程就绪时,可以抢占当有一个优先级更高的进程就绪时,可以抢占CPUCPU,被,被抢占进程回到原来一级就绪队列末尾抢占进程回到原来一级就绪队列末尾*当第一级队列空时,就去调度第二级队列,如此类推当第一级队列空时,就去调度第二级队列,如此类推*当时间片到后,进程放弃当时间片到后,进程放弃CPUCPU,回到下一级队列,回到下一级队列29多级队列调度算法多级队列调度算法调度调度就绪队
11、列就绪队列到达到达完成完成CPU阻塞、就绪阻塞、就绪时间片到时间片到调度调度完成完成CPU阻塞、就绪阻塞、就绪调度调度完成完成CPU阻塞、就绪阻塞、就绪时间片到时间片到时间片到时间片到级级1(先来先服务先来先服务)级级2(先来先服务先来先服务)级级n(先来先服务先来先服务)30例题 先来先服务调度31例题 先来先服务调度32例题 先来先服务调度33例题 先来先服务调度34例题 先来先服务调度(FCFS)35进程管理原语原语的定义创建进程原语撤销进程原语阻塞进程原语唤醒进程原语36实时调度算法实时调度算法1.非抢占式调度算法非抢占式调度算法 非抢占式轮转调度算法。非抢占式优先调度算法。2.抢占式
12、调度算法抢占式调度算法 基于时钟中断的抢占式优先权调度算法。立即抢占(Immediate Preemption)的优先权调度算法。37实时非抢占式调度算法实时非抢占式调度算法(a)非抢占轮转调度非抢占轮转调度调度时间调度时间进程进程 1进程进程 2实时进程要求调度实时进程要求调度进程进程 n实时进程实时进程调度实时进程运行调度实时进程运行(b)非抢占优先权调度非抢占优先权调度当前进程当前进程实时进程实时进程实时进程请求调度实时进程请求调度当前进程运行完成当前进程运行完成调度时间调度时间38实时抢占调度当前进程当前进程实时进程实时进程实时进程请求调度实时进程请求调度实时进程枪占当前实时进程枪占当
13、前进程,并立即执行进程,并立即执行(d)立即抢占的优先权调度立即抢占的优先权调度当前进程当前进程实时进程请求调度实时进程请求调度时钟中断到来时时钟中断到来时调度时间调度时间(c)基于时钟中断抢占的优先权抢占调度基于时钟中断抢占的优先权抢占调度调度时间调度时间实时进程实时进程39最早截止时间优先即最早截止时间优先即EDF(Earliest Deadline First)算法算法1342开始截止时间开始截止时间任务执行任务执行任务到达任务到达12 341342t40原语定义原语定义操作系统提供若干基本操作,以便能创建、撤消、阻塞和唤醒进程。为了保证执行的正确,要求它们以一个整体出现,不可分割。即一
14、旦启动了对应的程序,就要保证做完,中间不能插入其它程序的执行序列。具有这种特性的程序被称为“原语原语”。为保证原语操作的不可分割性,通常总是利用屏蔽中断的方法。41进程管理原语创建进程原语用户程序调用创建进程原语闯进新进程创建进程称为父进程被创建的进程称为子进程创建进程原语流程:1.屏蔽中断2.申请进程控制块PCB3.将创建者提供的信息填入PCB4.设置为就绪状态,按照调度算法把PCB排入就绪队列中。5.打开中断42进程管理原语撤销进程原语只能由父进程或更上一进进程完成1.收回该进程占用的资源2.将该进程的PCB从所在队列里摘下.3.把PCB所占用的存储区归还给系统。43进程管理原语阻塞进程原语或将自己变为阻塞,或将其子孙进程进行阻塞1.将被阻塞进程的现场信息保存到PCB中,状态改为阻塞2.将其PCB排到相应的阻塞队列中。若被阻塞的是自己,调用了该原语后,就重新分配处理机。44进程管理原语唤醒进程原语在等待的事件发生后,由唤醒进程原语把等待进程从相应的阻塞队列里解放出来进入就绪队列,重新参与调度45课堂练习P38 填空、选择
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。