首页 > 编程知识 正文

多变过程pv图分析例题,pv制作教程

时间:2023-05-06 03:23:38 阅读:150787 作者:419

五个经典视点操作问题(附答案)

三个进程之间的同步

视点操作经典习题

视点操作题型整理

生产者和消费者生产者消费者问题

当只有一个生产者和消费者时,以及当只有一个缓冲区时

要考虑生产者和消费者两个过程的互斥,还有生产者和消费者过程执行动作的优先顺序。

当只有一个生产者和一个消费者时,有n个缓冲区

当有k个生产者和m个消费者时,有缓冲区

当有k个生产者和m个消费者时,有n个缓冲区

必须考虑生产者之间的互斥、消费者之间的互斥。

一个箱子里,混着同等数量的黑白围棋棋子。 目前,自动分选系统划分黑子、asjdjj,分选系统有两个流程P1、P2,其中P1分选asjdjj; 选择P2黑子。

注意:

决定每一个进程一个拾取,如果一个进程正在拾取,则不允许另一个进程拾取。

当一个过程选择一个人时,必须让另一个过程去栋。

尝试写出两个进程P1和P2可以同时正确执行的程序。

分析:这是一个有序进行的过程,是同步关系。 需要设置两个信号量s1、s2来协调他们的活动。

设s1=1; s2=0;

void white () (while ) ) true ) ) wait ) S1;//选择asjdjsignal (s2); //向机器发送应该选择黑子的消息}}void black () (while ) true ) ) wait ) S2 ); //拾取黑子signal (S1 ); //向机器发送消息说应该选择asjdjj )的参观室,共有100个座位。 读者进入时必须先登记一种登记表。 此表为每个座位(包括座位号和读者姓名)列出一个条目。 读者离开时应当注销登记内容。 试着用wait和signal原语来说明读者的过程同步问题吧。

semaphore empty=100; 记录//空位semaphore mutex=1注册和取消注册为互斥访问操作void reader () (while ) ) wait ) empty ); wait (最大; 注册//signal(mutex )//readwait(mutex );//注销//signal(mutex )的signal(empty ); 和尚打水

和尚打水的感想:首先,要明白有几个流程班,正题一定是mldzc和魅力之星。 然后,了解每个进程类是只有一个进程还是多个进程。 正题是一定有多个mldzc和多个迷人的星星。

mldzc把水举起来喂给有魅力的星球。 坛子里可以装10桶水,类似于生产者-消费者的问题。

井很窄,只能一个人使用。 表示一次只有一个mldzc在打水。

在mldzc这个过程中设定初始值1的信号量。

色星从水箱打水,mldzc向水箱灌水是排他性的事件

mldzc,在有魅力的星球过程中必须设定初始值1的信号量。

桶的数量只有3个,mldzc和魅力星球的过程数加起来最多只有3个运转。 mldzc,在有魅力的星球过程中必须设定初始值3的信号量。

思考

)只在mldzc这个过程中设定初始值1的信号量。 (同种过程设定信号量) ) )。

) mldzc,在迷人的星球过程中设定初始值1的信号量。 (按进程设定信号量)

) mldzc,在迷人的星球过程中设定初始值3的信号量。 按类进程设置信号的大小为n,表示按类进程的数量最多为n个。)

这三个信号量对过程的互斥作用。

读者-写作者问题

请用信号量解决以下“过独木桥”问题。 同一个方向的行人可以连续过桥,如果有人在一个方向过桥,另一个方向的行人必须等待。 一个方向没有人过桥时,另一个方向的行人可以过桥。

独木桥的两个方向分别标记为a和b; 用整形变量countA和countB分别表示在a、b方向已经在独木桥的人数,初始值为0; 然后,设定3个初始值为1的排他信号量。 SA用于实现对countA的独占访问,SB用于实现对countB的独占访问,mutex用于实现双向行人对独木桥的独占使用。 具体记述如下

Var SA,SB,mutex : semaphore :=1,1,1; CountA,countb : integer :=0,0: beginparbeginprocessa 3360 begin wait (sa; if(counta=0) thenwait ) mutex; countA:=countA 1; signal(sa; 过独木桥; wait(sa; countA:=countA-1; if(counta=0) thensignal ) mutex; signa(sa; endprocessb:Beginwait(sb; if(countb=0) thenwait ) mutex; countB:=countB 1; signal(sb; 过独木桥; wit(sb ); countB:=countB-1; if(countb=0) thensignal ) mutex; signa(sb; endparendend理发师问题

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。