OS——进程并发控制(五大经典问题信号量机制描述)

目录

一、经典问题信号量机制描述

1、任意两个进程可以并发的条件(Bernstein条件)

2、临界区管理原则

3、信号量的P、V操作

(1)P、V操作

(2)P、V操作的原则

(3)用信号量解决进程间互斥问题

4、 生产者---消费者问题(解决访问缓冲区问题)

(1)问题描述

(2)信号量的设置

5、哲学家就餐问题

(1)问题描述

 (2)解决思路

 6、读者和写者问题(共享文件/存储区)

(1)问题描述

(2)问题分析

(3)信号量的设置 

 7、理发师问题(调度的问题模拟)

(1)问题描述

(2)信号量的设置

8、苹果橘子问题

(1)问题描述

(2)信号量的设置

一、经典问题信号量机制描述

1、任意两个进程可以并发的条件(Bernstein条件)

 其中Ij、Oi分别表示进程t的输入变量或输出变量

2、临界区管理原则

  • §有空让进:如果有一个进程要求进入空闲的临界区,便允许该进程进入。
  • §无空等待:任何时候,处于临界区内的进程不可多于一个。如已有进程进入自己的临界区,则其它所有试图进入临界区的进程必须等待。
  • §多中选一:有多个进程同时申请进入临界区,只能选择其中一个进入。
  • §有限等待:进入临界区的进程要在尽量短的时间内退出,以便其它进程能及时进入临界区。
  • §让权等待:如果进程不能进入临界区,则应让出CPU,避免进程出现“忙等”现象。

3、信号量的P、V操作

(1)P、V操作

(2)P、V操作的原则

  • P、V操作必须成对出现,有一个P操作就一定有一个V操作:
  • 用于互斥时,P、V操作必须处于同一个进程。
  • 用于同步时,则同步进程之间的P、V操作成对。
  • 同时使用同步和互斥时,同步P操作在前,互斥P操作在后。

(3)用信号量解决进程间互斥问题

semaphore mutex.value=1;
cobegin  process pi 
  begin 
  …
  P(mutex); 
  临界区
  V(mutex); 
  … 
  end;
coend;

4、 生产者---消费者问题(解决访问缓冲区问题)

(1)问题描述

一组生产者进程和一组消费者进程共享一个初始为空、大小为n的缓冲区,只有缓冲区为满时,生产者才把消息放入缓冲区,否则必须等待;只有缓冲区不为空时,消费者从中取出消息,否则必须等待。由于缓冲区是临界资源,它只允许一个生产者放入消息,或一个消费者从中取出消息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sweep-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值