您好,匿名用户

记录型信号量机制综合应用题

0 投票

昨天在刷操作系统概论的题,在自考书上碰到个练习题,如下题。答案书上都有,可是我看不懂解题的原理,求大佬指点...

问题:有两个进程pA,pB合作解决文件打印问题:pA将文件记录从磁盘读入主存
的缓冲区,每执行一次读一个记录;pB将缓冲区的内容打印出来,每执行一
次打印一个记录。缓冲区的大小等于一个记录的大小。请用记录型信号量机
制的wait(s) 和 signal(s) 操作来保证文件的正确打印,并写出同步代码。

答案

为缓冲区设置互斥信号量mutex,另设两个信号量empty,full。初始值分别为:
mutex.value = 1
empty.value = 1
full.value = 0
pA
{从文件中读一条记录;
wait(empty);
wait(mutex);
将数据写入缓冲区;
signal(mutex);
signal(full);
}

pB
{
wait(full);
wait(mutex);
从缓冲区中读一条记录;
signal(mutex);
signal(empty);
打印数据;
}
这个答案,求大神解释一下.我看不懂...或者说为什么这样解?

用户头像 提问 5月29日 @ Cho'Gath 中士 (1,292 威望)
分享到:

你的回答

隐私保护: 您的邮箱仅用于发送系统通知。
请输入验证码:
    图片验证码看不清?
登录注册后不会被要求输入验证码。

提一个问题:

相关问题

0 投票
1 回复 7 阅读
用户头像 提问 5月15日 @ Koz 下士 (956 威望)
0 投票
1 回复 10 阅读
0 投票
1 回复 11 阅读
用户头像 提问 5月19日 @ hacker 中士 (1,392 威望)
0 投票
1 回复 196 阅读
用户头像 提问 2017年 5月13日 @ Pisces 中士 (1,152 威望)
0 投票
0 回复 42 阅读
用户头像 提问 2015年 2月27日 @ Skarner 中士 (1,293 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...