操作系统第四章作业

本文详细介绍了操作系统中临界资源、临界区的概念,以及访问临界资源的四条原则。此外,阐述了P、V操作的定义及如何用它们实现进程间的互斥,强调了P、V操作的成对使用和位置要求。同时,讨论了避免哲学家进餐问题死锁的解决方案,并概括了高级进程通信的三种方式:共享存储器、消息传递和管道通信。最后,通过实例说明了如何使用P、V操作解决汽车过桥和进程RMP的同步问题。
摘要由CSDN通过智能技术生成

什么是临界资源?什么是临界区?对临界资源的访问有哪些原则?
临界资源:一次仅允许一个进程使用的共享资源。

临界区:每个进程中访问临界资源的那段程序。

访问原则:

空闲让进,如果有若干进程要求进入空闲的临界区,一次仅允许一个进程进入。

忙则等待,任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其他所有试图进入临界区的进程必须等待。

有限等待,进入临界区的进程要在有限时间内退出,以便其他进程能及时进入自己的临界区。

让权等待,如果进程不能进入自己的临界区,则应让出CPU,避免进程出现“忙等”现象。

请给出P、V操作的定义。如何用P、V操作实现进程间的互斥?
P的原语操作的动作是:

sem减1

若sem减1后仍大于或等于零,则进程继续执行

若sem减1后小于零,则该进程被阻塞后进入与该信号相对应的队列中,然后转进程调度

V原语操作的动作是:

sem加1

若相加结果大于零,则进程继续执行

若想加结果小于或等于零,则该信号的等待队列中唤醒一等待进程,然后再返回原进程继续执行或转进程调度

由于用于互斥的信号量sem与所有的并发进程有关,所以称之为公有信号量。公有信号量的值反映了公有资源的数量。只要把临区置于P(sem)和V(sem)之间,即可实现进程间的互斥,sem的初始值通常设置成1。

使用P,V操作实现进程互斥时应该注意的是:

每个进程中,用户实现互斥的P,V操作必须成对出现。先做P操作,进入临界区,后做V操作,出临界区。若有多个分支,要认真检查其成对性。

P,V操作应分别紧靠临界区的头尾部,临界区的代码应尽可能短,不能出现有死循环。

互斥信号量的初值一般为1。

请用P、V操作写出一个不会出现死锁的哲学家进餐问题的解?
至多只允许四个哲学家共同进餐,以保证至少有一个哲学家能进餐,最终会释放出它所使用过的两支筷子,从而可使更多的哲学家进餐。以下将以room作为信号量,只允许四个则学家同时进入餐厅就餐。这样就能保证至少有一个哲学家可以就餐而申请进入餐厅的哲学家进入room的等待队列。根据FIFO原则总会进入到餐厅就餐,因此不会出现饿死和死锁的现象。

semaphore chopstick [5]={
   1,1,1,1,1
  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值