读者写者问题.doc

读者写者问题.doc

ID:56997871

大小:87.00 KB

页数:17页

时间:2020-07-30

读者写者问题.doc_第1页
读者写者问题.doc_第2页
读者写者问题.doc_第3页
读者写者问题.doc_第4页
读者写者问题.doc_第5页
资源描述:

《读者写者问题.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、课程设计(大作业)报告课程名称:操作系统设计题目:读者写者问题模拟实现院系:班级:设计者:学号:指导教师:设计时间:昆明学院昆明学院课程设计(大作业)任务书姓名:院(系):信息技术学院专业:计算机科学与技术学号:任务起止日期:2012年12月24日至12月28日课程设计题目:读者写者问题模拟实现课程设计要求及任务描述:设计内容:1.创建进程,在该进程中创建若干个线程模拟读者和写者线程,每个线程按照要求进行读写操作。2.线程读写操作要符合以下几个条件:第一:写写互斥。不能有两个写线程同时进行写操作。第二:读写互斥。不能同时有一个线程在读,另一个线程在写。第

2、三:读读允许。可以有一个或多个读者在读。第四:写者优先。如果一个读进程申请读操作时,已经有一个写者在等待访问共享资源,则该读者必须等到没有写者处于等待状态后才能开始读操作。3.创建两个队列其中一个放读者,另一个放写者。当读允许时就从读者队列中取出一个或者多个读线程进行操作;当写允许时,就从写者队列中取出一个或者多个写线程进行操作。4.测试文件测试文件中每行表示一个线程信息,每行四个字段,每个字段用空格隔开。第一个字段为正数,表示线程序号;第二个字段表示线程的角色,R表示读者,W表示写者;第三个字段为一个正数,表示读写操作提交时间;第四个字段表示读写操作的

3、持续时间。5.显示结果。使用提示信息方式显示结果。每个线程发出读写操作请求、开始读写操作、结束读写操作、被阻塞时分别显示一行提示信息。注:实验环境及工具不限。工作计划及安排:工作时间为2012年12月24日至12月28日。12月24日分析问题并开始着手画程序流程图,24日至25日程序流程图基本完工,26日开始写程序代码,26日至27日程序代码基本完成并成功实现要求显示的结果,28日完成该提交的报告文档内容指导教师签字年月日课程设计(大作业)成绩学号:5姓名:郭永权指导教师:段玻课程设计题目:读者写者问题模拟实现完成情况总结:由老师给出的指导任务书,根据任

4、务书分析问题并画出基本流程图,然后根据流程图逐一写出程序,并调式显示出老师给出的要求。通过这次实验,让我对C++语言的编写有了更深的了解,也让我了解了支持多道程序的并发操作系统设计中解决资源共享时进程间的同步与互斥的信号量机制。在这次的设计中,遇到了许多意想不到的问题,在画流程图的过程中发现自己对问题的不熟悉和理解,让进度严重延迟,对程序的编写也存在很大的问题,自己也没有足够的能力解决,最后是通过同学的帮助才能基本完成。通过这次设计也体现出了自己的不足,今后需对程序的编写和流程图的设计做出更多的学习。指导教师评语:成绩:填表时间:指导教师签名:课程设计(

5、大作业)报告一、实验原理分析1)、读者写者问题读者写者问题是指多个进程对一个共享资源即数据集进行读写操作的问题,其中一些进程只要求读数据集的内容,而另一些进程则要求修改或写数据集的内容。将只要求读数据的进程称为读进程,将要求修改或写数据集的进程称为写进程。多个读进程可以同时读此数据集,不需要互斥也不会产生任何问题,但是一个写进程不能与其他进程(读进程或写进程)同时访问此数据集,它们之间必须互斥,否则数据集的完整性和正确性将遭到破坏。2)、设计的算法要求第一:写写互斥。不能有两个写线程同时进行写操作。第二:读写互斥。不能同时有一个线程在读,另一个线程在写。

6、第三:读读允许。可以有一个或多个读者在读。第四:写者优先。如果一个读进程申请读操作时,已经有一个写者在等待访问共享资源,则该读者必须等到没有写者处于等待状态后才能开始读操作。二、流程图表示及说明1、流程图:线程1发出读请求临界区加载Input.txt文件是否有写进程在运行加入等待队列Y线程1、3、4结束读进程线程4发出读请求并开始读线程5发出写进程并进入等待队列线程3发出读进程并开始读线程2发出写请求并进入等待队列N线程1开始读文件无线程在读及写线程2结束写文件无线程读和写线程5开始写文件线程5结束写文件2、说明:根据读者-写者的读写限制(写者优先)1)

7、写-写互斥,即不能有两个写者同时进行写操作2)读-写互斥,即不能同时有一个读者在读,同时却有一个写者在写3)读读允许,即可以有2个以上的读者同时读4)写者优先。如果一个读进程申请读操作时,已经有一个写者在等待访问共享资源,则该读者必须等到没有写者处于等待状态后才能开始读操作。线程1进入临界区申请读文件,临界区无写线程运行,线程1开始读文件,线程2申请写进程,有线程1在读文件,所以进入等待队列,线程3申请读进程,因可以有2个以上进程可读,所以线程2开始读文件,线程5申请写进程,因有进程在读,所以进入等待队列,线程4申请读进程并开始读文件,线程1、3、4结束

8、进程,无进程读写,线程2开始写文件,线程2结束写文件,无进程读写,线程5开始写文

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

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

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