·根本方法:行为所需资源、行为与行为前后关系的图分析法
1.0顺序执行模型
·特点:(1)多进程之间的执行具有牵制性(2)每个进程执行内容不复杂,强调进程之间的执行顺序。
·分析方法:有向图分析;结点表示进程,有向线段表示执行顺序
·实现方法:(1)前V后P(2)每个有向线段代表一个资源,用来完成执行的先后顺序的制约
2.0生产者消费者类模型(ProducerCustomerModel)
·特点:(1)资源由生产者生产,消费者消费(2)生产者的生成行为受消费者和消费行为依托于资源存在着相互受制的关系(3)生产者的数量可以不唯一且消费者的数量也可以不唯一(4)缓冲区——互斥访问(5)进程的生产行为和消费行为可以需要多个资源分步完成(例如:和尚喝水题)
2.1 PCM.多生产者消费者问题
·例题:
2.2PCM.多资源生产消费行为问题
·例题:和尚喝水
某寺庙有小和尚、老和尚若干,有一水缸,由小和尚提水入缸供老和尚饮用。水缸可容10桶水,水取自同一井中。水井径窄,每次只能容一个桶取水。水桶总数为3个。每次入缸取水仅为1桶水,且不可同时进行。 试给出有关从缸取水、入水的算法描述。
2.3PCM.资源选择问题
·例题:吸烟者问题
·方法:消费者的顺序消费行为由整型的同余数标志决定,生产者改变同余数值,消费者不可更改。
2.4PCM.进程并行问题
·方法:计数标记特殊对象,特殊对象行为改变资源的共享状态
·例题:过桥问题(简单)---->读者写者(难)
有桥如图所示。车流方向如箭头所示。回答如下问题:
假设该桥上不允许两车交会,但允许同方向多个车一次通过(即桥上可有多个同方向行驶的车)。试用信号灯的P、V操作实现桥上交通管理。
2.5PCM.缓冲区保留问题
·例题:生产自行车问题
设自行车生产线上有一只箱子,其中有N个位置(N≥3),每个位置可存放一个车架或一个车轮;又设有3 个工人,其活动分别如下,试分别用信号量与PV操作实现三个工人的合作,要求解中不含死锁。
3.1PCM.多任务问题
·原理:1.0&2.0&2.1
·方法:二维时序分析图
·例题:输入打印问题
如图所示,三个合作进程P1、P2、P3,它们都需要通过同一设备输入各自的数据a、b、c,该输入设备必须互斥地使用,而且其第一个数据必须由P1进程读取,第二个数据必须由P2进程读取,第三个数据则必须由P3进程读取。然后,三个进程分别对输入数据进行下列计算(如图-2)。最后,P1进程通过所连接的打印机将计算结果x、y、z的值打印出来。请用信号量实现它们的同步。