进程同步算法补充作业

发布 2022-09-09 14:42:28 阅读 8360

1. 设有两个优先级相同的进程p1与p2,令信号量s1、s2的初值为0,已知z=2,试问p1、p2并发运行后x=?,y=?,z=?

进程p1:y=1进程p2: x=1;

y=y+2x=x+1;

signal(s1wait(s1);

z=y+1x=x+y;

wait(s2signal(s2);

y=z+yz=z+x;

解:1 x=5,y=12,z=9 ②x=5,y=7,z=9 ③ x=5,y=7,z=4

2. 桌上有一只盘子,最多可以容纳两个水果,每次放入或取出一个水果。爸爸专向盘子中放苹果,妈妈专向盘子中放桔子,两个儿子专等吃盘子中的桔子,两个女儿专等吃盘子中的苹果。请用wait、signal操作来实现爸爸、妈妈、儿子、女儿之间的同步与互斥关系。

解:var mutex,s,a,o:semaphore:=1,2,0,0;

beginparbegin

father:begin

repeat

wait(s);

wait(mutex);

向盘中放苹果;

signal(mutex)

signal(a);

until false;

end;mother:begin

repeat

wait(s);

wait(mutex);

向盘中放桔子;

signal(mutex)

signal(o);

until false;

end;son:begin

repeat

wait(0);

wait(mutex);

取盘中桔子;

signal(mutex)

signal(s);

吃桔子;until false;

end;daughten:begin

repeat

wait(a);

wait(mutex);

取盘中苹果;

signal(mutex)

signal(s);

吃苹果;until false;

end;parend;

end.3. 某银行人民币储蓄业务由若干个柜员负责。每个顾客进入银行后先取一个号,并且等着叫号,当一个柜员空闲下来时,就叫下一个号,持该号的顾客被服务。

试用wait、signal操作正确编写柜台人员进程和顾客进程的同步算法。

解:var mutex,counter:semaphore:=1,0;

beginparbegin

customer:

begin取号码;

wait(mutex);

进入队列排队等候服务;

signal(mutex);

signal(counter);

end;servers:

beginrepeat

wait(counter);

wait(mutex);

从队列中取下一个号码;

signal(mutex);

为该号码持有者服务;

until false

end;parend;

end.4. 从甲地到乙地之间有一条弯曲的小路,其中从s到t一段路每次只允许一辆自行车通过,但中间有一个小的安全岛m(同时允许两辆自行车停留),可供两辆自行车已从两端进入小路情况下错车使用,试设计一个算法使来往的自行车均可顺利通过。

解:var s,t,sk,lt:semaphore:=1,1,1,1;

beginparbegin

sk_lt:begin

repeat

wait(s);

wait(sk);

通过sk路段,进入安全岛m;

signal(sk);

wait(lt);

通过lt路段;

signal(lt);

wait(s);

until false;

end;tl_ks:begin

repeat

wait(t);

wait(lt);

通过lt路段,进入安全岛m;

signal(l)t;

wait(sk);

通过sk路段;

signal(sk);

wait(t);

until false;

end;parend;

end.

进程同步补充作业

1 设有两个优先级相同的进程p1与p2,令信号量s1 s2的初值为0,已知z 2,试问p1 p2并发运行后x y z 进程p1 y 1 进程p2 x 1 y y 2x x 1 signal s1wait s1 z y 1x x y wait s2signal s2 y z yz z x 解 x 5,...

国庆补充作业

1.已知,则 2.已知数例为等差数例,其前项的和为,若,则公差 3.已知圆经过两点,圆心在轴上,则圆的方程是 4.已知抛物线的准线过双曲线的右焦点,则双曲线的离心率为 5.如图,是圆的直径,是圆弧上的点,是直径上关于对称的两点,且,则 6.设向量 1.与 1,2 垂直,则等于 7.已知函数。1 求函...

数学补充作业

1 如图所示,点m是线段ab的中点,点n是线段am上的任意一点 点n不与点a重合 则下列结论不一定正确的是 a b c d 2.直线ab上有一点c,ab 12cm,bc 4cm,则accm.3.已知线段ab 延长ab到c 使,d为ac的中点,若bd 3cm 求ab的长。4.已知线段ab,在ab延长线...