欢迎来到一句话经典语录网
我要投稿 投诉建议
当前位置:一句话经典语录 > 心得体会 > 进程调度算法c心得体会

进程调度算法c心得体会

时间:2014-06-17 08:30

进程调度算法

调度算法是根据系统源分配策略所规定的资源分配算法。

一、先服务和短作业(进程)优度算法 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队列的队尾。

什么是进程调度

常用的进程调度算法有哪些

试比较他们之间的性能。

什么是进程调度

进程调度,用户进程数进程调度一般都多于处理机数、这将导致它们互相争夺处理机。

另外,系统进程也同样需要使用处理机。

无论是在批处理系统还是分时系统中,用户进程数 进程调度 一般都多于处理机数、这将导致它们互相争夺处理机。

另外,系统进程也同样需要使用处理机。

这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行。

   进程调度的的分级 高级、中级和低级调度作业从提交开始直到完成,往往要经历下述三级调度: 高级调度:(High-Level Scheduling)又称为作业调度,它决定把后备作业调入内存运行; 低级调度:(Low-Level Scheduling)又称为进程调度,它决定把就绪队列的某进程获得CPU; 中级调度:(Intermediate-Level Scheduling)又称为在虚拟存储器中引入,在内、外存对换区进行进程对换。

先进先出算法 进程调度 算法总是把处理机分配给最先进入就绪队列的进程,一个进程一旦分得处理机,便一直执行下去,直到该进程完成或阻塞时,才释放处理机。

例如,有三个进程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规则排队,按一定的时间间隔把处理机分配给队列中的进程。

这样,就绪队列中所有进程均可获得一个时间片的处理机而运行。

多级队列方法:将系统中所有进程分成若干类,每类为一级。

多级反馈队列 多级反馈队列方式是在系统中设置多个就绪队列,并赋予各队列以不同的优先权

求进程调度算法

进程调度方式看怎么划分了,有划分成抢占式和非抢占式的,也有划分为静态优先级和动态优先级的。

具体算法例如有先来先服务调度算法、优先数调度算法、时间片轮转算法、分级调度算法 、最短作业时间优先(抢占式和非抢占式)、最高响应比调度算法。

求进程调度先来先服务算法,短进程优先算法完整c语言代码

这是主要算法:你可以参考一下public class PrivilegeProcess { public static void main(String[] args) { MyQueue myqueue = new MyQueue();\\\/\\\/声明队列 PCB[] pcb = {new PCB(001,8,1),new PCB(002,7,9),new PCB(003,3,8),new PCB(004,1,7),new PCB(005,7,4)}; PCB para = new PCB(); for(int i=0;i1){ totaltime-=runtime;\\\/\\\/在总时间大于1的时候,总时间=总时间-时间片 privilege--; System.out.println( processname : + name + remaintime : + totaltime + privilege : + privilege ); }else if(totaltime==1){ totaltime--;\\\/\\\/在总时间为1时,执行时间为1 privilege--; System.out.println( processname : + name + remaintime : + totaltime + privilege : + privilege ); }else{ isNotFinish = false;\\\/\\\/总时间为0,将isNotFinish标记置为false } if(isNotFinish==true){ mq.deQueue(); mq.enQueue(this); } }}

在进程调度算法中,对短进程不利的度算法是()

一般认为是A选项吧,加入先到的都是长进程,后面是短进程,这样对段进成就相当不利。

声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。联系xxxxxxxx.com

Copyright©2020 一句话经典语录 www.yiyyy.com 版权所有

友情链接

心理测试 图片大全 壁纸图片