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

欢迎免费使用小程序搜题/刷题/查看解析,提升学历,成考自考报名,论文代写、论文查重请加客服微信skr-web

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

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

访客
邮箱
网址

通用的占位符缩略图

人工智能机器人,扫码免费帮你完成工作


  • 自动写文案
  • 自动写小说
  • 马上扫码让Ai帮你完成工作
通用的占位符缩略图

人工智能机器人,扫码免费帮你完成工作

  • 自动写论文
  • 自动写软件
  • 我不是人,但是我比人更聪明,我是强大的Ai
Top