读者写者问题的写者优先算法

问题描述:

有读者(reader)和写者(writer)两组并发进程,共享一个文件,当两个或以上的读进程同时访问共享数据时不会产生副作用,但若某个写进程和其他进程(读进程或写进程)同时访问共享数据时则可能导致数据不一致的错误。
因此要求:

① 允许多个读进程可以同时对文件执行读操作;
② 只允许一个写进程往文件中写信息;
③ 任一写进程在完成写操作之前不允许其它读进程或写进程工作;
④ 写进程执行写操作前,应让已有的读进程和写进程全部退出。

写者优先问题分析:

1:写进程与写进程和写进程与读进程要互斥访问数据集。
2:当没有写进程正在访问共享数据集的时候,多个读进程可以同时访问。
3:当有进程在访问数据集的时候,后续等待的写进程优先访问。

需要用到的变量和信号量:

互斥信号量Wmutex实现写进程之间的互斥,互斥信号量Rmutex实现读进程和写进程之间的互斥。 两个整型变量:WcountRcount记录等待的写进程数量和正在读的读进程数量。 互斥信号mutex1mutex2用来实现进程对共享变量WcountRcount的互斥访问,

<

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值