OS第五次理论作业

  1. 有五个进程 P1、P2、P3、P4、P5,它们同时依次进入就绪队列,它们的优先数和需要的处理器时间如下表

    进程处理器时间优先级(数小优先级高)
    P1103
    P211
    P323
    P414
    P552
    • 忽略进行调度等所花费的时间,回答下列问题:

    • 写出采用 “先来先服务”、“短作业(进程)优先”、“非抢占式的优先数” 和 “轮转法” 等调度算法,进程执行的次序。(其中轮转法的时间片为 2)

      • 先来先服务: P1,P2,P3,P4,P5
      • 短作业优先: P2,P4,P3,P5,P1
      • 非抢占式的优先数: P2,P5,P1,P3,P4
      • 轮转法: P1,P2,P3,P4,P5,P1,P5,P1,P5,P1
    • 分别计算上述算法中各进程的周转时间和等待时间,以及平均周转时间

      • 先来先服务

        进程周转时间等待时间执行时间
        P110010
        P211101
        P313112
        P414131
        P519145
        • 平均周转时间:$(10+11+13+14+19)/5=13.4$
      • 短作业优先

        进程周转时间等待时间执行时间
        P2101
        P4211
        P3422
        P5945
        P119910
        • 平均周转时间:$(1+2+4+9+19)/5=7$
      • 非抢占式的优先数

        进程周转时间等待时间执行时间
        P2101
        P5615
        P116610
        P318162
        P419181
        • 平均周转时间:$(1+6+16+18+19)/5=12$​
      • 时间片轮转

        进程周转时间等待时间执行时间
        P119910
        P2321
        P3532
        P4651
        P515105
        • 平均周转时间:$(19+3+5+6+15)/5=9.6$​
  2. 死锁产生的四个必要条件是什么?

    • 互斥条件:指进程对所分配到的资源进行排他性使用,即在一段时间内某资源只能有一个进程占有
    • 保持和请求条件:已经获得资源的线程可以请求新的资源
    • 不剥夺条件:指进程已获得的资源,在未使用完之前不能被强制剥夺,只能在使用完时由自己释放
    • 环路等待条件:指在发生死锁时,必然存在两个或多个进程组成的环形链,每个进程都在等待环形链中下一个节点占用的资源
  3. 某系统中有n个进程和m台打印机,系统约定:打印机只能一台一台地申请、一台一台地释 放,每个进程需要同时使用的打印机台数不超过m。如果n个进程同时需要使用打印机的总 数小于m+n,试讨论,该系统可能发生死锁吗?并简述理由。

    • 该系统不可能发生死锁
    • 设n个进程中每个进程同时需要使用x个打印机,$1<=x<=m,nx<m+n$​
    • 若发生死锁,需要n个进程各取得x-1个打印机时,同时再需要最后一个打印机时没有打印机了,即$m < n(x-1)$,即$m+n<nx$矛盾
    • 故不可能发生死锁
  4. 线程的基本概念是什么?引入线程的好处是什么?

    • 线程是进程中的一个实体,是CPU调度的基本单位,是可执行单元,只包含少量资源
    • 将资源与计算分离,提高并发效率
  5. 假设具有5个进程的进程集合$P={P0,P1,P2,P3,P4}$​,系统中有三类资源A,B,C,假设在某时刻有如下状态

    AllocationMaxAvailable
    ABCABCABC
    P0003004140
    P1100175
    P2135235
    P3002064
    P4001065
    • 根据上表,当前系统是否处于安全状态

      • 使用安全性算法进行判断(工作向量Work),补充work和need列

        进程workneedallocationwork + allocationfinish
        ABCABCABCABC
        P2140100135275true
        P0275001003278true
        P1278075100378true
        P33780620023710true
        P437100640013611true
      • 故当前系统处于安全状态

    • 若系统中的可利用资源Available为(0,6,2),系统是否安全?若系统共处在安全状态,请给出安全序列;若处在非安全状态,简要说明原因。

      • 进程workneedallocationwork + allocationfinish
        ABCABCABCABC
        P3062064002064true
        P4064065001065true
        P0065001003068true
        068
      • 不能给出安全序列,故系统不安全