操作系统教学中进程同步控制模型的设计 |
|
|
值为0,对m的PV操作分散在两个进程中,且先V后P。 图1(b)基本单向同步控制模型图 1.2 推导:基本双向同步模型 问题描述:多次生产消费,这是一个双向同步问题,生产者把产品生产出来,送入仓库,给消费者发信号;消费者得到信号后,到仓库取产品,给生产者发信号;循环往复。从生产到消费、再又从消费回到生产的状态变化如表3所示。 表3双向生产消费状态变化情况 双向同步推进顺序可用图2(a)表示: 图2(a)双向同步关系图 为实现双向同步,需要用product表示是否有产品,room表示是否有空间,PV操作来控制同步,状态变化如表4所示。 表4双向生产消费同步变化情况 从表4可以抽取出基本双向同步控制模型,如图2(b)。这个模型中,传送一个信号量m1(初值为0)和m2(初值为1),m2初值必须为1以确保反向的同步。 图2(b)基本双向同步控制模型图 2 案例应用 2.1 问题描述及分析 问题描述:桌上有一空盘,最多可容纳2个水果,但每次仅允许放入或者取出一个水果。爸爸专向盘中放苹果,妈妈专向盘中放桔子,两个儿子专等吃盘中的桔子,两个女儿专等吃盘中的苹果。用信号量和 PV操作实现爸爸、妈妈、女儿、儿子间的同步。 问题分析:这是生产—消费的一个变形,父亲和女儿之间有一对双向同步,母亲和儿子之间也有一对双向同步,盘子相当于一个大小为2的缓冲区;但是这两对双向同步不会同时出现,因为限定每次只放或取一,放或取的动作可以看作是临界资源,需要进行互斥;其同步关系用图3(a)表示: 图3(a) 吃水果同步关系图 2.2 构建同步关系模型 本同步问题中,需要传递3个信号量分别表示Or(盘是否有橘子)、a(盘中是否有苹果)、e(盘子是否空),初始值分别为Or = 0、a = 0、e = 2;其同步模型用图2(b)表示: 图3(b)吃水果同步控制模型图 2.3 同步控制算法的设计与实现
上一页 [1] [2] [3] [4] 下一页 |
|
|
|
上一个论文: 关于汉语翻译与汉语文化传播的分析 下一个论文: PC Relax还原 操作系统S/L大法 |
|