- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
读者写者问题实现操作系统课程设计-课程设计_精品
读者写者问题实现操作系统课程设计-课程设计
读者写者问题实现操作系统课程设计
本次操作系统课程设计完成的是读者-写者问题,通过学习对线程及其同步机制有了很的学习和掌握. 并认识到同步可以保证在一个时间内只有一个线程对某个资源有控制权。共享资源包括全局变量、公共数据成员或者句柄等。同步还可以使得有关联交互作用的代码按一定的顺序执行。同时也掌握了实现线程同步的对象有Critical_section(关键段),Event(事件),Mutex(互斥对象),Semaphores(信号量)并对这些对象理解如下:?????????????
对于关键段对象:首先,定义一个关键段对象;然后,初始化该对象。初始化时把对象设置为NOT_SINGALED,表示允许线程使用资源:如果一段程序代码需要对某个资源进行同步保护,则这是一段关键段代码。在进入该关键段代码前调用EnterCriticalSection函数,这样,其他线程都不能执行该段代码,若它们试图执行就会被阻塞。完成关键段的执行之后,调用LeaveCriticalSection函数,其他的线程就可以继续执行该段代码。如果该函数不被调用,则其他线程将无限期的等待。
对于互斥对象 首先,调用CreateMutex创建互斥对象;然后,调用等待函数,可以的话利用关键资源;最后,调用RealseMutex释放互斥对象。互斥对象可以在进程间使用,但关键段对象只能用于同一进程的线程之间。
对于等待函数:等待函数有:1.等待单个对象的(FOR SINGLE OBJECT): WaitForSingleObject,函数参数包括同步对象的句柄和等待时间等。如果等待时间不限制(Infinite),则只有同步对象获得信号才返回;如果等待时间为0,则在测试了同步对象的状态之后马上返回。2.等待多个对象的(FOR MULTIPLE OBJECTS) WaitForMultipleObjects,函数参数包括同步对象的句柄,等待时间,是等待一个还是多个同步对象等等,如果等待时间不限制(Infinite),则只有同步对象获得信号才返回;如果等待时间为0,则在测试了同步对象的状态之后马上返回。
操作系统设计使我对C++有了一个很好的复习和学习,对线程的创建及同步问题及其同步对象都有了很好的理解。并能初步进行简单的程序编程。并对程序的调式过程,也使我更好了解到线程同步的具体运行过程,使我更好的理解程序。
学习语言是一个漫长的过程,我想只有在不断的实践练习中,才能更好的掌握编程的技巧,提高自己的编程能力,通过此次课设也让我深深体会到自己还有很多东西需要学习,还有很多课程需要复习。总之,此次课程设计使我收益匪浅。
操作系统课程设计任务书
读者-写者问题实现
1?设计目的
通过实现经典的读者写者问题,巩固对线程及其同步机制的学习效果,加深对相关基本概念的理解,并学习如何将基本原理和实际设计有机的结合。
2? 设计要求
在Windows 2000/XP环境下,使用多线程和信号量机制实现经典的读者写者问题,每个线程代表一个读者或一个写者。每个线程按相应测试数据文件的要求,进行读写操作。请用信号量机制分别实现读者优先和写者优先的读者-写者问题。
读者-写者问题的读写操作限制:?
(1)写-写互斥,即不能有两个写者同时进行写操作
(2)读-写互斥,即不能同时有一个读者在读,同时却有一个写者在写
(3)读-读允许,即可以有二个以上的读者同时读
读者优先的附加限制:如果一个读者申请进行读操作时已有另一读者正在进行读操作,则该读者可直接开始读操作。
写者优先的附加限制:如果一个读者申请进行读操作时已有另一写者在等待访问共享资源,则该读者必须等到没有写者处于等待状态后才能开始读操作。
运行结果显示要求:要求在每个线程创建、发出读写操作申请、开始读写操作和结束读写操作时分别显示一行提示信息,以确信所有处理都遵守相应的读写操作限制。
3? 测试数据文件格式
测试数据文件包括n 行测试数据,分别描述创建的n 个线程是读者还是写者,以及读写操作的开始时间和持续时间。每行测试数据包括四个字段,各字段间用空格分隔。第一字段为一个正整数,表示线程序号。第二字段表示相应线程角色,R 表示读者是,W 表示写者。第三字段为一个正数,表示读写操作的开始时间。线程创建后,延时相应时间(单位为秒)后发出对共享资源的读写申请。第四字段为一个正数,表示读写操作的持续时间。当线程读写申请成功后,开始对共享资源的读写操作,该操作持续相应时间后结束,并释放共享资源。下面是一个测试数据文件的例子:
1 r 3 5
2 w 4 5
3 r 5 2
4 r 6 5
5 w 5.1 3
4? 相关API函数
CreateThread()在调用进程的地址空间上创建一个线程
ExitThrea
您可能关注的文档
- 浅谈新会计准则之投资性房地产论文 定稿(可编辑)_精品.doc
- 电大2011秋《简明中国古代史》必过小抄_精品.doc
- 海域b区地下室顶板模板支撑施工方案_精品.doc
- 福建省机关事业单位工勤人员技术等级岗位考核_精品.doc
- 飘荡在虚无中的自由-萨特《存在与虚无》一书中的自由理论评析_精品.doc
- 电子信息工程专业毕业论文:基于at89c51单片机的电子密码锁设计_精品.doc
- 海南中一佳园林工程公司——绿化景观施工工程技术方案_精品.doc
- 煤矿建设项目安全设施设计审查和竣工验收规范(aq1055-2008)_精品.doc
- 沤江大桥连续刚构挂蓝施工安全专项方案_精品.doc
- 管道壁厚等级系列对照表_精品.doc
最近下载
- 陕西中医药大学学位英语考试真题.pdf VIP
- 第5单元—解决问题(减法) (2).ppt
- 上海传芯半导体掩模基版研发与产业化项目环评报告表 (1).pdf
- 2024年学校辅导员少先队知识竞赛备考题库.docx VIP
- 高鸿业《西方经济学(微观部分)》(第6版)课后习题附带答案详解(完整版).pdf
- 丰田雷凌说明书.docx VIP
- 《物联网在生活中的应用》教学设计.docx VIP
- 炼油设备知识分解.ppt
- 鲁科版(五四学制)(三起)英语五年级上册Unit2 Lesson3 Wang Hong is worried 课件.pptx
- 2024年度学校辅导员少先队知识竞赛备考题库(含答案).docx VIP
文档评论(0)