您的位置:首页 > 其它

读者写者问题

2009-09-22 14:06 239 查看
读者写者问题是经典的进程同步问题,此例应解决以下问题:

1、读进程正在操作,写进程不能进入

2、写进程正在操作,读进程不能进入

3、读进程正在操作,其它读进程可以进入

4、写进程正在操作,其它写进程不能进入

解决方法:利用记录型信号量

定义读、写互斥信号量rmutex、wmutex,一个读进程数目整形变量readcount;

wait(mutex),signal(mutex)为对信号量的原语操作

读进程描述:

Code:

wait(rmutex);

if(readcount == 0)

wait(wmutex);

readcount++;

signal(rmutex);

/*...

perform read operation

...*/

wait(rmutex);

readcount--;

if(readcount == 0)

signal(wmutex);

signal(rmutex);

写进程描述:

Code:

wait(wmutex);

/*...

perform write operation

...*/

signal(wmutex);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: