实验二读者写者问题实验报告一、实验目的Windows2000/XP 提供了互斥量(mutex)、信号量(semapore)、事件(event)等三种同步对象和相应的系统调用,用于线程的互斥与同步
通过对读者写者问题的调试,了解 Windows2000/XP 中的同步机制
二、实验内容及实验步骤利用 Windows2000/XP 信号量机制,实现读者写者问题
在 Windows2000 环境下,创建一个控制台进程,此进程包含 n 个线程
用这 n 个线程来表示 n 个读者或写者
每个线程按相应测试数据文件(后面有介绍)的要求进行读写操作
用信号量机制分别实现读者优先和写者优先的读者-写者问题
读者-写者问题的读写操作限制(包括读者优先和写者优先):写-写互斥,即不能有两个写者同时进行写操作
读-写互斥,即不能同时有一个线程在读,而另一个线程在写
读-读允许,即可以有一个或多个读者在读
读者优先的附加限制:如果一个读者申请进行读操作时已有另一个读者正在进行读操作,则该读者可直接开始读操作
写者优先的附加限制:如果一个读者申请进行读操作时已有另一写者在等待访问共享资源,则该读者必须等到没有写者处于等待状态才能开始读操作
运行结果显示要求:要求在每个线程创建、发出读写操作申请、开始读写操作和结果读写操作时分别显示一行提示信息,以确定所有处理都遵守相应的读写操作限制
三、实验结果及分析■nw1
i>j•—i—ii■>>»■iiIKn■i1iiT;VCV\MIKI\^习 2 卑 RP\D 訪時癖*1 :ReaderPrioFitif2 :WritepPpioriti;3:ExitPrioriti;wwwwwwwwwwwwwwwwwwwwwwwwwwwwEntei'youi:'choiceCl,2or3=图 2
1 选择界面第一字段为一个正整数,表示线程序号