进程同步模拟设计——读者和写者问题.doc

进程同步模拟设计——读者和写者问题.doc

ID:58372358

大小:183.00 KB

页数:16页

时间:2020-04-30

进程同步模拟设计——读者和写者问题.doc_第1页
进程同步模拟设计——读者和写者问题.doc_第2页
进程同步模拟设计——读者和写者问题.doc_第3页
进程同步模拟设计——读者和写者问题.doc_第4页
进程同步模拟设计——读者和写者问题.doc_第5页
资源描述:

《进程同步模拟设计——读者和写者问题.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、学号:课程设计题目进程同步模拟设计——读者和写者问题学院计算机科学与技术学院专业、班级、姓名、指导教师吴利军2013年01月17日课程设计任务书学生姓名:指导教师:吴利军工作单位:计算机科学与技术学院题目:进程同步模拟设计——读者和写者问题初始条件:1.预备内容:阅读操作系统的进程管理章节内容,对进程的同步和互斥,以及信号量机制度有深入的理解。2.实践准备:掌握一种计算机高级语言的使用。要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.模拟用信号量机制实现读者和写者问题。2.设计报告内容应说明:⑴需求分析;⑵功能设计(数据结

2、构及模块说明);⑶开发平台及源程序的主要部分;⑷测试用例,运行结果与运行情况分析;⑸自我评价与总结:i)你认为你完成的设计哪些地方做得比较好或比较出色;ii)什么地方做得不太好,以后如何改正;iii)从本设计得到的收获(在编写,调试,执行过程中的经验和教训);iv)完成本题是否有其他方法(如果有,简要说明该方法);时间安排:设计安排一周:周1、周2:完成程序分析及设计。周2、周3:完成程序调试及测试。周4、周5:验收、撰写课程设计报告。(注意事项:严禁抄袭,一旦发现,一律按0分记)指导教师签名:年月日系主任(或责任教师)签名:年月日1需求分析所谓读者写者问题

3、,是指保证一个writer进程必须与其他进程互斥地访问共享资源的同步问题.读者写者问题可以这样的描述,有一群写者和一群读者,写者在写同一本书,读者也在读这本书,多个读者可以同时读这本书,但是只能有一个写者在写书,并且读者优先,也就是说,读者和写者同时提出请求时,读者优先.当读者提出请求时需要有一个互斥操作,另外需要有一个信号量mutex来当前是否可操作.信号量机制是支持多道程序的并发操作系统设计中解决资源共享时进程间的同步与互斥的重要机制,而读者写者问题则是这一机制的一个经典范例.与记录型信号量解决读者—写者问题不同,信号量机制它增加了一个限制,即最多允许n

4、个读者同时读.为此引入了一个信号量Rcount,并赋予初值为0,通过执行Rcount++操作,来控制读者的数目,每当有一个读者进入时,就要执行Rcount++操作,使Rcount的值加1.读者离开时Rcount--;当且仅当Rcount==0时,V(Wmutex),才能进行写操作。对利用信号量来解决读者—写者问题的描述如下:Wmutex表示读写的互斥信号量,初值:Wmutex=1;公共变量Rcount表示“正在读”的进程数,初值:Rcount=0;Rmutex:表示对Rcount的互斥操作,初值:Rmutex=1。main(){intWmutex=1;int

5、Rmutex=1;intRcount=0;cobeginread1();read2();read3();......write1();write2();write3();......coend}readn(){P(Rmutex);Rcount++;if(Rcount==1)P(Wmutex);V(Rmutex);读P(Rmutex);Rcount--;if(Rcount==0)V(Wmutex);V(Rmutex);}writen(){P(Wmutex);写V(Wmutex);}2功能设计2.1设计目的l.用信号量来实现读者写者问题.2.理解和运用信号量,P

6、V原语,进程间的同步互斥关系等基本知识.2.2设计内容读者写者问题的定义如下:有一个许多进程共享的数据区,这个数据区可以是一个文件或者主存的一块空间;有一些只读取这个数据区的进程(Reader)和一些只往数据区写数据的进程(Writer),此外还需要满足以下条件:(1)任意多个读进程可以同时读这个文件;(2)一次只有一个写进程可以往文件中写;(3)如果一个写进程正在进行操作,禁止任何读进程度文件.我们需要分两种情况实现该问题:读优先:要求指一个读者试图进行读操作时,如果这时正有其他读者在进行操作,他可直接开始读操作,而不需要等待.写优先:一个读者试图进行读操

7、作时,如果有其他写者在等待进行写操作或正在进行写操作,他要等待该写者完成写操作后才开始读操作.2.3设计分析在Windowsxp环境下,创建一个包含n个线程的控制台进程.用这n个线程来表示n个读者或写者.每个线程按相应测试数据文件的要求,进行读写操作.请用信号量机制分别实现读者优先和写者优先的读者-写者问题.读者-写者问题的读写操作限制:读者-写者的读写限制(包括读者优先和写者优先)1)写-写互斥,即不能有两个写者同时进行写操作2)读-写互斥,即不能同时有一个读者在读,同时却有一个写者在写3)读读允许,即可以有2个以上的读者同时读将所有的读者和所有的写者分别

8、放进两个等待队列中,当读允许时就让读者队列释放一个或

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

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

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