导航:首页 > 源码编译 > 进程调度是通过某种算法

进程调度是通过某种算法

发布时间:2022-07-13 15:29:43

1. 进程调度的方式有哪两种试列举至少4种进程调度算法

进程调度的方式有非剥夺方式和剥夺方式。
非剥夺方式:
分派程序一旦把处理机分配给某进程后便让它一直运行下去,直到进程完成或发生某事件而阻塞时,才把处理机分配给另一个进程。
剥夺方式:
当一个进程正在运行时,系统可以基于某种原则,剥夺已分配给它的处理机,将之分配给其它进程。剥夺原则有:优先权原则、短进程优先原则、时间片原则。
进程调度算法:
1、先进先出算法(FIFO):
算法总是把处理机分配给最先进入就绪队列的进程,一个进程一旦分得处理机,便一直执行下去,直到该进程完成或阻塞时,才释放处理机。
举例:有三个进程P1、P2和P3先后进入就绪队列,它们的执行期分别是21、6和3个单位时间,对于P1、P2、P3的周转时间为21、27、30,平均周转时间为26。可见,FIFO算法服务质量不佳,容易引起作业用户不满,常作为一种辅助调度算法。
2、最短CPU运行期优先调度算法(SCBF--Shortest CPU Burst First):
该算法从就绪队列中选出下一个“CPU执行期最短”的进程,为之分配处理机。
举例:在就绪队列中有四个进程P1、P2、P3和P4,它们的下一个执行进程调度期分别是16、12、4和3个单位时间,P1、P2、P3和P4的周转时间分别为35、19、7、3,平均周转时间为16。该算法虽可获得较好的调度性能,但难以准确地知道下一个CPU执行期,而只能根据每一个进程的执行历史来预测。
3、时间片轮转法:
前几种算法主要用于批处理系统中,不能作为分时系统中的主调度算法,在分时系统中,都采用时间片轮转法。简单轮转法:系统将所有就绪进程按FIFO规则排队,按一定的时间间隔把处理机分配给队列中的进程。这样,就绪队列中所有进程均可获得一个时间片的处理机而运行。
4、多级反馈队列:
多级队列方法:将系统中所有进程分成若干类,每类为一级。多级反馈队列方式是在系统中设置多个就绪队列,并赋予各队列以不同的优先权。

2. 操作系统进程调度具体算法是什么

