导航:首页 > 源码编译 > fcfs算法程序

fcfs算法程序

发布时间:2022-07-19 03:58:40

A. 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)=11执行时间=9 所以P2周转时间11+9=20 P3:等待时间=5(被P1抢占了嘛)执行时间=6 所以P3周转时间 Turnaround Time:5+6=11 这样平均周转时间等于(5+20+11)/3=36/3=12 单位时间 有问题email:[email protected]

B. 画出采用先来先服务算法(FCFS)、短作业优先算法(SJF)和高响应比优先算法(HRN)的作业调度程序流程图

先来先服务算法,就是来了就排队,然后逐个处理.....流程太简单了,不知道怎么画,所以就随手画了一个

C. 使用fcfs,sjf和rr调度算法,并判断哪个算法的平均等待时

先来先服务FCFS和短作业优先 和短作业优先SJF进程调度算法 先来先服务 和短作业优先 进程调度算法 1、实验目的 通过这次实验,加深对进程概念的理解,进一步掌握进程状态的 转变、进程调度的策略及对系统性能的评价方法。 2、需求分析 (1) 输入的形式和输入值的范围 输入值:进程个数Num 依次输入Num个进程的到达时间 依次输入Num个进程的服务时间 范围:0<Num<=100 范围: 范围: 输入要使用的算法(1-FCFS,2-SJF) 范围:1或者2 输出的形式( 表示变量) (2) 输

D. 如何理解先来先服务fcfs和短作业优先sjf进程调度算法

