实验二:读者写者问题 班级: 学号: 姓名: 实验二:读者写者问题 一、实验目的 1
通过编写和调试程序以加深对进程、线程管理方案的理解; 2
熟悉 Window s 多线程程序设计方法; 二、实验要求 在 Window s 环境下,创建一个控制台进程,此进程包含 n 个线程
用这 n 个线程来表示 n 个读者或写者
每个线程按相应测试数据文件(后面介绍)的要求进行读写操作
用信号量机制分别实现读者优先和写者优先问题
读者-写者问题的读写操作限制(包括读者优先和写者优先) 1 ) 写-写互斥:不能有两个写者同时进行写操作 2 ) 读-写互斥:不能同时有一个线程在读,而另一个线程在写
3 ) 读-读允许:可以有一个或多个读者在读
读者优先的附加限制:如果读者申请进行读操作时已有另一个读者正在进行读操作,则该读者可直接开始读操作
运行结果显示要求:要求在每个线程创建、发出读写申请、开始读写操作和结束读写操作时分别显示一行提示信息,以确定所有处理都遵守相应的读写操作限制
测试数据文件包括 n 行测试数据,分别描述创建的 n 个线程是读者还是写者,以及读写操作的开始时间和持续时间
每行测试数据包括四个字段,每个字段间用空格分隔
第1个字段为正整数,表示线程的序号
第2 个字段表示线程的角色,R 表示读者,W 表示写者
第3 个字段为一个正数,表示读写开始时间:线程创建后,延迟相应时间(单位为秒)后发出对共享资源的读写申请
第4 个字段为一个正数,表示读写操作的延迟时间
当 线程读写申请成 功 后,开始对共享资源进行读写操作,该操作持续相应时间后结束,释 放 该资源
下面是一个测试数据文件的例 子 (在记 事 本 手 工 录 入 数据): 1 R 3 5 2 W 4 5 3 R 5 2 4 R 6 5 5 W 5
1 3 三 、实验环境 硬 件设备 :个人 计算 机