操作系统(二)

处理器调度(CPU调度)

CPU调度:

按一定调度算法从就绪队列中选择一个进程,然后把CPU的使用权交给被选中的进程

CPU调度要解决的三个问题:
WHAT:按什么原则选择下一个要执行的进程 —— 调度算法
WHEN:何时进行选择 —— 调度时机
HOW:如何让被选中的进程上CPU执行 —— 调度过程(进程的上下文切换)

CPU调度的时机:
事件发生 -> 当前运行的进程暂停运行 -> 硬件机制响应后 -> 进入操作系统,处理相应的事件 ->结束处理后:某些进程的状态发生了变化,也可能又创建了一些新的进程 ->就绪队列改变了 ->需要进程根据预设的调度算法从就绪队列选一个进程

四个时机:
1. 进程正常终止或由于某种错误而终止
2. 新进程创建或一个等待进程变成就绪、
3. 当一个进程从运行态进入阻塞态
4. 当一个进程从运行态变为就绪态

进程调度程序从就绪队列选择了要运行的进程:
这个进程可以是刚刚被暂停执行的进程,也可能是另一个新的进程
如果是一个新的进程要进行进程切换

进程切换:是指一个进程让出处理器,由另一个进程占用处理器的过程。
进程切换主要包括两部分工作:
切换全局页目录以加载一个新的地址空间
切换内核栈和硬件上下文,其中硬件上下文包括了内核执行新进程需要的全部信息,如CPU相关寄存器

小例子:
进程 A下CPU,进程B上CPU
保存进程A的上下文环境(程序计数器,程序状态字,其他寄存器)
用新状态和其他相关信息更新进程A的PCB
把进程A移至合适的队列(就绪,阻塞..)
将进程B的状态设置为运行态
从进程B的PCB中恢复上下文(程序计数器,程序状态字,其他寄存器…)

上下文切换是有开销的:
直接开销:内核完成切换所用CPU时间
保存和恢复寄存器…
切换地址空间(相关指令比较昂贵)
间接开销:
高速缓存,缓冲区缓存,TLB失效

调度算法的衡量指标:
吞吐量:每单位时间完成的进程数目
周转时间:每个进程从提出请求到运行完成的时间
响应时间:从提出请求到第一次回应的时间
CPU利用率:CPU做有效工作的时间比例
等待时间:每个进程在就绪队列中等待的时间

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值