浏览 1686 次
锁定老帖子 主题:PV操作 读写问题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2012-03-14
S,mutext : semaphore; S :=1; mutext :=1; rc : integer; rc := 0; cobegin process Readeri(i=1,2,...,m) begin P(mutex); /* 测试能否使用计数器 rc*/ rc := rc + 1; if rc = 1 then P(S);/* 第一个读者测试能否使用文件F */ V(mutex); /* 归还计数器 rc 的使用权 */ read file F; P(mutex); /* 测试能否使用计数器 rc */ rc := rc -1; if rc = 0 then V(S);/*最后一个读者归还文件 F 的使用权 */ V(mutex); /* 归还计数器 rc 使用权 */ end; process Writerj(j=1,2,...,n) begin P(S); write file F; V(S); end; coend; end; 这段能满足下面的要求吗? 1.多个进程可以同时读文件F 2.任何一个进程在对文件F进行修改时,不允许其他进程对文件F进行修改或读 3.当有进程在读文件F时,不允许任何进程去修改文件F 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |