计算机 三道程序运行调度图,操作系统学习(三) —— CPU调度

第三部分 CPU调度

一、相关基本概念

引入多程序设计,目的是提高计算机资源利用率,尤其是CPU利用率(CPU utilization)。(前面所讲的多程序和多任务的目的就是让多个进程竞争使用资源,从而使CPU利用率提高。)

CPU密集 — I/O密集的循环

进程的执行,呈现出CPU运行和I/O等待的交替循环。

注意前面的知识:

CPU中有READY信号,当收到I/O送来的信号后才会进行读写操作。

I/O操作不消耗CPU,而是让CPU闲置了,浪费CPU,因为I/O设备相对于CPU来说速度很慢,CPU要花大部分时间来等待I/O处理数据。

二、CPU调度器

CPU调度器的使命

从内存中一堆准备就绪的进程中(就绪队列中的就绪进程),选取一个进程;

将CPU分配给该进程。

后者也可以由dispatcher完成。

65360b500ad9

CPU调度器的操作对象.png

由上图我们可以看见,通过CPU 调度器,计算机进程(PCB)有四个去向:

1)留在就绪队列

2)进入CPU

3)等待队列

4)I/O操作

CPU调度器的操作时机

调用CPU调度器的时机,通常发生在:

1)某一进程从执行状态转为等待状态

2)某一进程从执行状态转为就绪状态(图上应为双向箭头)

如果有一个进程进入就绪队列,且进程优先级高,则有可能该优先级高的进程把原先执行队列里的进程抢过来。

3)某一进程从等待状态转为就绪状态

如I/O操作完成以后,转回ready queue。

4)某一进程终止

进程上下文切换。

等等,不限于以上四种,只是举了四个例子(引发调度的时机可能有十几种)。

1,4属于“非抢占式(nonpreemptive)调度”,2,3属于“抢占式(preemptive)调度”。

非抢占式:

进程自愿交出CPU,引起新一轮的调度。

抢占式:

进程被迫交出CPU,引起新一轮的调度。

解释一下第三种情形:

本身等待到就绪状态是不需要CPU调度的,由图可知,做完I/O操作,进入ready queue即可。但现在如果有重要或紧迫的进程到达,那么当前进程必须为就绪状态。则强行将CPU调度从等待状态转为就绪状态,并且强行放弃处理现在的运行进程,将CPU立即分配给新到达的进程。故它是一种抢占式调度。

CPU调度器追求目标

CPU利用率(CPU utilization)。CPU的利用率就是非空闲进程占用时间的比例,即CPU执行非空闲进程的时间/ CPU总的执行时间。

吞吐率(Throughput) — 单位时间内完成执行的进程数

周转时间(Turnaround time) — 执行某一进程所耗用的CPU累积时间(进程进入就绪队列开始到拿到CPU执行结束为止的累积时间,其间有可能存在时间片到了或者高优先级抢占CPU的情况)

等待时间(Waiting time) — 某一进程等待在就绪队列里面的累积时间(不包括CPU执行时间)

响应时间(Response time) — 某一进程从发出调度请求,到其开始得到CPU调度器响应,其间所经历的时间。

优异的指标,当然是

M

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值