- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
安徽理工大学计算机操作吸引课程设计读者写者算法
课程设计说明书
嵌入式操作系统课程设计
题目: 读者写者算法模拟
院 系: 计算机科学与工程学院
专业班级:
学 号: 2012
学生姓名:
指导教师: 蒋社想
2014年 11月 25日
安徽理工大学课程设计(论文)任务书
计算机 院系 教研室
学 号 学生姓名 专业(班级) 设计题目 读者写者算法模拟 设
计
技
术
参
数
为每个读者/写者设计一个线程,要求可以正确的完成并发执行过程;
通过控制线程优先级即时唤醒实现进程同步;
读者应有3个以上,写者应有两个以上;
需要涉及到线程的唤醒,包括读者优先唤醒和写者优先唤醒;
开发环境为:C语言、linux操作系统。
设
计
要
求 设计题目:读者写者模拟
每个读者和写者对有界缓冲区进行操作后,即时显示有界缓冲区的全部内容,当前指针位置和读者/写者线程的标识符。
读者和写者各有两个以上。
多个写者或多个读者之间必须有共享对缓存区进行操作的函数代码。
工
作
量 课程设计任务要求不少于10页的报告,要赋有模块图或流程图。 工
作
计
划 第一周:查找相关资料,并绘制草图!
第二周:确定选用C语言为编程语言。
第三周:写需求分析报告。
第四周:着手进行编程,实现算法,并调试程序。
第五周:测试程序并优化功能,最终完成设计报告。 参
考
资
料 [1] 胡志刚,谭长庚等,《计算机操作系统》,中南大学出版社2005年
[2] 罗宇,邹鹏等,《操作系统》(第二版),电子工业出版社2007年4月
[3] 汤子瀛,哲风屏,汤小冉等,《计算机操作系统》,西安电子科技大学出社,2001年8月
[4] 张尧学,史美林,《计算机操作系统课程》,清华大学出版社,2000年
[5] 庞丽萍,《操作系统原理》,华中理工大学出版社,2000年
[6] 马季兰等Linux操作系统,电子工业出版社2002年
[7] 任爱华,李鹏,刘方毅,操作系统实验指导,清华大学出版社,2004年
[8] 谭浩强著.C程序设计,清华大学出版社,1999年12月第2版
指导教师签字 教研室主任签字 年 月 日
指导教师评语:
成绩:
指导教师:
年 月 日 安徽理工大学课程设计(论文)成绩评定表
摘要
在实际应用中,并发执行大大提高了系统执行效率的同时也带来了更多的不可确定性,因此解决并发过程中的冲突是非常必要的,荷兰科学家Dijkstra于1965年提出一个同步机制解决方案,这就是著名的读者写者算法问题。读者写者问题作为一个经典的进程同步问题,通过对读者优先算法的改进,和信号量控制实现写者优先算法。它完美解析了进程执行过程中的并发和互斥问题。
关键词:信号量、互斥、同步、读者写者算法
目录
读者写者算法 7
1 系统分析 7
1.1问题描述 7
1.2算法描述 7
1.3设计目的 8
2 系统设计 8
2.1设计要求 8
2.2设计原理 8
2.3模块设计 8
2.4设计流程图 9
3系统实现 9
3.1数据结构 10
4算法实现 11
5运行结果于分析 15
读者写者算法
1 系统分析
1.1问题描述
读者写者算法首先是一个线程问题。作为一个经典的进程同步问题,该问题最早由Dijkstra提出,用以演示他提出的信号量机制。在实际生活中通常会出现这样一种情况,即生产者和消费者的关系,用读者写者关系描述,写者在写一本书的时候,读者可以阅读这本书,同时多个读者可以同时读这本书,但是要求一本书的写者只能有一个,即正在写书的只有一个写者。为实现读写同步,则必须使用信号量机制加以控制。信号量机制可支持多道程序的并发执行并解决资源共享时进程的同步与互斥。
1.2算法描述
定义一个数据缓存buffer及用于实现同步互斥的信号量w。
定义一个读者函数:
当有写者在占用buffer时,读者应该等待,直到写者不再使用该buffer;
当有其他读者在占用buffer时,读者可对buffer
文档评论(0)