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