主题:求解操作系统的题目!
1 兄弟俩共用一个账户,每次限存或取10元,存取与取钱的进程分别描述如下:
Begin
amount: integer;
amount:=0;
Cobegin
Begin
process SAVE process TAKE
var m1:integer; var m2:integer;
begin begin
m1:=amount; m2:=amount;
m1:=m1+10; m2:=m2-10;
Amount:=m1; amount:=m2;
End; end;
Coend;
End.
由于兄弟俩可能同时存钱和取钱,因此两个进程是并发的。若哥哥先存两次钱,但第三次存钱时,弟弟在取钱。请分析最后账户amount上可能出现的值?若不发生错误,请用P,V操作进行正确管理。
账户上可能的值是多少.?还有怎么算的过程..?知道的高手请讲解一下...万分感谢了!!!!!!!!!!!!!!!!
Begin
amount: integer;
amount:=0;
Cobegin
Begin
process SAVE process TAKE
var m1:integer; var m2:integer;
begin begin
m1:=amount; m2:=amount;
m1:=m1+10; m2:=m2-10;
Amount:=m1; amount:=m2;
End; end;
Coend;
End.
由于兄弟俩可能同时存钱和取钱,因此两个进程是并发的。若哥哥先存两次钱,但第三次存钱时,弟弟在取钱。请分析最后账户amount上可能出现的值?若不发生错误,请用P,V操作进行正确管理。
账户上可能的值是多少.?还有怎么算的过程..?知道的高手请讲解一下...万分感谢了!!!!!!!!!!!!!!!!