| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 688 人关注过本帖
标题:请教一道关于操作系统中读者-写者的问题(p,v操作)
只看楼主 加入收藏
vidygao
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-11-17
收藏
 问题点数:0 回复次数:0 
请教一道关于操作系统中读者-写者的问题(p,v操作)

这是一道一般难度的p,v操作问题,但我觉得答案有点问题,现在请教一下高手帮忙看看。 题目:某数据库一个写进程,多个读进程,它们之间读写操作的互斥要求为:写时不能读,也不能允许其它写进程写;读进程之间不互斥,请用p,v操作描述这一组进程工作过程。
答案:
int rmutex=1;
int wmutex=1;
int count=0;
main()
{
cobegin

reader();

writer();

coend;

}

reader()

{

while(1)

{

p(rmutex);

if(count==0) p(wmutex);/*当第一个读进程读数据库时,阻止写进程写*/

count ++;

v(rmutex);

读数据库;

p(rmutex);

count--;

if(count==0) v(wmutex);*当最后一个读进程读完数据库时,允许写进程写*/

v(rmutex);

}

}

writer()

{

while(1)

{

p(wmutex);

写数据库;

v(wmutex);

}

}

我感觉writer()有点毛病,写时是否还能读呢? 麻烦各位高人费心看看。

[此贴子已经被作者于2006-11-17 12:54:21编辑过]

搜索更多相关主题的帖子: 操作系统 写者 数据库 int 进程 
2006-11-17 12:52
快速回复:请教一道关于操作系统中读者-写者的问题(p,v操作)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016275 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved