1.1) FCFS先进先服务的先服先先进程调度算法 2) SPF短作业优先的进程调度算法 3) 响应比高优先的进程调度算法
2.高响应比优先调度算法原理
3.服务调度原理
4.进程调度算法是什么?
1) FCFS先进先服务的进程调度算法 2) SPF短作业优先的进程调度算法 3) 响应比高优先的进程调度算法
FCFS和preemptive SJF不是SPF注意,Average Turnround Time平均周转时间的计算如下: 将所有进程的等待时间和执行时间都加起来除以进程数,如P1,P2,P3 CPU burst time 5,9,6 Arrive time到达时间为3,0,1 即P2先到达等待时间为0 然后P3到达,然后P1到达, 那么P3,P1能不能抢占哪?看谁的CPU burst time最少,SJF最短job先执行First, P1 CPU burst time是5所以P1优先级最大, 然后是P3优先级第二大,因为CPU burst time是6, 所以当P2因Arrive time为0而先执行,当执行1单位时间后,P3到达 Arrive Time 为1嘛,所以P3抢占P2开始执行执行到第3单位时间时P1到达,P1 CPU burst time是5而P3是6,所以P1将P3抢占 P1从开始到P1任务完成,执行了5单位时间, 然后P2和P3谁优先,P3 CPU burst time是6 而P2 CPU burst time是9 所以P3接着从刚才的终端点继续执行,刚才已经执行(3-1)=2单位时间,调度调度(6-2)=4 即P3又执行4单位时间,源码接着P2执行(9-1)=8 单位时间:所以平均周转时间 Average Turnaround Time为等待时间加执行时间:P1:5(因优先级最大又没等)P2:等待时间(2+5+4)=执行时间=9 所以P2周转时间+9= P3:等待时间=5(被P1抢占了嘛)执行时间=6 所以P3周转时间 Turnaround Time:5+6= 这样平均周转时间等于(5++)/3=/3= 单位时间 有问题email:portlet@msn.com
高响应比优先调度算法原理
高响应比优先调度算法是算法一种综合考虑作业执行时间和等待时间的调度策略,它结合了先来先服务和最短作业优先算法的服务优点。响应比是先服先先fork.c源码剖析评估作业优先级的关键指标,它是调度调度通过将作业的等待时间和运行时间相加,然后除以运行时间来计算的源码。公式为:响应比( RR ) = (等待时间 + 要求服务时间) / 要求服务时间,算法即 RR = (w + s) / s = 1 + w/s。服务由于等待时间通常是先服先先非零的,因此响应比总是调度调度大于1。 以一个具体的源码例子说明:假设一个系统有三个作业,它们在全部到达后采用高响应比优先调度。算法python 小游戏源码作业信息如下:作业1:提交时间 8.8,服务运行时间 1.5
作业2:提交时间 9.0,运行时间 0.4
作业3:提交时间 9.5,运行时间 1.0
计算它们的等待时间和响应比:作业1等待时间 = 9.5 - 8.8 = 0.7,响应比1 = 0.7 / 1.5 + 1 = 1.;作业2等待时间 = 9.5 - 9.0 = 0.5,响应比2 = 0.5 / 0.4 + 1 = 2.;作业3等待时间 = 0,响应比3 = 0 + 1 = 1。 根据响应比,作业2首先执行,从9.5开始,到9.9结束。接着,以9.9时刻计算响应比:作业1的最新大番薯源码新响应比 = (9.9 - 8.8) / 1.5 + 1 = 1.,作业3的新响应比 = (9.9 - 9.5) / 1 + 1 = 1.4。因此,作业1在作业2完成后开始执行,从9.9到.4结束。最后,作业3在所有作业执行完后,从.4开始执行到.4结束。服务调度原理
服务调度的原理:
1、每次调度是从就绪队列中,选择一个最先进入就绪队列的进程,把处理器分配给该进程,使之得到执行。
该进程一旦占有了处理器,停车小程序源码它就一直运行下去,直到该进程完成或因发生事件而阻塞,才退出处理器。
2、将用户作业和就绪进程按提交顺序或变为就绪状态的先后排成队列,并按照先来先服务的方式进行调度处理,是一种最普遍和最简单的方法。
它优先考虑在系统中等待时间最长的作业,而不管要求运行时间的长短。
3、按照就绪进程进入就绪队列的先后次序进行调度,简单易实现,利于长进程,文章转发赚钱源码CPU繁忙型作业,不利于短进程,排队时间相对过长。
进程调度算法是什么?
调度算法是指:根据系统的资源分配策略所规定的资源分配算法。
一、先来先服务和短作业(进程)优先调度算法
1. 先来先服务调度算法。先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度, 也可用于进程调度。FCFS算法比较有利于长作业(进程),而不利于短作业(进程)。由此可知,本算法适合于CPU繁忙型作业, 而不利于I/O繁忙型的作业(进程)。
2. 短作业(进程)优先调度算法。短作业(进程)优先调度算法(SJ/PF)是指对短作业或短进程优先调度的算法,该算法既可用于作业调度, 也可用于进程调度。但其对长作业不利;不能保证紧迫性作业(进程)被及时处理;作业的长短只是被估算出来的。
二、高优先权优先调度算法
1. 优先权调度算法的类型。为了照顾紧迫性作业,使之进入系统后便获得优先处理,引入了最高优先权优先(FPF)调度算法。 此算法常被用在批处理系统中,作为作业调度算法,也作为多种操作系统中的进程调度,还可以用于实时系统中。当其用于作业调度, 将后备队列中若干个优先权最高的作业装入内存。当其用于进程调度时,把处理机分配给就绪队列中优先权最高的进程,此时, 又可以进一步把该算法分成以下两种:
1)非抢占式优先权算法
2)抢占式优先权调度算法(高性能计算机操作系统)
2. 优先权类型 。对于最高优先权优先调度算法,其核心在于:它是使用静态优先权还是动态优先权, 以及如何确定进程的优先权。
3. 高响应比优先调度算法
为了弥补短作业优先算法的不足,我们引入动态优先权,使作业的优先等级随着等待时间的增加而以速率a提高。 该优先权变化规律可描述为:优先权=(等待时间+要求服务时间)/要求服务时间;即 =(响应时间)/要求服务时间
三、基于时间片的轮转调度算法
1. 时间片轮转法。时间片轮转法一般用于进程调度,每次调度,把CPU分配队首进程,并令其执行一个时间片。 当执行的时间片用完时,由一个记时器发出一个时钟中断请求,该进程被停止,并被送往就绪队列末尾;依次循环。 2. 多级反馈队列调度算法 多级反馈队列调度算法多级反馈队列调度算法,不必事先知道各种进程所需要执行的时间,它是目前被公认的一种较好的进程调度算法。 其实施过程如下:
1) 设置多个就绪队列,并为各个队列赋予不同的优先级。在优先权越高的队列中, 为每个进程所规定的执行时间片就越小。
2) 当一个新进程进入内存后,首先放入第一队列的末尾,按FCFS原则排队等候调度。 如果他能在一个时间片中完成,便可撤离;如果未完成,就转入第二队列的末尾,在同样等待调度…… 如此下去,当一个长作业(进程)从第一队列依次将到第n队列(最后队列)后,便按第n队列时间片轮转运行。
3) 仅当第一队列空闲时,调度程序才调度第二队列中的进程运行;仅当第1到第(i-1)队列空时, 才会调度第i队列中的进程运行,并执行相应的时间片轮转。
4) 如果处理机正在处理第i队列中某进程,又有新进程进入优先权较高的队列, 则此新队列抢占正在运行的处理机,并把正在运行的进程放在第i队列的队尾。