操作系统-进程的调度算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
操作系统-进程的调度算法
操作系统 - 进程的调度算法
先到先服务(FCFS)调度算法 : 从就绪队列中选择⼀个最先进⼊该队列的进程为之分配资源,使它⽴即执⾏并⼀直执⾏到完成或发⽣某事件⽽被阻塞放弃占⽤ CPU 时再重新调度。
短作业优先(SJF)的调度算法 : 从就绪队列中选出⼀个估计运⾏时间最短的进程为之分配资源,使它⽴即执⾏并⼀直执⾏到完成或发⽣某事件⽽被阻塞放弃占⽤ CPU 时再重新调度。
时间⽚轮转调度算法 : 时间⽚轮转调度是⼀种最古⽼,最简单,最公平且使⽤最⼴的算法,⼜称 RR(Round robin)调度。
每个进程被分配⼀个时间段,称作它的时间⽚,即该进程允许运⾏的时间。
多级反馈队列调度算法:前⾯介绍的⼏种进程调度的算法都有⼀定的局限性。
如短进程优先的调度算法,仅照顾了短进程⽽忽略了长进程。
多级反馈队列调度算法既能使⾼优先级的作业得到响应⼜能使短作业(进程)迅速完成。
,因⽽它是⽬前被公认的⼀种较好的进程调度算法,UNIX 操作系统采取的便是这种调度算法。
原理:1、设有N个队列(Q1,Q2....QN),其中各个队列对于的是不⼀样的,也就是说位于各个队列中的作业(进程)的优先级也是不⼀样的。
⼀般来说,优先级Priority(Q1) > Priority(Q2) > ... > Priority(QN)。
怎么讲,位于Q1中的任何⼀个作业(进程)都要⽐Q2中的任何⼀个作业(进程)相对于CPU的优先级要⾼(也就是说,Q1中的作业⼀定要⽐Q2中的作业先被),依次类推其它的队列。
2、对于优先级最低的队列来说,⾥⾯是遵循法。
也就是说,位于队列QN中有M个作业,它们的运⾏时间是通过QN这个队列所设定的来确定的;对于其他队列,遵循的是先来先服务算法,每⼀进程分配⼀定的时间⽚,若时间⽚运⾏完时进程未结束,则进⼊下⼀优先级队列的末尾。
3、各个队列的时间⽚是⼀样的吗?不⼀样,这就是该算法设计的精妙之处。
各个队列的时间⽚是随着优先级的增加⽽减少的,也就是说,优先级越⾼的队列中它的时间⽚就越短。
同时,为了便于那些超⼤作业的完成,最后⼀个队列QN(优先级最低的队列)的时间⽚⼀般很⼤(不需要考虑这个问题)。
优先级调度:为每个流程分配优先级,⾸先执⾏具有最⾼优先级的进程,依此类推。
具有相同优先级的进程以 FCFS ⽅式执⾏。
可以根据内存要求,时间要求或任何其他资源要求来确定优先级。