【OS】进程调度算法

最近学习自考学到进程调度,其中的调度算法看着很复杂,细想又很简单,接下来简单介绍一下:


先来先服务调度算法(FCFS)


先来先服务算法理论定义我的理解
调度算法从就绪队列的队首选择最先到达就绪队列的进程,为该进程分配CPU排队,先到先得
性能分析适合长进程,不利于短进程,短进程等待时间相对于运行时间而言太长排队要做的事时间不宜太短,要不排那么长时间对不至于

短进程优先算法(SPF)


先来先服务算法理论定义我的理解
调度算法从就绪队列的队首选择估计运行时间最短的进程,讲处理机分配给它,使它立即执行并一直执行完成,或发生某事件而被阻塞放弃处理机时,再重新调度。同时做很多件事情的时候感觉哪件事用时短就先做哪个。
算法优点与FCFS算法相比,能有效降低进程的平均等待时间,提高系统的吞吐量反正这么些事怎么排都要5个小时做完,先做做的快的,少几件事等着了。
算法的缺陷1.对长进程不利 2.不能保证进程的及时处理,算法不考虑进程的紧迫程度 3.进程的长短根据用户估计,不一定真正做到短进程优先。1.需要做很长时间的事情只能放到最后了 2.没有考虑说不定时间长的事情着急完成呢 3.自己估计的哪件事做的快不快,不准。

优先权调度算法(PSL)


优先权调度算法理论定义我的理解
调度算法每个进程一个优先权,进程调度时,系统将CPU分配给就绪队列中优先权值最高的进程给每件事根据各种分析列个重要级别,每次做中间最重要的
类型非抢占式不管新来的事情重不重要先做完手中的工作再说
抢占式新来的事情比正在做的重要,手中的工作先放一放
问题:无穷堵塞低优先权进程无穷等待CPU新来的每一件事都比较重要,一开始不太重要的事一放再放也轮不到做了
解决方案:老化技术使低优先权进程在等待时间很长的情况下,优先权变高而获得CPU执行一件事情等的时间长了就把它提上日程。

今天就分享这么多,未完待续…

(1)进程的调度采用优先数调度算法。 (2)采用动态优先数法确定进程的优先级别。 (3)设计三个链队列,分别用来表示运行队列、就绪队列和完成队列。 (4)用户输入进程标识符以及进程所需的时间,申请空间存放进程 PCB 信息。 优先数调度算法为每个进程设一个优先数,它总是把处理机给就绪队列中具有最高优先权的进程,常用的算法有静态优先数法和动态优先数法。 动态优先数法,使进程的优先权随时间而改变。初始的进程优先数取决于进程运行所需要的时间,时间达,则优先数低。采取了将进程优先数定为用一个较大的数(50)减去进程运行所需要的时间。随着进程的运行对优先数进行调整,每次运行时都是从就绪队列中选取优先数最大的进程运行,所以将就绪队列按照优先数的大小从高到低排列,这样,每次取队头进程即可。 进程每执行一次,优先数减一个数(自定),CPU 时间数加 1,进程还需要的时间数减 1。如果进程所需要的时间为 0,说明进程运行完毕,将其状态变为完成状态“F”,将此 PCB 插入到完成队列中,若就绪队列不空,则将就绪队列中的第一个 PCB 变为运行状态。进程若没有完成,则将其优先数和就绪队列中第一个 PCB 的优先数作比较,如果小,则将其变为就绪态,插入到就绪队列中适当的位置,将就续队列中的第一个 PCB 变为运行态投入运行,重复上述过程,直到就绪队列为空,所有进程成为完成态为止。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值