欢迎来到天天文库
浏览记录
ID:31217725
大小:122.31 KB
页数:21页
时间:2019-01-07
《进程同步模拟设计读者和写者问题》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、附件1:学号:012081034课程设计题目进程同步模拟设计一一读者和写者问题学院计算机科学与技术学院专业计算机科学与技术班级计算机科学与技术姓名指导教师2011年1月19日目录11设计概述41.1问题描述:41.1」规则:41」.2读者和写者的相互关系:41.2采用信号量机制41.3C++语言程序模拟用信号量机制实现生产者和消费者问题52课程设计目的及功能52.1设计目的52.2设计功能:53需求分析,数据结构或模块说明(功能与框图)53.1数据结构53.2模块说明63.3开发平台及源程序的主要部分63.3.1写操作的设计:63.3.2读操作的设计:73.3.3主函数的设计:93.4
2、功能流程图124测试用例,运行结果与运行情况分析124」测试用例124.2运行结果134.3运行情况分析145自我评价与总结156参考文献16课程设计任务书学生姓名:专业班级:计算机科学与技术指导教师:工作单位:计算机科学与技术学院题目:进程同步模拟设计一一读者和写者问题初始条件:1.预备内容:阅读操作系统的进程管理章节内容,对进程的同步和互斥,以及信号量机制度有深入的理解。2.实践准备:掌握一种计算机高级语言的使用。要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.模拟用信号量机制实现读者和写者问题。2.设计报告内容应说明:(1)课程设计目的与功能;
3、(2)需求分析,数据结构或模块说明(功能与框图);(3)源程序的主要部分;(4)测试用例,运行结果与运行情况分析;(5)自我评价与总结.i)你认为冻完成的设计哪些地方做得比较好或比较出色;ii)什么地方做得不太好,以后如何改正;iii)从本设计得到的收获(在编写,调试,执行过程屮的经验和教训);iv)完成本题是否有其他的其他方法(如果有,简要说明该方法);v)对实验题的评价和改进意见,请你推荐设计题目。时间安排:设计安排一周:周1、周2:完成程序分析及设计。周2、周3:完成程序调试及测试。周4、周5:验收、撰写课程设计报告。(注意事项:严禁抄袭,一旦发现,抄与被抄的一律按0分记)指导教
4、师签名:系主任(或责任教师)签名:进程同步模拟设计读者和写者问题1设计概述1.1问题描述:模拟用信号量机制实现读者和写者问题,即有两组并发进程:读者和写者,共享一组数据区,进行读写操作,要求任一吋刻“写者”最多只允许一个,而“读者"则允许多个。1.1.1规则:允许多个读者同时执行读操作;不允许读者、写者同吋操作;不允许多个写者同时操作。1.1.2读者和写者的相互关系:1)“读一写”互斥,即不能同吋有一个读者在读,同吋去有一个写者在写;2)“写一写”互斥,即不能有两个写者同时进行写操作;3)“读一读”允许,即可以有两个以上的读者同时进行读操作。1.2采用信号量机制1)Wmutex表示读写
5、的互斥信号量,初值:Wmutex=1;2)公共变量Rcount表示“止在读"的进程数,初值:Rcount=0;3)Rmutex:表示对Rcount的互斥操作,初值:Rmutex=lomain()读者进程:V(Rmutex);{intWmutex=l;Readn()while(false);intRmutex=l;{P(Rmutex);写者进程:intRcount=0;Rcount++;writem()cobeginif(Rcount==l)P{read1();(Wmutex);P(Wmutex);•••V(Rmutex);readi();读写write1();P(Rmutex);•••
6、Rcount--;V(Wmutex);writejO;if(Rcount==0)coend}V(Wmutex);}1-3C++语言程序模拟用信号量机制实现生产者和消费者问题本次设计中首先用户输入读者个数r_num和写者个数w_num,来模拟用信号量机制实现r_num个读者和w_num个写者同时处理一个数据区的问题。所有的读者或写者对操作的申请和完成都是由用户控制,更容易反映读者和写者问题的规律。2课程设计目的及功能2.1设计目的通过实验模拟读者和写者Z间的关系,了解并掌握他们Z间的关系及其原理。由此增加对进程同步的问题的了解。具体如下:1)掌握基木的同步互斥算法,理解读者和写者模型;2
7、)了解windows中多线程(多进程)的并发执行机制,线程(进程)间的同步和互斥;3)学习使用windows中基本的同步对象,掌握相应的API。2.2设计功能:利用模拟用信号量机制实现读者和写者问题:通过用户控制读进程和写进程,反应读者和写者问题中所涉及的进程的同步与互斥。3需求分析,数据结构或模块说明(功能与框图)3.1数据结构intr_num;//读者个数intw_num;//写者个数intWmutex二1;〃表示允许写或允许读intRco
此文档下载收益归作者所有