电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

完整版读者写者问题试验报告VIP免费

完整版读者写者问题试验报告_第1页
1/18
完整版读者写者问题试验报告_第2页
2/18
完整版读者写者问题试验报告_第3页
3/18
《操作系统》实验报告实验序号:操作系统实验( 二) 实验项目名称:读者写者问题学号姓名队别实验地点指导教员实验时间一、实验目的及要求实验目的: 综合运用多进程并发控制,进程同步互斥,信号量机制等原理解决问题。实验要求: 本题目安排 16 学时,要求党员根据题目要求,写出算法,在VC平台上进行程序设计和调试, 在运行成功的基础上, 整理出源程序和运行结果. 写出设计报告。二、实验设备(环境)实验设备: WINDOWS 2000环境、 VC平台、 WIN 32 API 三、实验内容与步骤实验内容与步骤:可以将所有读者和写者分别存于一个读者等待队列和一个写者等待队列,每当读允许时,就从读者队列中释放一个或多个读者线程进行读操作;每当写允许时,就从写者队列中释放一个写者进行写操作.a)读者优先读者优先指的是除非有写者在写文件,否则读者不需要等待.所以可以用一个整形变量记录当前读者的数目,用于确定是否需要释放正在等待的写者线程.每一个读者开始读文件时,必须修改变量.因此需要一个互斥对象mutex 来实现对全局变量修改时的互斥.另外,为了实现写互斥,需要增加一个临界区对象write.当写者发出写请求时,必须申请临界区对象的所有权.通过这种方法,也可以实现读写互斥,当read_count=1 时,读者线程也必须申请临界区对象的所有权.当读者拥有临界区所有权时,写者阻塞在临界区对象write上.当写者拥有临界区所有权时,第一个读者判断完”read_count==1 ”后阻塞在 write上,其余的读者由于等待对read_count 的判断,阻塞在 mutex 上.b) 写者优先写者优先与读者优先类似.不同之处在于一旦一个写者到来,它应该尽快对文件进行写操作, 如果有一个写者在等待, 则新到来的读者不允许进行读操作. 为此应当添加一个整形变量write_count,用于记录正在等待的写者的数目,当write_count=0时,才可以释放等待的读者线程队列.为了对全局变量 write_count实现互斥,必须增加一个对象mutex3. 为了实现写者优先, 应当添加一个临界区对象read ,当有写者在写文件或等待时,读者必须阻塞在read 上.读者线程除了要对全局变量read_count 实现操作上的互斥外,还必须有一个互斥对象对阻塞read 这一过程实现互斥.这两个互斥对象分别命名为mutex1和 mutex2。四、实验结果与数据处理源代码#include #include #include #include #include

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

完整版读者写者问题试验报告

确认删除?
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群