先来先服务FCFS和短作业优先 和短作业优先SJF进程调度算法 先来先服务 和短作业优先 进程调度算法 1、实验目的 通过这次实验,加深对进程概念的理解,进一步掌握进程状态的 转变、进程调度的策略及对系统性能的评价方法。 2、需求分析 (1) 输入的形式和输入值的范围 输入值:进程个数Num 依次输入Num个进程的到达时间 依次输入Num个进程的服务时间 范围:0<Num<=100 范围: 范围: 输入要使用的算法(1-FCFS,2-SJF) 范围:1或者2 输出的形式( 表示变量) (2) 输出的形式(X表示变量) 时刻X:进程X开始运行。 其完成时间:X 周转时间:X 带权周转时 间:X …(省略(Num-1)个) 平均周转时间:X 平均带权周转时间:X (3) 程序所能达到的功能 输入进程个数Num,每个进程到达时间ArrivalTime[i],服务时间 ServiceTime[i]。采用先来先服务FCFS或者短作业优先SJF进程调度算 法进行调度,计算每个进程的完成时间、周转时间和带权周转时间, 并且统计Num个进程的平均周转时间和平均带权周转时间。 3、概要设计 说明本程序中用到的所有抽象数据类型的定义、 主程序的流程以 及各程序模块之间的层次(调用)关系。 4、详细设计 5、调试分析 (1)调试过程中遇到的问题以及解决方法, (1)调试过程中遇到的问题以及解决方法,设计与实现的回顾讨 调试过程中遇到的问题以及解决方法 论和分析 1 ○ 开始的时候没有判断进程是否到达, 导致短进程优先算法运 开始的时候没有判断进程是否到达, 行结果错误,后来加上了判断语句后就解决了改问题。 行结果错误,后来加上了判断语句后就解决了改问题。 2 ○ 基本完成的设计所要实现的功能, 总的来说, FCFS编写容易, 基本完成的设计所要实现的功能, 总的来说, FCFS编写容易, 编写容易 SJF 需要先找到已经到达的进程, 需要先找到已经到达的进程, 再从已经到达的进程里找到进程服务时 间最短的进程,再进行计算。 间最短的进程,再进行计算。 (2)算 (2)算法的改进设想 改进: 改进:即使用户输入的进程到达时间没有先后顺序也能准确 的计算出结果。(就是再加个循环,判断各个进程的到达时间先后, 的计算出结果。(就是再加个循环,判断各个进程的到达时间先后, 。(就是再加个循环 组成一个有序的序列) 组成一个有序的序列) (3)经验和体会 (3)经验和体会 通过本次实验, 通过本次实验,深入理解了先来先服务和短进程优先进程调 度算法的思想,培养了自己的动手能力,通过实践加深了记忆。 度算法的思想,培养了自己的动手能力,通过实践加深了记忆。

E. 简述FCFS分裂算法

调度算法:
FCFS算法
按照作业提交或进程变为就绪状态的先后次序,分派CPU; 当前作业或进程占用CPU,直到执行完或阻塞,才出让CPU(非抢占方式)。 在作业或进程唤醒后(如I/O完成),并不立即恢复执行,通常等到当前作业或进程出让CPU。最简单的算法。

2. FCFS的特点

比较有利于长作业,而不利于短作业。 有利于CPU繁忙的作业,而不利于I/O繁忙的作业。

F. 以下五个作业,fcfs sjf hrrn三种调度算法平均周转时间,高响应比怎么算

作业调度算法 .

  1. 先来先服务(FCFS, First Come First Serve)是最简单的调度算法,按先后顺序进行调度。

定义:

按照作业提交或进程变为就绪状态的先后次序,分派CPU;


当前作业或进程占用CPU,直到执行完或阻塞,才出让CPU(非抢占方式)。


在作业或进程唤醒后(如I/O完成),并不立即恢复执行,通常等到当前作业或进程出让CPU。


适用场景:

比较有利于长作业,而不利于短作业。因为长作业会长时间占据处理机。


有利于CPU繁忙的作业,而不利于I/O繁忙的作业。


算法实现原理图:


2. 轮转法(Round Robin)

轮转法是让每个进程在就绪队列中的等待时间与享受服务的时间成正比例。


定义:

将系统中所有的就绪进程按照FCFS原则,排成一个队列。


每次调度时将CPU分派给队首进程,让其执行一个时间片。时间片的长度从几个ms到几百ms。


在一个时间片结束时,发生时钟中断。


调度程序据此暂停当前进程的执行,将其送到就绪队列的末尾,并通过上下文切换执行当前的队首进程。


进程可以未使用完一个时间片,就出让CPU(如阻塞)。


时间片长度的确定:

时间片长度变化的影响


过长->退化为FCFS算法,进程在一个时间片内都执行完,响应时间长。


过短->用户的一次请求需要多个时间片才能处理完,上下文切换次数增加,响应时间长。


对响应时间的要求:T(响应时间)=N(进程数目)*q(时间片)


就绪进程的数目:数目越多,时间片越小


系统的处理能力:应当使用户输入通常在一个时间片内能处理完,否则使响应时间,平均周转时间和平均带权周转时间延长。


算法实现原理图:


3. 多级反馈队列算法(Round Robin with Multiple Feedback)

多级反馈队列算法是轮转算法和优先级算法的综合和发展。


定义:

设置多个就绪队列,分别赋予不同的优先级,如逐级降低,队列1的优先级最高。每个队列执行时间片的长度也不同,规定优先级越低则时间片越长,如逐级加倍。


新进程进入内存后,先投入队列1的末尾,按FCFS算法调度;若按队列1一个时间片未能执行完,则降低投入到队列2的末尾,同样按FCFS算法调度;如此下去,降低到最后的队列,则按“时间片轮转”算法调度直到完成。


仅当较高优先级的队列为空,才调度较低优先级的队列中的进程执行。如果进程执行时有新进程进入较高优先级的队列,则抢先执行新进程,并把被抢先的进程投入原队列的末尾。


优点:

为提高系统吞吐量和缩短平均周转时间而照顾短进程。


为获得较好的I/O设备利用率和缩短响应时间而照顾I/O型进程。


不必估计进程的执行时间,动态调节


几点说明:

I/O型进程:让其进入最高优先级队列,以及时响应I/O交互。通常执行一个小时间片,要求可处理完一次I/O请求的数据,然后转入到阻塞队列。


计算型进程:每次都执行完时间片,进入更低级队列。最终采用最大时间片来执行,减少调度次数。


I/O次数不多,而主要是CPU处理的进程。在I/O完成后,放回优先I/O请求时离开的队列,以免每次都回到最高优先级队列后再逐次下降。


为适应一个进程在不同时间段的运行特点,I/O完成时,提高优先级;时间片用完时,降低优先级。


算法实现原理图:


4. 优先级法(Priority Scheling)

优先级算法是多级队列算法的改进,平衡各进程对响应时间的要求。适用于作业调度和进程调度,可分成抢先式和非抢先式。


静态优先级:

作业调度中的静态优先级大多按以下原则确定:


由用户自己根据作业的紧急程度输入一个适当的优先级。


由系统或操作员根据作业类型指定优先级。


系统根据作业要求资源情况确定优先级。


进程的静态优先级的确定原则:


按进程的类型给予不同的优先级。


将作业的情态优先级作为它所属进程的优先级。


动态优先级:

进程的动态优先级一般根据以下原则确定:


根据进程占用有CPU时间的长短来决定。


根据就绪进程等待CPU的时间长短来决定。


5.短作业优先法(SJF, Shortest Job First)

短作业优先又称为“短进程优先”SPN(Shortest Process Next);这是对FCFS算法的改进,其目标是减少平均周转时间。


定义:

对预计执行时间短的作业(进程)优先分派处理机。通常后来的短作业不抢先正在执行的作业。


SJF的特点:

(1) 优点:


比FCFS改善平均周转时间和平均带权周转时间,缩短作业的等待时间;


提高系统的吞吐量;


(2) 缺点:


对长作业非常不利,可能长时间得不到执行;


未能依据作业的紧迫程度来划分执行的优先级;


难以准确估计作业(进程)的执行时间,从而影响调度性能。


SJF的变型:

“最短剩余时间优先”SRT(Shortest Remaining Time)(允许比当前进程剩余时间更短的进程来抢占)


“最高响应比优先”HRRN(Highest Response Ratio Next)(响应比R = (等待时间 + 要求执行时间) / 要求执行时间,是FCFS和SJF的折衷)


6. 最高响应比优先法(HRN,Highest Response_ratio Next)

最高响应比优先法是对FCFS方式和SJF方式的一种综合平衡。FCFS方式只考虑每个作业的等待时间而未考虑执行时间的长短,而SJF方式只考虑执行时间而未考虑等待时间的长短。因此,这两种调度算法在某些极端情况下会带来某些不便。HRN调度策略同时考虑每个作业的等待时间长短和估计需要的执行时间长短,从中选出响应比最高的作业投入执行。


响应比R定义如下: R =(W+T)/T = 1+W/T


其中T为该作业估计需要的执行时间,W为作业在后备状态队列中的等待时间。每当要进行作业调度时,系统计算每个作业的响应比,选择其中R最大者投入执行。这样,即使是长作业,随着它等待时间的增加,W / T也就随着增加,也就有机会获得调度执行。这种算法是介于FCFS和SJF之间的一种折中算法。由于长作业也有机会投入运行,在同一时间内处理的作业数显然要少于SJF法,从而采用HRN方式时其吞吐量将小于采用SJF 法时的吞吐量。另外,由于每次调度前要计算响应比,系统开销也要相应增加。

G. FSFS ,SJF ,HRN算法实例

1、设在单道批处理系统中有四道作业,它们提交的时刻及运行时间如下:
作业号 提交时刻(h) 运行时间(h)
1 8.0 1.0
2 8.5 0.5
3 9.0 0.2
4 9.1 0.1
 请分别给出在算法FCFS、SJF和HRN中这组作业的调度顺序、平周转时间和平均带权周转时间。
【解答】
FCFS算法调度顺序:1,2,3,4,作业运行情况如下表
作业号 开始时间 完成时间 周转时间 带权周转时间
1 8.0 9.0 1.0 1.0
2 9.0 9.5 1.0 2.0
3 9.5 9.7 0.7 3.5
4 9.7 9.8 0.7 7.0
平均周转时间T=(1.0+1.0+0.7+0.7)/4=0.85
平均带权周转时间W=(1.0+2.0+3.5+7.0)/4=3.375
SJF算法调度顺序:1,3,4,2,作业运行情况如下表
作业号 开始时间 完成时间 周转时间 带权周转时间
1 8.0 9.0 1.0 1.0
2 9.3 9.8 1.3 2.6
3 9.0 9.2 0.2 1.0
4 9.2 9.3 0.2 2.0
平均周转时间T=(1.0+1.3+0.2+0.2)/4=0.675
平均带权周转时间W=(1.0+2.6+1.0+2.0)/4=1.65
 HRN算法调度顺序:1,2,4,3,作业运行情况如下表
作业号 开始时间 完成时间 周转时间 带权周转时间
1 8.0 9.0 1.0 1.0
2 9.0 9.5 1.0 2.0
3 9.6 9.8 0.8 4.0
4 9.5 9.6 0.5 5.0
平均周转时间T=(1.0+1.0+0.8+0.5)/4=0.825
平均带权周转时间W=(1.0+2.0+4.0+5.0)/4=3.0

H. 先来先服务(FCFS)调度算法 工作原理 优缺点

进程按到来的时间先后顺序依次被CPU处理。
优点:就是俗话说的“先来后到”。
缺点:如果先来的进程需要很长的处理时间,而后来的进程却很重要的。需要抢占CUP的时候,此调度算法就适用了。

I. 作业调度算法一道题的解析——FCFS算法

10.1时,①装入主存,主存:15k,85k空闲,计算:①,等待队列:空
10.3时,②装入主存,主存:15k,60k,25k空闲,计算:①,等待队列:②
10.4时,①完成计算,主存:15k空闲,60k,25k空闲,计算:②,等待队列:空
10.5时,③要装入主存,但由于内存不足,等待
10.6时,④装入主存,主存:10k,5k空闲,60k,25k空闲,计算:②,等待队列:④
10.7时,⑤装入主存,主存:10k,5k空闲,60k,20k,5k空闲,计算:②,等待队列:④,⑤
10.9时,②完成计算,主存:10k,65k空闲,20k,5k空闲,计算:④,等待队列:⑤
10.9时,③由于存在超过50k的空间,装入主存,主存:10k,50k,15k空闲,20k,5k空闲
计算:④,等待:⑤,③(此时按照先来先服务调度,⑤为先来的作业)
10.13时,④完成计算,主存:10k空闲,50k,15k空闲,20k,5k空闲,计算:⑤,等待队列:③
10.15时,⑤完成计算,主存:15k空闲,60k,25k空闲,计算:②,等待队列:空
10.19时,③完成计算,主存:100k空闲,计算:空,等待队列:空
因此,顺序为①②④⑤③

阅读全文

与fcfs算法程序相关的资料

热点内容
喷油螺杆制冷压缩机 浏览:569
python员工信息登记表 浏览:369
高中美术pdf 浏览:153
java实现排列 浏览:505
javavector的用法 浏览:974
osi实现加密的三层 浏览:225
大众宝来原厂中控如何安装app 浏览:906
linux内核根文件系统 浏览:235
3d的命令面板不见了 浏览:520
武汉理工大学服务器ip地址 浏览:141
亚马逊云服务器登录 浏览:517
安卓手机如何进行文件处理 浏览:65
mysql执行系统命令 浏览:923
php支持curlhttps 浏览:136
新预算法责任 浏览:437
服务器如何处理5万人同时在线 浏览:244
哈夫曼编码数据压缩 浏览:419
锁定服务器是什么意思 浏览:379
场景检测算法 浏览:612
解压手机软件触屏 浏览:343