os-homework5
os-homework5
有五个进程 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
- 分别计算上述算法中各进程的周转时间和等待时间,以及平均周转时间
死锁产生的四个必要条件是什么
- 互斥条件:资源是独占的且排他使用,进程互斥使用资源,即任意时刻一个资源只能给一个进程使用,其他进程若申请一个资源,而该资源被另一进程占有时,则申请者等待直到资源被占有者释放。
- 不可剥夺条件:进程所获得的资源在未使用完毕之前,不被其他进程强行剥夺,而只能由获得该资源的进程资源释放。
- 请求和保持条件:进程每次申请它所需要的一部分资源,在申请新的资源的同时,继续占用已分配到的资源。
- 循环等待条件:在发生死锁时必然存在一个进程等待队列 {P1,P2,…,Pn}, 其中 P1 等待 P2 占有的资源,P2 等待 P3 占有的资源,…,Pn 等待 P1 占有的资源,形成一个进程等待环路,环路中每一个进程所占有的资源同时被另一个申请,也就是前一个进程占有后一个进程所深情地资源。
某系统中有 n 个进程和 m 台打印机,系统约定:打印机只能一台一台地申请、一台一台地释放,每个进程需要同时使用的打印机台数不超过 m。如果 n 个进程同时需要使用打印机的总数小于 m+n,试讨论,该系统可能发生死锁吗? 并简述理由
- 不可能,设 n 个进程同时需要使用 x 个打印机,1 <= x <= m, nx < m+n, 如果死锁,需要 n 个进程各取得 x-1 个打印机时,同时再需要最后一个时没有打印机了。即 m < n(x-1), 即 m+n < nx,与题意矛盾,所以不可能死锁
线程的基本概念是什么?引入线程的好处是什么?
- 线程是进程中的一个实体,是一个 CPU 调度和分派的单位,基本上不拥有资源,只有必不可少的少量资源,可以与其他同进程的线程共享进程拥有的所有资源
- 减少并发程序执行时所付出的时空开销,使得并发粒度更细、并发性更好,共享资源便捷
一个系统有 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。
- 需求: