ZKX's LAB

静态抢占式优先级调度算法是如何进行的? 优先级算法调度算法原理

2020-10-01知识21

目前常用的磁盘调度算法有哪几种?每种算法优先考虑的问题是什么? 先来先服务FCFS:公平,简单,每个进程的请求都能依次得到处理。没有对寻道优化,平均寻道时间长。最短时间优先调度算法SSTF:要求访问的磁道是当前磁头所在的磁道最近,每次寻道时间最短。可能导致一些请求无限期推延。电梯调度算法SCAN:不仅考虑当前磁道的距离,优先考虑在磁道前进方向的最短时间,排除磁头在盘面上的往复运动。电梯原理。N-SCAN:是SCAN的改良。磁头改变方向时,以到达请求服务的最短时间。对中间请求服务更有利。C-SCAN:磁头单项移动。消除N-SCAN对两端请求的不公平。

静态抢占式优先级调度算法是如何进行的? 优先级算法调度算法原理

优先级调度算法程序代码 FIFO的方法用下边的Queue改写一下。Queue.h/ifndef QUEUE_Hdefine QUEUE_Hnamespace MyLibrary{define MYLIBRARY_DEBUGMYLIBRARY_DEBUG 为测试而用ifdef MYLIBRARY_DEBUGincludeusing std:ostream;endiftype defifndef FALSEdefine FALSE falseendififndef TRUEdefine TRUE trueendiftypedef size_t size_type;typedef bool BOOL;声明template<;typename _Ty>;class Queue;ifdef MYLIBRARY_DEBUGtemplateostream&operator(ostream&,const Queue<;_Ty>;&);endifclass/templateclass Queue{友元声明ifdef MYLIBRARY_DEBUGfriend ostream&operator(ostream&,const Queue<;_Ty>;&);endifprivate:嵌套类定义class QueueItem{public:QueueItem(_Ty data):_prior(0),_next(0),_data(data){}public:QueueItem*_prior;前向指针QueueItem*_next;后向指针Ty_data;数据};private:数据集typename Queue<;_Ty>;:QueueItem*_head;头结点指针typename Queue<;_Ty>;:QueueItem*_tail;尾结点指针size_type_size;长度static const_Ty_temp;只做空数据public:构造析构集.inline Queue():_head(0),_tail(0),_size(0){}inline Queue(const Queue<;_Ty>;&。

静态抢占式优先级调度算法是如何进行的? 优先级算法调度算法原理

请问一下算作业调度算法时,要求按响应比高者优先算法是怎么算的啊,这个响应比是怎么求出来的 首先关于基本定义俺真的不想打字了,因此无耻的复制粘贴了。其次说一嘴,这东西计算机专业的真心必须会,否则OS有挂科的危险!高响应比优先调度算法的基本思想是把CPU分配给就绪队列中响应比最高的进程。高响应比优先调度算法既考虑作业的执行时间也考虑作业的等待时间,综合了先来先服务和最短作业优先两种算法的特点。该算法中的响应比是指作业等待时间与运行比值,响应比公式定义如下:响应比=(等待时间+要求服务时间)/要求服务时间,即RR=(w+s)/s=1+w/s,因此响应比一定是大于1的。如实例:某系统有3个作业,系统确定它们在全部到达后,再开始采用响应比高者优先的调度算法,则它们的调度顺序是什么?各自的周转时间是什么?作业号 提交时间 运行时间1 8.8 1.52 9.0 0.43 9.5 1.0如果都到达再算的话,等待时间=最后一个的提交时间-该作业到达的时刻1:9.5-8.8=0.72:9.5-9=0.53:0所以响应比为(等待时间+要求服务时间)\\要求服务时间=等待时间/要求服务时间+11:0.7/1.5+1=1.472:0.5/0.4+1=2.253:1所以2先运行,2从9.5开始运行到9.9结束;再以9.9时刻算响应比:1:(9.9-8.8)/1.5+1=1.733:(9.9-9.5)/1+1=1.4所以2执行完后1开始执行,从9.9执行到11.4。

静态抢占式优先级调度算法是如何进行的? 优先级算法调度算法原理

#优先级#进程调度

随机阅读

qrcode
访问手机版