操作系统(八)CPU调度 短剩余时间 吞吐量 轮循 实时调度 多处理器调度 (清华 向勇 陈渝版)

本文探讨了操作系统中CPU调度的重要性和各种算法,包括上下文切换、调度原则、调度算法如FCFS、SPN/SRT、轮循、多级队列等。还涉及实时调度和多处理器调度的问题,以及解决优先级反转的策略。
摘要由CSDN通过智能技术生成

前篇在此 操作系统清华向勇陈渝版笔记(七) 进程与线程 PCB TCB 进程挂起 用户线程 内核线程 轻量级进程 僵尸队列



不太好用的目录:
8-1 算法背景
8-2 调度原则
8-3 调度算法
8-4 实时调度
8-5 多处理器调度
8-6 优先级反转

8-1 算法背景
上下文切换:切换CPU的当前任务,从一个进程/线程到另一个,保存当前在PCB/TCB中的执行上下文,读取下一个的上下文
CPU调度:从就绪队列中挑选一个进程/线程作为CPU将要运行的下一个线程/进程
调度程序:挑选进程/线程的内核函数(通过一切调度策略)使得效率最高,满足用户需求

在进程/线程的生命周期中的什么时候进行调度?
从一个状态变为另一个状态,特别是和运行(running)相关的状态。
内核运行调度程序的条件:进程从运行状态切换到等待状态or终结了(done)
Non-preemptive transaction
不可抢占调度,调度必须等待事件/进程结束,早期OS。
现在多为可以抢占的进程,OS决定在何时打断进程,调度程序在中断被响应后执行,当前进程从运行切换到就绪,或者一个进程从等待切换到就绪,可以被换出。

针对的是用户态的进程。
进程在内核中通过系统调用执行,因为系统调用返回时是到发起这个调用的进程继续执行,所以内核中不会切换,抢占。只要进程在系统调用时不存在从运行态到阻塞态的变化,OS可以确保返回正常。
如果在内核中也允许这种抢占,系统调用返回时不是原来的进程而是另一个优先级更高的进程,就是内核中的抢占。

早期是完全不可抢占,后来用户态进程允许抢占,现在内核态进程也可以抢占。

8-2 调度原则
这里写图片描述
CPU的占用率是波状,CPU大量运算是高峰,而读写I/O时是平稳的低值。每个调度决定都是关于下一个CPU突发时将哪个工作交给CPU,在时间分片下,线程可能在结束当前CPU突发前被迫放弃CPU。
程序在CPU突发和I/O中交替,CPU占用率高说明是在充分地使用CPU。

选择调度方法的评价指标:
CPU使用率:CPU处于忙状态的时间百分比
吞吐量:单位时间内完成的进程数量
周转时间:一个进程从初始化到结束包括(所有等待时间)所花费的时间,周转时间=等待时间+服务时间
等待时间:进程在就绪队列中的总时间,进程从就绪态到运行态的时间。
响应时间&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值