东华大学计算机学院 操作系统实验报告 实验名称: 读者写者问题 姓 名: 姜元杰 学 号: 111310228 班 级: 计算机1102 指导老师: 李继云 报告日期: 2013/10/12 航空售票信息管理系统 - 1 - 一 、 实 验 概 述 1
实验目标 在Window s 系统平台下,了解Window s 编程基本知识,通过创建线程等一系列操作实现进程同步经典问题——读者写者问题
实验要求 在Window s7 环境下,创建一个控制台进程,此进程包含 n 个线程
用这 n个线程来表示 n 个读者或写者
每个线程按相应测试数据文件(后面有介绍)的要求进行读写操作
用信号量机制分别实现读者优先和写者优先的读者-写者问题
读者-写者问题的读写操作限制(包括读者优先和写者优先): 1 ) 写-写互斥,即不能有两个写者同时进行写操作
2 ) 读-写互斥,即不能同时有一个线程在读,而另一个线程在写
, 3 ) 读-读允许,即可以有一个或多个读者在读
读者优先的附加限制:如果一个读者申请进行读操作时已有另一个读者正在进行读操作,则该读者可直接开始读操作
写者优先的附加限制:如果一个读者申请进行读操作时已有另一写者在等待访问共享资源,则该读者必须等到没有写者处于等待状态后才能开始读操作
运行结果显示要求:要求在每个线程创建、发出读写操作申请、开始读写操作和结束读写操作时分别显示一行提示信息,以确定所有处理都遵守相应的读写操作限制
二 、 实 验 内 容 1
设计思路 通过仔细分析问题,实验实现内容分别为读者优先部 分与 写者优先部 分
通过建立 统一的线程数组 存 储 所有待创建线程,并 在系统后台分别存 于可以将 所有读者和所有写者分别存 于一个读者等待队 列和一个写者等待队 列中 ,每当 读允许 航空售票信息管理系统 - 2 - 时,就从读者队列