os-homework5

os-homework5

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

    进程 处理器时间 优先级(数小优先级高)
    P1 10 3
    P2 1 1
    P3 2 3
    P4 1 4
    P5 5 2
    • 忽略进行调度等所花费的时间,回答下列问题:
    • 写出采用“先来先服务”、“短作业(进程)优先”、“非抢占式的优先数”和“轮转法”等调度算法,进程执行的次序。(其中轮转法的时间片为 2)
      • 先来先服务: P1, P2, P3, P4, P5
      • 短作业优先: P2, P4, P3, P5, P1
      • 非抢占式的优先数: P2, P5, P1, P3, P4
      • 轮转法: P1, P2, P3, P4, P5, P1, P3, P4
    • 分别计算上述算法中各进程的周转时间和等待时间,以及平均周转时间
  2. 死锁产生的四个必要条件是什么

    • 互斥条件:资源是独占的且排他使用,进程互斥使用资源,即任意时刻一个资源只能给一个进程使用,其他进程若申请一个资源,而该资源被另一进程占有时,则申请者等待直到资源被占有者释放。
    • 不可剥夺条件:进程所获得的资源在未使用完毕之前,不被其他进程强行剥夺,而只能由获得该资源的进程资源释放。
    • 请求和保持条件:进程每次申请它所需要的一部分资源,在申请新的资源的同时,继续占用已分配到的资源。
    • 循环等待条件:在发生死锁时必然存在一个进程等待队列 {P1,P2,…,Pn}, 其中 P1 等待 P2 占有的资源,P2 等待 P3 占有的资源,…,Pn 等待 P1 占有的资源,形成一个进程等待环路,环路中每一个进程所占有的资源同时被另一个申请,也就是前一个进程占有后一个进程所深情地资源。
  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. 一个系统有 4 个进程和 5 个可分配资源,当前分配和最大需求如下

已分配资源 最大需求量 可用资源
进程 A 10211 11213
进程 B 20110 22210
进程 C 11010 21310
进程 D 11110 11221
  • 若保持该状态是安全状态,那么 x 的最小值是多少
    • 需求:
      • A: 1002
      • B: 2100
      • C: 200
      • D: 111
    • x = 0 时都不可满足,x = 1 时可满足 D,完成后可用资源可用资源向量为 11222,这时候进程 A 可以分配资源执行,当 A 结束时,可用资源向量为 21433。进程 C 可以被满足,当 C 执行结束后,可用资源向量为 32443。最后进程 B 可满足。所以 x 的最小值为 1。