排期
2019-06-09 10:09:42 39 举报
AI智能生成
登录查看完整内容
CPU排期相关策略
作者其他创作
大纲/内容
CPU排期策略
MLFQ基本规则
分为几个单独的任务队列,每个队列有各自的优先级
优先级必须动态分配,防止高优先级任务长期占用CPU资源
根据优先级决定任务执行顺序
若A优先级高于B,则执行任务A
若A优先级等于B,则按RR的方式执行
任务刚到达时,予以最高的优先级
假定每一个刚到达的任务是短任务,让其运行一段时间若其的确是短任务,则很快结束若其为长任务,则会被降低优先级
根据任务的运行情况决定优先级变化
若任务一直占用CPU表明其为CPU使用密集型任务应当降低优先级
若任务用尽了一个时间片却仍未停止则降低其优先级
关于时间片的长度
优先级高的队列,时间片较短优先级低的队列,时间片较长
若一个任务频繁切换I/O则认为是交互型程序应当保持其优先级不变
若任务在时间片用尽前放弃CPU则保持其优先级不变
带来两个问题
若队列中有过多交互型程序CPU将被一直占据长任务没有机会执行
若某交互程序故意在时间片结束前放弃CPU转而进行I/O则其优先级会一直保持从而独占CPU
给每个任务分配一定的时间,一旦用尽此时间,则无论其是否放弃CPU,都降低其优先级
即使某个任务故意在时间片之前放弃CPU以试图长期占据CPU资源,只要其用尽了所分配的时间,其优先级都会下降
每隔一段时间,重置所有任务的优先级为最高
无优先级重置机制,CPU被交互程序占据
优先级重置,长任务也有执行机会
情形六
所有任务运行时间未知
MLFQ
若A的优先级高于B,则执行A
若A和B优先级相同,则按RR的方式执行
对于新到达的任务,赋予其最高的优先级
一旦某个任务用尽了其分配的时间,则降低其优先级
每隔一段时间,重置所有任务优先级为最高
无法通过SJF和STCF来实现优化完成时间的目的
采用RR的方式能降低响应时间,但会拉高完成时间
情形五
所有任务运行时间已知
OVERLAP交替执行当一个任务进行输入输出时,CPU执行另一个任务
情形一
所有任务运行时间相同
所有任务同时到达
所有任务一旦开始运行,就不会停止,直到结束
所有任务仅使用CPU资源,无I/O行为
完成时间=任务完成时刻-任务到达时刻
FCFS先到先执行
由于所有任务执行时间相同,故平均完成时间不受影响
情形二
实际上,不同任务运行时间不同
SJF短任务优先
执行时间较短的任务优先执行,降低整体完成时间
情形三
若运行时间较长的任务占据CPU,即使后续任务到达,也无法执行
需要再释放一个假设
情形四
可以中断长任务的执行,转而执行短任务
STCF离完成时间较短的任务优先
若正在执行的任务A距离其完成的时间大于新到达任务B的执行时间,则中止A并执行B
响应时间=任务开始执行时刻-任务到达时刻
RR
尽快让每个任务都执行一段时间,从而缩短响应时间
但这样做会延迟完成时刻,从而拉高完成时间
采用FCFS,时间较长的任务延迟任务完成时刻,从而拉高平均完成时间
显然,程序需要进行I/O操作
若采用SJF和STCF,响应时间会变得很长
0 条评论
回复 删除
下一页