操作系统学习(九)

操作系统学习(九)

进程的基本概念

  • 调度的类型(层次关系)
  • 高级调度

作业调度,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)

死锁的检测与解除

检测:

  • 资源分配图
  • 定理:
    • 查非独立,非阻塞节点,去掉所有边
  • 直到去掉所有边

解除

  • 抢占资源
  • 撤销进程

如转载,请标明出处

https://www.cnblogs.com/Yunrui-blogs/p/12888578.html

posted @ 2020-05-14 14:46  野生的Lemon柠檬  阅读(194)  评论(0编辑  收藏  举报

呱呱呱呱呱🐸