有一对夫妻在某银行申请了一个共同的帐号,办理了正副两张银行卡。每张银行卡都可独立存款和取款,规定每次存款或取款的金额为1000元(约定可透支)。自动存取款机中为银行卡设置了如下两个进程: begin amount:mteger; amount:=0

admin2012-09-30  76

问题 有一对夫妻在某银行申请了一个共同的帐号,办理了正副两张银行卡。每张银行卡都可独立存款和取款,规定每次存款或取款的金额为1000元(约定可透支)。自动存取款机中为银行卡设置了如下两个进程:
begin
  amount:mteger;
  amount:=0;
  cobegin
  process SAVE
  k:integer;
  begin
  k:=amount;
  k:=k+1000;
  amount:=k
  end;
  Drocess TAKE
  t:integer;
  begin
  t:=amount:
  t:=t-1000;
  amount:=t
  end;Coend;
  end;
  回答下列问题:
  (1)上述进程执行时会产生怎样的错误?为什么?
  (2)为保证系统的安全,可采用PV操作来管理。请完善上述程序,以确保系统的安全。

选项

答案(1)会产生与时间有关的错误。 因正副卡都可独立存取款,且存取款是随机的,故两进程就可能并发执行。 由于它们都涉及到共享变量amount,当交替访问amount时就会出错。 (2)完善后的程序如下。方框处为应完善的内容。 [*]

解析
转载请注明原文地址:https://kaotiyun.com/show/KfNx777K
本试题收录于: 操作系统题库理工类分类
0

最新回复(0)