这是主要算法:你可以参考一下
public
class
PrivilegeProcess
{
public
staticlinux操作系统的进程调度以及各种实时Linux系统为了支持实时特性对普通Linux系统

3. 调度算法的linux进程调度算法

linux内核的三种调度方法:
1. SCHED_OTHER 分时调度策略,
2. SCHED_FIFO实时调度策略,先到先服务
3. SCHED_RR实时调度策略,时间片轮转
实时进程将得到优先调用,实时进程根据实时优先级决定调度权值,分时进程则通过nice和counter值决
定权值,nice越小,counter越大,被调度的概率越大,也就是曾经使用了cpu最少的进程将会得到优先调
度。
SHCED_RR和SCHED_FIFO的不同:
当采用SHCED_RR策略的进程的时间片用完,系统将重新分配时间片,并置于就绪队列尾。放在队列
尾保证了所有具有相同优先级的RR任务的调度公平。
SCHED_FIFO一旦占用cpu则一直运行。一直运行直到有更高优先级任务到达或自己放弃。
如果有相同优先级的实时进程(根据优先级计算的调度权值是一样的)已经准备好,FIFO时必须等待该
进程主动放弃后才可以运行这个优先级相同的任务。而RR可以让每个任务都执行一段时间。
SHCED_RR和SCHED_FIFO的相同点:
SHCED_RR和SHCED_FIFO都只用于实时任务。
创建时优先级大于0(1-99)。
按照可抢占优先级调度算法进行。
就绪态的实时任务立即抢占非实时任务。
所有任务都采用linux分时调度策略时。
1. 创建任务指定采用分时调度策略,并指定优先级nice值(-20~19)。
2. 将根据每个任务的nice值确定在cpu上的执行时间(counter)。
3. 如果没有等待资源,则将该任务加入到就绪队列中。
4. 调度程序遍历就绪队列中的任务,通过对每个任务动态优先级的计算(counter+20-nice)结果,选择
计算结果最大的一个去运行,当这 个时间片用完后(counter减至0)或者主动放弃cpu时,该任务将被放在
就绪队列末尾(时间片用完)或等待队列(因等待资源而放弃cpu)中。
5. 此时调度程序重复上面计算过程,转到第4步。
6. 当调度程序发现所有就绪任务计算所得的权值都为不大于0时,重复第2步。
所有任务都采用FIFO时:
1. 创建进程时指定采用FIFO,并设置实时优先级rt_priority(1-99)。
2. 如果没有等待资源,则将该任务加入到就绪队列中。
3. 调度程序遍历就绪队列,根据实时优先级计算调度权值(1000+rt_priority),选择权值最高的任务使用
cpu,该FIFO任务将一直占有cpu直到有优先级更高的任务就绪(即使优先级相同也不行)或者主动放弃(等
待资源)。
4. 调度程序发现有优先级更高的任务到达(高优先级任务可能被中断或定时器任务唤醒,再或被当前运行
的任务唤醒,等等),则调度程序立即在当前任务 堆栈中保存当前cpu寄存器的所有数据,重新从高优先级
任务的堆栈中加载寄存器数据到cpu,此时高优先级的任务开始运行。重复第3步。
5. 如果当前任务因等待资源而主动放弃cpu使用权,则该任务将从就绪队列中删除,加入等待队列,此时
重复第3步。
所有任务都采用RR调度策略时
1. 创建任务时指定调度参数为RR,并设置任务的实时优先级和nice值(nice值将会转换为该任务的时间片
的长度)。
2. 如果没有等待资源,则将该任务加入到就绪队列中。
3. 调度程序遍历就绪队列,根据实时优先级计算调度权值(1000+rt_priority),选择权值最高的任务使用
cpu。
4. 如果就绪队列中的RR任务时间片为0,则会根据nice值设置该任务的时间片,同时将该任务放入就绪队
列的末尾。重复步骤3。
5. 当前任务由于等待资源而主动退出cpu,则其加入等待队列中。重复步骤3。
系统中既有分时调度,又有时间片轮转调度和先进先出调度
1. RR调度和FIFO调度的进程属于实时进程,以分时调度的进程是非实时进程。
2. 当实时进程准备就绪后,如果当前cpu正在运行非实时进程,则实时进程立即抢占非实时进程。
3. RR进程和FIFO进程都采用实时优先级做为调度的权值标准,RR是FIFO的一个延伸。FIFO时,如果两
个进程的优先级一样,则这两个优先 级一样的进程具体执行哪一个是由其在队列中的未知决定的,这样导
致一些不公正性(优先级是一样的,为什么要让你一直运行?),如果将两个优先级一样的任务 的调度策略都
设为RR,则保证了这两个任务可以循环执行,保证了公平。

4. 什么是进程调度常用的进程调度算法有哪些

无论是在批处理系统还是分时系统中,用户进程数一般都多于处理机数、这将导致它们互相争夺处理机。另外,系统进程也同样需要使用处理机。这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行。就是调度。
有先来先服务调度算法、优先数调度算法、时间片轮转算法、分级调度算法 、最短作业时间优先(抢占式和非抢占式)、最高响应比调度算法,乐透调度等。

5. 什么是进程调度常用的进程调度算法有哪些试比较他们之间的性能。 什么是进程调度

进程调度,用户进程数进程调度一般都多于处理机数、这将导致它们互相争夺处理机。另外,系统进程也同样需要使用处理机。无论是在批处理系统还是分时系统中,用户进程数 进程调度 一般都多于处理机数、这将导致它们互相争夺处理机。另外,系统进程也同样需要使用处理机。这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行。 进程调度的的分级 高级、中级和低级调度作业从提交开始直到完成,往往要经历下述三级调度: 高级调度:(High-Level Scheling)又称为作业调度,它决定把后备作业调入内存运行; 低级调度:(Low-Level Scheling)又称为进程调度,它决定把就绪队列的某进程获得CPU; 中级调度:(Intermediate-Level Scheling)又称为在虚拟存储器中引入,在内、外存对换区进行进程对换。先进先出算法 进程调度 算法总是把处理机分配给最先进入就绪队列的进程,一个进程一旦分得处理机,便一直执行下去,直到该进程完成或阻塞时,才释放处理机。 例如,有三个进程P1、P2和P3先后进入就绪队列,它们的执行期分别是21、6和3个单位时间, 执行情况如下图: 对于P1、P2、P3的周转时间为21、27、30,平均周转时间为26。 可见,FIFO算法服务质量不佳,容易引起作业用户不满,常作为一种辅助调度算法。 最短CPU运行期优先调度算法(SCBF--Shortest CPU Burst First) 该算法从就绪队列中选出“下一个CPU执行期”最短的进程,为之分配处理机。 例如,在就绪队列中有四个进程P1、P2、P3和P4,它们的下一个执行期分别是16、12、4和3个单位时间,执行情况如下图: P1、P2、P3和P4的周转时间分别为35、19、7、3,平均周转时间为16。 该算法虽可获得较好的调度性能,但难以准确地知道下一个CPU执行期,而只能根据每一个进程的执行历史来预测。 轮转法 前几种算法主要用于批处理系统中,不能作为分时系统中的主调度算法,在分时系统中,都采用时间片轮转法。 简单轮转法:系统将所有就绪进程按FIFO规则排队,按一定的时间间隔把处理机分配给队列中的进程。这样,就绪队列中所有进程均可获得一个时间片的处理机而运行。 多级队列方法:将系统中所有进程分成若干类,每类为一级。 多级反馈队列 多级反馈队列方式是在系统中设置多个就绪队列,并赋予各队列以不同的优先权

6. unix系统v的进程调度是采用怎样的调度算法完成的

答案为D。 多级反馈队列轮转法 调度算法(作业调度、进程调度) 1、先来先服务调度算法(FCFS) 按进入后备(或就绪)队列的先后选择目标作业(或进程)。 有利于长作业(进程),不利于短作业(进程)。 2、最短作业优先调度算法SJ(P)F 从后备(或就绪)队列中选择估计运行时间最短的作业(或进程) tn+1=a tn+(1-a) tn tn为实际值, tn为预测值 SJF有效地降低作业的平均等待时间,提高了系统的吞吐量。 对长作业(或进程)不利,可能死等,且未考虑作业的紧迫程度。 3、时间片轮转调度算法(进程调度) 系统将所有的就绪进程按先来先服务原则,排成一个队列,每次调度时把CPU分配给队首进程,令其执行一个时间片。 就绪队列中所有进程,在一个给定的时间内,均能获得一个时间片的处理机执行时间。T=nq 4、优先权调度算法 适用于作业调度和进程调度。 非抢占式、抢占式优先权调度算法 优先权类型:静态优先权、动态优先权 5、高响应比优先调度算法(作业调度) 响应比RP= 响应时间/要求服务时间=(等待时间+要求服务时间)/要求服务时间 = 1+等待时间/要求服务时间 同时到达的作业(等待时间相同),要求服务时间越短(短作业),响应比越高,有利于短作业。 要求服务时间相同的作业,等待时间越长,响应比越高,相当于先来先服务。 长作业在等待足够长时间后,响应比上升,也可被调度,避免长作业的死等。 每次调度需计算响应比,增加系统的开销。 6、多级队列调度 根据作业的性质或类型的不同,将就绪进程队列分成若干个子队列,各个作业固定分属于一个队列。每个队列采用各自的调度算法。 7、多级反馈队列调度算法 UNIX系统中的进程调度算法。 处理方法: 设置多个就绪队列,每个队列赋予不同的优先权(S1>S2……>Sn ),且各队列中进程执行的时间片的大小各不相同(q,2q……nq)。 新进程进入内存,首先放在S1的末尾,按FCFS排队调度,执行q时间片,若未完成,该进程转入S2,依次类推。 仅当Si空闲,才会调度Si+1中进程。 能较好地满足各种类型用户的需要。

7. 进程调度的算法

算法总是把处理机分配给最先进入就绪队列的进程,一个进程一旦分得处理机,便一直执行下去,直到该进程完成或阻塞时,才释放处理机。
例如,有三个进程P1、P2和P3先后进入就绪队列,它们的执行期分别是21、6和3个单位时间,
执行情况如下图:
对于P1、P2、P3的周转时间为21、27、30,平均周转时间为26。
可见,FIFO算法服务质量不佳,容易引起作业用户不满,常作为一种辅助调度算法。 最短CPU运行期优先调度算法(SCBF--Shortest CPU Burst First)
该算法从就绪队列中选出下一个“CPU执行期最短”的进程,为之分配处理机。
例如,在就绪队列中有四个进程P1、P2、P3和P4,它们的下一个执行期分别是16、12、4和3个单位时间,执行情况如下图:
P1、P2、P3和P4的周转时间分别为35、19、7、3,平均周转时间为16。
该算法虽可获得较好的调度性能,但难以准确地知道下一个CPU执行期,而只能根据每一个进程的执行历史来预测。 前几种算法主要用于批处理系统中,不能作为分时系统中的主调度算法,在分时系统中,都采用时间片轮转法。
简单轮转法:系统将所有就绪进程按FIFO规则排队,按一定的时间间隔把处理机分配给队列中的进程。这样,就绪队列中所有进程均可获得一个时间片的处理机而运行。
多级队列方法:将系统中所有进程分成若干类,每类为一级。 多级反馈队列方式是在系统中设置多个就绪队列,并赋予各队列以不同的优先权。

8. 几种进程调度算法分析

前两天做操作系统作业的时候学习了一下几种进程调度算法,在思考和讨论后,有了一些自己的想法,现在就写出来,跟大家讨论下。 ,或者说只有有限的CPU资源,当系统中有多个进程处于就绪状态,要竞争CPU资源时,操作系统就要负责完成如何分配资源的任务。在操作系统中,由调度程序来完成这一选择分配的工作,调度程序所使用的算法即是调度算法。调度算法需要考虑的指标主要有尽量保证CPU资源分配的公平性;按照一定策略强制执行算法调度;平衡整个计算机系统,尽量保持各个部分都处于忙碌状态。而根据系统各自不同的特点和要求,调度算法又有一些侧重点和目标不同,因此,算法按照系统差异主要分为三大类: 批处理系统中的调度算法, 代表调度算法有:先来先服务、最短作业优先、最短剩余时间优先。 交互式系统中的调度算法, 代表调度算法有:轮转调度、优先级调度、多级队列、最短进程优先、保证调度、彩票调度、公平分享调度。 实时系统中的调度算法 ,代表调度算法有:速率单调调度、最早最终时限优先调度。 下面就上述提到的调度算法中挑出几个进行重点分析:保证调度保证调度是指利用算法向用户做出明确的性能保证,然后尽力按照此保证实现CPU的资源分配。利用这种算法,就是定一个进程占用CPU的时间的标准,然后按照这个标准去比较实际占用CPU的时间,调度进程每次使离此标准最远的进程得到资源,不断满足离所保证的标准最远的进程,从而平衡资源分配满足这个标准的要求。 保证调度算法的优点是:能很好的保证进程公平的CPU份额,当系统的特点是:进程的优先级没有太大悬殊,所制定的保证标准差异不大,各个进程对CPU的要求较为接近时,比如说系统要求n个进程中的每个进程都只占用1/n的CPU资源,利用保证调度可以很容易的实现稳定的CPU分配要求。但缺点是,这种情况太过理想,当系统的各个进程对CPU要求的紧急程度不同,所制定的保证较为复杂的时候,这个算法实现起来比较困难。 彩票调度彩票调度这种算法的大意是指向进程提供各种系统资源如CPU资源的彩票,当系统需要做出调度决策时,随机抽出一张彩票,由此彩票的拥有者获得资源。在彩票调度系统中,如果有一个新的进程出现并得到一些彩票,那么在下一次的抽奖中,该进程会有同它持有彩票数量成正比例的机会赢得奖励。进程持有的彩票数量越多,则被抽中的可能性就越大。调度程序可以通过控制进程的彩票持有数量来进行调度。 彩票调度有很多优点:首先,它很灵活,系统增加分给某个进程的彩票数量,就会大大增加它占用资源的可能性,可以说,彩票调度的反应是迅速的,而快速响应需求正是交互式系统的一个重要要求。其次,彩票调度算法中,进程可以交换彩票,这个特点可以更好的保证系统的平衡性,使其各个部分都尽可能的处于忙碌状态。而且利用彩票调度还可以解决许多别的算法很难解决的问题,例如可以根据特定的需要大致成比例的划分CPU的使用。 速率单调调度 速率单调调度算法是一种可适用于可抢占的周期性进程的经典静态实时调度算法。当实时系统中的进程满足:每个周期性进程必须在其周期内完成,且进程之间没有相互依赖的关系,每个进程在一次突发中需要相同的CPU时间量,非周期的进程都没有最终时限四个条件时,并且为了建模方便,我们假设进程抢占即刻发生没有系统开销,可以考虑利用速率单调算法。 速率单调调度算法是将进程的速率(按照进程周期所算出的每秒响应的次数)赋为优先级,则保证了优先级与进程速率成线性关系,这即是我们所说的速率单调。调度程序每次运行优先级最高的,只要优先级较高的程序需要运行,则立即抢占优先级低的进程,而优先级较低的进程必须等所有优先级高于它的进程结束后才能运行。 速率单调调度算法可以保证系统中最关键的任务总是得到调度,但是缺点是其作为一种静态算法,灵活性不够好,当进程数变多,系统调度变得复杂时,可能不能较好的保证进程在周期内运行。 最早最终时限优先调度 最早最终时限优先调度算法是一个动态算法,不要求进程是周期性的,只要一个进程需要CPU时间,它就宣布它的到来时间和最终时限。调度程序维持一个可运行的进程列表,按最终时限排序,每次调度一个最终时限最早的进程得到CPU 。当新进程就绪时,系统检查其最终时限是否在当前运行的进程结束之前,如果是,则抢占当前进程。 由于是动态算法,最早最终优先调度的优点就是灵活,当进程数不超过负载时,资源分配更优,但也同样由于它的动态属性,进程的优先级都是在不断变化中的,所以也没有哪个进程是一定可以保证满足调度的,当进程数超过负载时,资源分配合理度会急速下降,所以不太稳定。

9. 进程调度算法

调度算指:根据系统资源配策略所规定资源配算
、先先服务短作业(进程)优先调度算
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队列队尾

阅读全文

与进程调度是通过某种算法相关的资料

热点内容
吃鸡手机国际服服务器超时怎么办 浏览:66
努比亚Z5无命令 浏览:640
展示网站云服务器 浏览:870
代码混淆器php 浏览:365
贝恩pdf 浏览:207
丙烯pdf 浏览:366
云服务器华硕 浏览:711
sublime3运行python 浏览:188
怎么把安卓视频传到苹果上面 浏览:81
手机拍鬼片用什么app 浏览:640
爬山虎app是干什么用的 浏览:505
有哪些写给程序员的歌 浏览:49
成都市命令 浏览:993
建立系列文件夹 浏览:983
苹果开机白屏带文件夹问号 浏览:733
体验服为什么服务器会关闭 浏览:41
酒店命令 浏览:750
中走丝线切割编程视频 浏览:80
衣服压缩袋手泵原理 浏览:714
通达信编程书籍 浏览:981