第05章CPU调度20121104ch5CPU调度(1684KB).pptVIP

  • 1
  • 0
  • 约7.35千字
  • 约 36页
  • 2018-04-09 发布于广东
  • 举报
(5)混合多种调度算法 ? 多级队列调度 按照一定的规则建立多个进程队列 不同的队列有固定的优先级(高优先级有抢占权) 不同的队列可以给不同的时间片和采用不同的调度方法 交互式任务 批处理任务 系统任务 最高优先级 最低优先级 if(!IsEmpty(KernelQ)){ next=Pri(); return;} if(!IsEmpty(ResponseQ)){ next=RR(); return;} if(!IsEmpty(BatchQ)){ next=SJF(); return;} ... 存在问题1:没法区分I/O bound和CPU bound。 存在问题2:也存在一定程度的“饥饿”现象 (6)更成熟的多级队列调度 ? 多级反馈队列 任务可以在队列之间移动,更细致的区分任务 可以根据“享用”CPU时间多少来移动队列,阻止“饥饿” 最通用的调度算法,多数OS都使用该方法或其变形,如UNIX、Windows等。 系统任务队列2 用户任务(时间片为8) 系统任务队列1 用户任务(时间片为16) 用户任务(FCFS) 优先权 可近似SJF,可使I/O bound停留在高优先级… 来看一种实际的调度算法? Linux调度算法概述 采用优先权的、基于信用度的、可抢占的RR调度 每个进程有一个信用度counter 调度时选择信用度最大的进程 每次定时器中断,运行进程信用度减1 进程信用

文档评论(0)

1亿VIP精品文档

相关文档