【Operating System Chapter 5:CPU Schedule】

目录

简介

1.First- Come, First-Served (FCFS) Scheduling

​2.Shortest-Job-First (SJF) Scheduling

          Determining Length of Next CPU Burst

3.Example of Shortest-remaining-time-first (最短剩余时间优先调度)

4.Priority Scheduling 

 5.适合交互式的调度: Round Robin (RR)

RR中时间片的选择

6.Multilevel Queue Scheduling(多级队列调度)

7.CPU调度的总结


简介

并发:一个 CPU 交替执行多个程序;可以极大地提高资源使用效率
CPU调度:
每当 CPU 空闲时,操作系统必须按照一定的策略从 就绪队列 当中选择一个进程来执行。
调度的对象:进程或线程。其方式与原则是一样的。
经常以进程来说明:
进程调度 <==> CPU 调度
补充:
就绪队列可以是先进先出队列,优先队列、树或简单的无序链表。
队列中的纪录通常为进程控制块( PCB )。
CPU 约束型 程序以计算为主, CPU 区间会较多,还会有少量长的 CPU 区间
I/O 约束型 程序以 I/O 为主,但配合 I/O 处理会有大量短的 CPU 区间
Dispatch latency ( 分派延迟) – time it takes for the dispatcher to stop one process and start another running
停止一个进程而启动另一个所要花的时间
分派程序调用“进程选择函数”完成调度
//让出CPU的具体实现

extern Queue ReadyQueue;
extern Queue DiskWaitQueue;
...
DiskWaitQueue.EnQueue(pCur);
Dispatch();
...
Dispatch()
{
   pNew = PickNext(ReadyQueue); 
   //该函数就是CPU调度,调度就是下一步该选择哪一个进程或线程来执行(分配CPU资源) 
   Switch(pCur,pNew);
}


//进程和线程都可能是调度单位,统称为任务

那么什么是好的调度(举个银行的例子)?

从银行的运转来看

希望柜员越忙越好:CPU效率高

希望接待的客户越多越好:吞吐率高

从客户的角度来看

尽快响应:响应时间(从发出请求到响应)短

尽快结束任务:周转时间(从任务进入到任务结束)短

I/O 约束型任务每次使用 CPU 的时间短,但是频率高,相应的优先级就得高,这样才能实现 CPU I/O 的并行操作。
CPU 约束型的任务指每次使用 CPU 的时间都比较长,切换次数少,这样的任务就优先级就相对低一些。
前台任务就属于 I/O 约束型任务,后台任务属于 CPU 约束型任务
CPU utilization – keep the CPU as busy as possible,real system: CPU 40%~90%
Throughput (吞吐量) – # of processes that complete their execution per time unitlong process: 1/hour, short process: 10/second
Waiting time ( 等待时间) – amount of time a process has been waiting in the ready queue  CPU 调度算法并不影响进程运行和执行 I O 的时间
Turnaround time ( 周转时间) – amount of time to execute a particular process from submission to completion, including waiting into memory, waiting in the ready queue, executing, and doing I/O
Response time ( 响应时间) – amount of time it takes from when a request was submitted until the first response is produced , not output  (for time-sharing environment)
周转时间 = 等待时间 + 执行时间
响应比 = 周转时间 / 执行时间

1.First- Come, First-Served (FCFS) Scheduling

先到先服务调度  调度的顺序就是任务到达就绪队列的顺序

采用FCFS策略的平均等待时间通常不是最小,且如果进程CPU区间时间变化很大,平均等待时间也会变化很大。

Convoy effect (护航效果 )- short process behind long process

护航效应:所有其他进程都等待一个大进程释放CPU

与可能允许较短进程先行相比,护航效应会导致CPU和设备的使用率变得很低。

特点:①非抢占,“公平”②短作业等待时间长③不适合交互系统

实例:

假定任务的到达顺序为: P1P2P3P4P5

任务CPU区间
P110
P229
P33
P47
P512

2.Shortest-Job-First (SJF) Scheduling

Associate with each process the length of its next CPU burst (CPU区间段)

实际上是最短下一个CPU区间的算法,因为调度检查进程的下一个CPU区间的长度,而不是其总长度。若俩进程具有相同的长度,使用FCFS调度来处理。

SJF是最佳的:对于给定的一组进程,SJF算法的平均等待时间最小

同样还是上面那个例子

SJF可以保证最小的平均等待时间 

Determining Length of Next CPU Burst

Can only estimate the length,Can be done by using the length of previous CPU bursts, using exponential averaging,nCommonly, α set to ½。

 

3.Example of Shortest-remaining-time-first (最短剩余时间优先调度)

抢占显然具有优点

4.Priority Scheduling 

实例1:I/O bound任务应获得更大的优先权,使得I/O尽量忙,并和CPU并行工作。

实例2:定义多个优先队列: 前台任务、后台任务。只有高优先级队列为空时才调度其他任务。

ProcessA  aarri Burst TimeTPriority

P1

103
P211
P324
P416
P552

 

Average waiting time = 0+1+6+16+18/ 5=8.2 ms

 5.适合交互式的调度: Round Robin (RR)

平均等待时间: (0+32+20+23+40)/5 = 23 

RR优点: 定时有响应,等待时间较短

RR缺点: 上下文切换次数较多

RR中时间片的选择

时间片太大:响应时间太长,如时间片500ms ´ 10任务,响应需要5秒。

时间片太小:吞吐量变小,周转时间变长。如时间片20ms,上下文切换5ms20%的切换代价。

折衷 : 时间片 10-100ms ,切换时间 0.1-1ms(1%)

6.Multilevel Queue Scheduling(多级队列调度)

通常在使用多级队列调度算法时,进程进入系统时被永久地分配到一个队列。例如,如果前台进程和后台进程分别有独立队列,进程并不从一个队列转移到另一个队列,这是因为进程并不改变前台或后台性质。这种设置的优点是低调度开销,缺点是不够灵活

主要思想 :
根据不同 CPU 区间的特点以区分进程。
如果进程使用过多 CPU 时间,那么它会被转移到更低优先级队列
在较低优先级队列中等待时间过长的进程被转移到更高优先级队列

7.CPU调度的总结

1.并发能提高效率 Þ 并发的核心是进程能让出CPU

2.进程让出CPU Þ 下一个进程使用CPU Þ 这个选择就是调度

3.进程、线程(内核级、用户级)都能调度 Þ 任务调度

4.调度任务分类: 交互式,批处理

5.调度时机分类: 抢占式、非抢占式

6.CPU调度算法: FCFS, SJF, Priority(批处理); RR(交互式

7.CPU调度算法: 多级队列, 多级反馈队列(混合)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值