读者写者问题报告

读者写者问题报告

ID:30463389

大小:21.62 KB

页数:15页

时间:2018-12-30

读者写者问题报告_第1页
读者写者问题报告_第2页
读者写者问题报告_第3页
读者写者问题报告_第4页
读者写者问题报告_第5页
资源描述:

《读者写者问题报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划读者写者问题报告  操作系统试验--读者-写者问题  周俊霞XXXX班  进程同步  一.实习要求:  本课程实验内容引自《Windows内核实验教程》(陈向群、林斌等编著,机械工业出版社)。在Windows环境下,创建一个包含n个线程的控制进程。用这n个线程来表示n个读者或写者。每个线程按相应测试数据文件的要求,进行读写操作。请用信号量机制分别实现读者优先和写者优先的读者-写者问题。  1.读者-写者问题的读写操作限制:  1)写-写互斥; 

2、 2)读-写互斥;  3)读-读允许;  2.读者优先的附加限制:如果一个读者申请进行读操作时已有另一读者正在进行读操作,则该读者可直接开始读操作。  写者优先的附加限制:如果一个读者申请进行读操作时已有另一写者在等待访问共享资源,则该读者必须等到没有写者处于等待状态后才能开始读操作。目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划  运行结果显示要求:要求在每个线程

3、创建、发出读写操作申请、开始读写操作和结束读写操作时分别显示一行提示信息,以确信所有处理都遵守相应的读写操作限制。  二.测试数据文件格式  测试数据文件包括n行测试数据,分别描述创建的n个线程是读者还是写者,以及读写操作的开始时间和持续时间。每行测试数据包括四个字段,各字段间用空格分隔。第一字段为一个正整数,表示线程序号。第一字段表示相应线程角色,R表示读者是,W表示写者。第二字段为一个正数,表示读写操作的开始时间。线程创建后,延时相应时间后发出对共享资源的读写申请。第三字段为一个正数,表示读写操作的持续时间。当线程读写申请成功后,开始对共享资源的读写

4、操作,该操作持续相应时间后结束,并释放共享资源。下面是一个测试数据文件的例子:  1R35  2W45  3R52  4R65  5W3  三、与实验相关的API介绍  在本实验中可能涉及的API有:  线程控制:目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划  CreateThread完成线程创建,在调用进程的地址空间上创建一个线程,以执行指定的函数;它的返回值为

5、所创建线程的句柄。  HANDLECreateThread;  ExitThread用于结束当前线程。  VOIDExitThread;  Sleep可在指定的时间内挂起当前线程。  VOIDSleep;  信号量控制:  CreateMutex创建一个互斥对象,返回对象句柄;  HANDLECreateMutex;  OpenMutex打开并返回一个已存在的互斥对象句柄,用于后续访问;  HANDLEOpenMutex;  ReleaseMutex释放对互斥对象的占用,使之成为可用。  BOOLReleaseMutex;  WaitForSingleO

6、bject可在指定的时间内等待指定对象为可用状态;  DWORDWaitForSingleObject;  程序由入口函数main开始,打印出菜单,选择1则选择读者优先,调用ReaderPriority("")函数;选择2则选择写者优先,调用WriterPriority("")函数;选择3则退出。目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划  读者优先:  Rea

7、derPriority函数首先读取目标文件,为每一行请求创建一个线程,其中读  请求创建读者线程,调用RP_ReaderThread函数,写请求创建写者线程,调用RP_WriterThread函数。  RP_ReaderThread函数的实现如下:  wait(mutex);  read_count++;  if(read_count==1)  wait(&RP_Write);  signal(mutex);  读临界区……  wait(mutex);  read_count--;  if(read_count==0)  signal(&RP_Write

8、);  signal(mutex);  RP_WriterThread函数的实现

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。