zoukankan      html  css  js  c++  java
  • 操作系统学习(九)

    操作系统学习(九)

    进程的基本概念

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

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

    这是小睿的博客,如果需要转载,请标注出处啦~ヾ(≧▽≦*)o谢谢。
  • 相关阅读:
    SDL_mixer 播放wav
    SDL_mixer 播放mp3
    [转]音频基础知识及编码原理
    [转]QT父子与QT对象delete
    [转]QT中嵌入SDL
    [转]PCM文件格式
    [转]ffmpeg库音频解码示例
    C# 向PivotItem中添加子控件
    初识 Windows Phone 7
    C#语言使用Windows phone 中的数据数据绑定
  • 原文地址:https://www.cnblogs.com/Yunrui-blogs/p/12888578.html
Copyright © 2011-2022 走看看