操作系统习题(1)

博客探讨了操作系统中可能出现的死锁问题,通过信号量s1, s2, s3的例子展示了死锁条件和避免策略。同时,还涉及银行家算法在资源分配中的应用,分析了不同调度算法如FCFS、SPF(非抢占)和SPF(抢占)对进程调度的影响,以及在批处理环境下的作业调度策略和周转时间计算。" 78822050,7388900,STM32红外遥控系统设计与实现,"['stm32', '红外遥控', '红外接收', '红外发送']
摘要由CSDN通过智能技术生成

1.设有三个进程P1,P1,P3,各按如下所示顺序执行程序代码:

进程P1             进程P2            进程P3

¯ ¯ ¯

P(s1)     P(s3) P(s2)

P(s2)     P(s1) P(s3)

… …   …

V(s1)     V(s3) V(s2)

V(s2)     V(s1) V(s3)

¯ ¯ ¯

其中s1,s2,s3是信号量,且初值均为1.

在执行时能否产生死锁?如果可能产生死锁,请说明在什么情况下产生死锁?并给出一个防止死锁产生的修改办法。

参考答案:

可能产生死锁。

当进程P1执行P(s1),进程P2执行P(s3),进程P3执行P(s2)后,三个资源(即信号量s1,s2,s3)被三个进程分别占用,接下来任何一个进程都无法得到所申请的资源,于是都无限地循环等待,造成死锁。

一个防止死锁产生的办法是:进程申请信号量时,按序申请,如图: 

进程P1             进程P2            进程P3

¯ ¯ ¯

P(s1)     P(s1) P(s2)

P(s2)     P(s3) P(s3)

┉ ┉   ┉

V(s1)     V(s1) V(s2)

V(s2)     V(s3) V(s3)

¯ ¯ ¯

这里是按s1,s2,s3顺序申请信号量,也可按相反顺序申请,即s3,s2,s1

另外,也可以采用资源预分配策略(同时申请两个信号量)防止死锁发生。

2..设系统中有三种类型的资源(A,B,C)和五个进程(P1,P2,P3,P4,P5),A资源的数量为17B资源的数量为5C资源的数量为20.T0时刻系统状态如表1所示。系统采用银行家算法来避免死锁。


① T0时刻是否为安全状态?若是,请给出安全序列。

② 在T0时刻,若进程P2请求资源(0,3,4),能否实现资源分配,为什么?

③ 在②的基础上,若进程P4请求资源(2,0,1),能否实现资源分配,为什么?

④ 在③的基础上,若进程P1请求资源(0,2,0),能否实现资源分配,为什么?  

进程

最大资源需求量

已分配资源数量

系统剩余资源数量

A    B     C

A    B     C

A    B     C

P1

P2

P3

P4

P5

5   5   9

5   3   6

4   0  11

4   2   5

4   2   4

2   1   2

4   0   2

4   0   5

2   0   4

3   1   4

2   3   3

                                            表1

解答:(1)A(17)、B(5)、C(20)      Work=(2,3,3)

 进程

Work

剩余数

Allocation


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值