操作系统学习(九)
操作系统学习(九)
进程的基本概念
- 调度的类型(层次关系)
- 高级调度
作业调度,J->M (多)
- 低级调度
进程调度,P->CPU (单);分为抢占和非抢占,抢占包括
时间片
,优先权
,短内优先
- 中级调度
对换,P->M
调度准测(CPU高)
- 周转时间短(批处理)
周转时间T=完成时刻-提交时刻=等待时间+运行时间
提交 | 开始 | 完成 | |
---|---|---|---|
进程A | 0 | 5 | 10 |
等待用了5, 运行用了5;响应时间是5,周转时间是10,这是
非抢占
的方式
提交 | 开始 | 中断 | 开始 | 完成 | |
---|---|---|---|---|---|
进程A' | 0 | 2 | 5 | 8 | 10 |
等待2,运行3,等待3,运行2;这是
抢占
的方式
带权周转时间W = T / 运行时间
平均带权周转时间 W平均=(ΣWi) / n
调度算法
- 先来先服务FCFS
进程名 | A | B | C | D | E |
---|---|---|---|---|---|
到达时间 | 0 | 1 | 2 | 3 | 4 |
服务时间 | 4 | 3 | 5 | 2 | 4 |
开始时刻 | 0 | 4 | 7 | 12 | 14 |
完成时刻 | 4 | 7 | 12 | 14 | 18 |
T | 4 | 6 | 10 | 11 | 14 |
W | 1 | 2 | 2 | 5.5 | 3.8 |
T平均=9 完成时刻 - 到达时刻
W平均=2.8 T / 服务时间
- 短作业(进程)优先(SJ(P)F)
也就是服务时间短的优先运行
进程名 | A | B | C | D | E |
---|---|---|---|---|---|
到达时间 | 0 | 1 | 2 | 3 | 4 |
服务时间 | 4 | 3 | 5 | 2 | 4 |
开始时刻 | 0 | 6 | 13 | 4 | 9 |
完成时刻 | 4 | 9 | 18 | 6 | 13 |
T | 4 | 8 | 16 | 3 | 9 |
W | 1 | 2.67 | 3.2 | 1.5 | 2.25 |
T平均=8 完成时刻 - 到达时刻
W平均=2.01 T / 服务时间
- 时间片轮转(RR)
q=?
进程名 | A | B | C | D | E |
---|---|---|---|---|---|
到达时间 | 0 | 1 | 2 | 3 | 4 |
服务时间 | 4 | 3 | 5 | 2 | 4 |
q=1
A B C D E A B C D E A B C E A C E C
q=2
AA BB CC DD EE AA BC CE EC
- 优先级
-
- 静态优先级
进程名 | A | B | C | D |
---|---|---|---|---|
到达时间 | 0 | 0 | 2 | 3 |
服务时间 | 3 | 2 | 4 | 2 |
优先级 | 2 | 4 | 1 | 3 |
优先级1是最高的,那么,运行的序列有:
- FCFS : ABCD
- SJF(SPF) : BADC
- 优先级 : ACDB
-
- 动态优先级
-
- 非抢占
-
- 抢占
-
- 响应比高者优先
-
-
响应比=(等待时间+运行时间)/运行时间
-
-
多级队列
-
多级反馈队列(UNIX)
死锁的基本概念
定义:
多个进程因为竞争资源而产生的一种僵死状态,若无外力推动,这些进程将无法继续执行
产生的原因
-
- 资源不足
-
- 进程推进顺序非法
必要条件
- 互斥使用
- 请求并保持(不释放)
- 非剥夺条件(非抢占)
- 环路等待
处理方法
- 预防
- 避免
- 检测
- 解除
死锁的预防和避免
预防
破坏必要条件:
- 互斥
- 静态分配
- 抢占
- 尽次分配
避免死锁
- 安全状态(安全序列)
引出银行家算法
MAX | ALLOCATION | NEED | AVAILABLE | |
---|---|---|---|---|
P0 | (7,5,3) | (0,1,0) | (7,4,3) | (3,3,2) |
P1 | (3,2,2) | (2,0,0) | (1,2,2) | |
P2 | (9,0,2) | (3,0,2) | (6,0,0) | |
P3 | (2,2,2) | (2,1,1) | (0,1,1) | |
P4 | (4,3,3) | (0,0,2) | (4,3,1) |
->
WORK | NEED | ALLOCATION | W+A | FINISH | |
---|---|---|---|---|---|
P0 | (3,3,2) | (1,2,2) | (2,0,0) | (5,3,2) | √ |
P1 | (5,3,2) | (0,1,1) | (2,1,1) | (7,4,3) | √ |
P2 | (7,4,3) | (4,3,1) | (0,0,2) | (7,4,5) | √ |
P3 | (7,5,5) | (7,4,3) | (0,1,0) | (7,5,5) | √ |
P4 | (7,5,5) | (6,0,0) | (3,0,2) | (10,5,7) | √ |
死锁的检测与解除
检测:
- 资源分配图
- 定理:
-
- 查非独立,非阻塞节点,去掉所有边
- 直到去掉所有边
解除
- 抢占资源
- 撤销进程
如转载,请标明出处
这是小睿的博客,如果需要转载,请标注出处啦~ヾ(≧▽≦*)o谢谢。