石头:2229 - 371 x
P。苏伦德拉Varma 计算机科学与工程系NRI理工学院的维杰亚瓦达,印度安得拉邦 |
通讯作者:P。苏伦德拉Varma,电子邮件:(电子邮件保护) |
相关文章Pubmed,谷歌学者 |
访问更多的相关文章全球研究计算机科学杂志》上
轮循(RR)执行最优分时系统中,因为每个过程都将等量的静态时间量。但是仅仅RR算法的有效性取决于时间量的选择。我已经做了一个全面的RR算法和SRBRR算法的研究和分析。我提出了一个改进的版本SRBRR(最短剩余破裂Round Robin)通过把处理机分配给流程最短剩余破裂在循环赛的方式使用最好的时间量。时间量子计算值和最高的帮助下破裂。我的实验分析表明,ISRBRR执行优于RR算法和SRBRR减少上下文切换的数量,平均等待时间和平均周转时间。
关键字 |
操作系统、调度算法、轮循,上下文切换,等待时间,周转时间。 |
介绍 |
一个过程是一个计算机程序的一个实例被执行。它包括程序计数器的当前值,寄存器,和变量。过程和程序之间的细微差别的程序是一组指令,而过程是活动的。等待的过程分配给处理器在一个叫就绪队列的队列。的时间进程CPU被称为破裂时间。到达时间是一个进程的时间到达就绪队列。流程的间隔的时间提交的时间完成的周转时间。等待时间的时间是一个过程已经在就绪队列中等待。CPU开关的次数从一个过程到另一个称为上下文切换。最优调度算法将最小等待时间,最低周转时间和最小数量的上下文切换。 |
预赛 |
基本的调度算法: |
先到先得(先): |
在该算法中,选择是一个过程,过程首先请求处理器。这是印刷电路板的过程在就绪队列的头部。相反它的简单性,其性能可能会差相对于其它算法。先会导致进程和短暂的处理器等待很长时间。如果一个过程与长处理器破裂处理器,所有其他人将等待它释放和就绪队列将非常感谢。这就是所谓的车队的效果。 |
最短工作优先(SJF): |
在这个策略调度程序安排进程就绪队列中的破裂时间,这过程较低的破裂时间计划。如果两个过程有相同的破裂时间和到达时间,然后先过程跟踪。 |
最短剩余时间优先(SRTF): |
这是一样SJF emption之前,小修改。调度工作系统需要考虑剩下的破裂时间的工作目前由CPU执行也随着破裂时间的工作就绪队列中。 |
优先级调度算法: |
它提供了每个进程的优先级并选择优先级最高的就绪队列的过程。优先级调度算法可以无限期离开一些低优先级的进程就绪队列。如果负载很高的系统,它是一个伟大的概率有更高的优先级进程抢占处理器。这就是所谓的饥饿问题。饥饿的问题,一个解决方案可能是逐渐增加的优先级进程在系统中停留很长时间。 |
轮循调度算法: |
轮循(RR)是最古老的,最简单,最美丽和最广泛使用的调度算法,特别是对于分时系统而设计的。这里的每个过程都有同等的优先考虑,给出量子之后进程被抢占。操作系统使用RRS,需要从就绪队列的第一个进程,设置一个定时器中断后一次量子,处理器的过程。如果这个过程有一个量子处理器破裂时间小于时间,然后主动释放处理器,通过终止或发行一个I / O请求。操作系统然后继续就绪队列中的下一个过程。另一方面,如果这个过程有一个处理器破裂时间大于量子计时器就会响一次量子到期后,它中断(先发制人)当前进程并将其PCB就绪队列的末尾。 |
任何CPU调度算法依赖于以下标准。它们是: |
处理器利用率:处理器的繁忙时间的比例的总时间的流逝过程完成。我们想保持处理器尽可能忙碌。 |
处理器利用率=(处理器争取时间)/(处理器繁忙时间+处理器空闲时间) |
吞吐量:工作的测量单位时间间隔。 |
吞吐量=(完成的进程数量)/(时间单位) |
c。周转时间(乙):等待时间之和进入就绪队列,执行时间和I / O时间。 |
答= t(流程完成)- t(流程提交) |
d。等待时间(wt):在就绪队列时间。处理机调度算法只影响在就绪队列中等待的时间。所以,只考虑等待时间而不是周转时间通常是足够的。 |
e。反应时间(rt):需要的时间开始响应一个请求。这一标准是重要的互动系统。 |
rt = t(第一反应)- t(提交请求) |
我们通常想处理器利用率和吞吐量最大化,最小化答,wt,和rt,然而,有时可能需要根据其他组合的过程。 |
相关工作 |
在过去的几年里不同的方法被用来提高轮循调度的性能如自适应轮循调度使用最短破裂方法基于智能时间片[1],Multi-Dynamic时间量子轮循(MDTQRR) [5]。Min-Max轮循(MMRR)[2],自动调节时间量子轮循(萨尔)[10],动态量子重新调整轮循(DQRRR)[11],平均最大轮询调度算法(AMRR) [8]。本文还一直在努力修改SRBRR为了给更好的周转时间,平均等待时间和减少上下文切换。 |
算法 |
该算法工作如下: |
所有的过程。在就绪队列是按升序排序。 |
b。而(就绪队列!= NULL) |
TQ =装天花板(sqrt(中位数*最高破裂时间)) |
c。将TQ操作分配给进程 |
π- > TQ操作 |
d。如果(我< n)然后去第3步 |
e。如果到达一个新进程, |
更新计数器n和步骤1 |
而结束 |
f。平均等待时间、平均周转时间和数量的计算上下文切换。 |
g。结束 |
流程图: |
实验与结果 |
假设: |
所有实验都假定在单处理器环境中被执行,所有的过程是相互独立的。属性破裂时间和优先级之前提交的过程。所有进程CPU绑定。没有过程是I / O绑定。流程与相同的到达时间计划。 |
结果:插图 |
我: |
让我们假设五个过程,随着破裂时间(P1 = 13, P2 = 35 P 3 = 46, P4 = 63, p5 = 97)如表所示。 |
现在,按照算法时间量子计算如下 |
TQ =装天花板(sqrt(中位数*最高破裂时间)) |
TQ =装天花板(sqrt (46 * 97)) = 67 |
案例二: |
让我们假设五个过程到达时间= 0,减少破裂时间(P1 = 86, P2 = 53, P 3 = 32, P4 = 21, p5 = 9)如表所示 |
现在,TQ可以计算如下: |
TQ =装天花板(sqrt(中位数*最高破裂时间)) |
TQ =装天花板(sqrt(32 * 86)) = 53岁 |
Case-III: |
让我们假设五个过程到达时间= 0,用随机破裂时间(P1 = 54, P2 = 99, 3 = 5 P, P 4 = 27日p5 = 32)如表所示 |
实现: |
该算法使用C语言及其代码实现如下: |
源代码 |
# include < stdio . h > |
# include < conio.h > |
# include < math.h > |
int圣[10]; |
int get_tq (int [], int年代) |
{ |
int i, j, maxbt、tmp hbt,中位数; |
浮动k, l, m; |
(我= 0;< s;我+ +) |
{ |
(j = i + 1; <年代;j + +) |
{ |
if (b[我]> [j]) |
仿真和屏幕截图 |
为了模拟涡轮使用c++源代码。这里有一些仿真过程的屏幕截图。 |
结论和未来的工作 |
从上面的比较可以得出结论,该算法性能优于静态RR算法和SRBRR算法的平均等待时间、平均周转时间和数量的上下文切换。在未来的工作中,流程在不同的到达时间可以被认为是该算法。 |
引用 |
|