进程调度
进程概念
- 行为规则为程序,程序在cpu执行的活动称为进程。
- 进程是独立可调度的活动。
- 进程是 可并发、独立功能的程序关于某数据集合的一次执行过程。
- 进程是操作系统资源分配和调度的基本单位。
进程特征
- 动态
- 独立
- 并发
- 异步
- 结构性
进程与程序区别
- 动态、静态
- 程序长期保存、进程有生命周期
- 进程是独立运行基本单位、程序为静态文本
- 进程程序无一一调度关系
- 程序是指令有序集合、进程有几段组成
进程与线程区别
进程 | 线程 |
---|---|
资源拥有者、调度基本单位 | 进程的运行线 |
- 用户级线程:库来支持,CPU不可是被
- 内核级线程
- 混合方式
进程状态
三态
- 运行:等待事件就到阻塞状态、超时到就绪状态。
- 就绪:调度出运行状态。
- 阻塞:等待事件完成转为就绪状态
五态
- 新建
- 终止
进程控制块PCB
目标
- 避免死锁
- 避免饥饿
- 公平
- 吞吐量
- …
概念
非抢占式
进程主动放弃CPU
抢占式调度
强迫运行进程让出cpu
周转时间
t=完成时间-提交时间
ts(提交时间)
tc(完成时间)
意义:进程在系统中停留时间长短。
平均周转时间
t=(t1+t2+…)/n
意义:越短,意味着进程在系统中停留越短,说明系统吞吐量大,资源利用率高。
带权周转时间
w=t / tr
tr:进程运行时间
t:周转时间
意义:相对停留时间
典型调度算法
先来先服务fcfs
描述
看先后挑选作业
特点
- 容易
- 只考虑等候时间,不考虑运行时间长短。
- 非抢占式
- 不利于短作业
短作业优先调度(SJF)
描述
考虑运行时
特点
- 忽视等待时间
- 容易出现饥饿现象
- 非抢占式
非抢占/抢占式式优先级调度算法
描述
确定静态优先数:
基于进程所需资源多少、运行时间长短和进程类型。
确定动态优先数:
基于CPU时长、I/O操作等待消耗。
进程运行完,挑选下一个最高优先级。
响应比高者优点
描述
响应时间和运行时间比值。
响应时间=等待时间+运行时间。
特点
- 有利于短作业。
- 有利于等候时间长的作业。
时间片轮转调度(RR)
描述
先进先出原则排队。时间片运行完后加入队尾。
特点
- 公平
- 交互性
- 时间片太大->fcfs
- 抢占式
多级队列调度
描述
- 各个队列优先级不同
- 同队列用自己的调度算法
- 队列间用优先级调度
最短剩余时间优先算法(srtf)
描述
sjf算法改为抢占式调度算法。
如果新作业需要CPU时间比当前执行作业少,强行赶走当前执行作业。