- 38
- 0
- 约6.36千字
- 约 10页
- 2016-12-30 发布于山西
- 举报
实验
一、实验题目
模拟在Windows2000环境下,创建一个控制台,此包含n个线程。用这n个线程来表示n个读者或写者。每个线程按相应测试数据文件(后面有介绍)的要求进行读写操作。用信号量机制分别实现读者优先写者优先的读者-写者问题。
读者-写者问题的读写操作限制(包括读者优先和写者优先):
1)写-写互斥,即不能有两个写者同时进行写操作。
2)读-写互斥,即不能同时有一个线程在读,而另一个线程在写。,
3)读-读允许,即可以有一个或多个读者在读。
如果读者来:
无读者、写者,新读者可以读
有写者等待,但有其他读者正在读,新读者可以读
有写者写,新读者等
如果写者来:
无读者,新写者可以写
有读者,新写者等待
有其他写者,新写者等待
读者优先的附加限制:如果一个读者申请进行读操作时已有另一个读者正在进行读操作,则该读者可直接开始读操作。
写者优先的附加限制:如果一个读者申请进行读操作时已有另一写者在等待访问共享资源,则该读者必须等到没有写者处于等待状态后才能开始读操作。
读者:
BEGIN
P(mutex);//上锁,互斥其他读者,为了保证只有一个读者改变read_count
read_count:=read_count+1;
IF read_count=1 //第一个读者,则上写者的锁,保证读得时候不能让写者写
THEN P(writer)
V(mutex);
读文件;
原创力文档

文档评论(0)