- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
读者和写者-操作系统课程设计实验报告
操作系统课程设计题目名称:读者与写者目录问题描述................................................3~4系统设计................................................5~9源代码清单.............................................9~19运行结果测试与分析.......................................20总结与心得...............................................20问题描述读者与写者问题主要是涉及到操作系统中的进程同步、互斥以及信号量机制的概念,可以有多个读者进程同时进行,但是当写者进程到来时,所有的读者进程都要进入等待状态,而且写者进程只能独立。实现读者与写者的总体思路是使用多线程,每当一个读者到来时,如果当前没有写者进程正在进行,则立即开启一个读者线程,如果当前有写者正在进行,则此读者应当进入等待状态,直到写者进程完成,每当一个写者到来时,若此时有读者正在进行,则立即将正在进行的读者设置为等待状态,开启写者进程,并且当下一个写者到来时,只能进入等待状态,除非当前写者完成。进程同步与互斥:进程互斥是多处理机系统中的典型间接作用,通常是两个或两个以上进程需要同时访问某个共享变量,在这个程序中此共享变量就是共享文件。我们一般将发生能够共享变量的程序段称为临界区。两个进程不能同时进入临界区,否则就会导致数据的不一致,产生与时间有关的错误。我们解决互斥问题时要遵循互斥和公平两个原则,即任意时刻只允许一个进程进入临界区,且不能让任意进程进入无限的等待。进程同步是进程之间的直接作用。简单的理解就是,若有两个进程A,B,若只有当A进程完成后B进程才能够启动,则说A进程与B进程是同步的。实现同步与互斥有多种机制,比如信号量、管程、会合、分布式系统,在这个程序中简单的用信号量来实现。信号量信号量机制是荷兰学者Dijkstra于1955提出的一种解决进程同步与互斥的有效工具在此机制中,信号量S是一个整数,S大于等于零代表可供并发进程使用的资源数,当S小于零时表示正在等待使用临界区的进程数。Dijkstra同时提出了对信号量操作的PV原语:P原语操作动作:、S减一;、若S减一后仍大于或等于零,则进程继续进行。、若S减一小于零,则进程被阻塞后进入与该信号量相对应的队列中,然后转进程调度。V原语操作动作:、S加一;、若S加一后结果大于零,则进程继续;、若S加一后结果小于或等于零,则从该信号的等待队列中唤醒一等待进程再返回原进程继续执行或转向进程调度。PV操作对于每一个进程来说,都只能进行一次,而且必须成对使用。在PV执行期间不允许有中断发生。信号量机制分整型信号量机制、记录型信号量机制、and型信号量机制以及信号量集,在这个程序中使用的是整型信号量机制。假设共享文件是一个JTextArea,在这个JTextArea中,可以向其写入文件,也可以从其中读取文件,遵循的原则是,多个读者可以同时进行,但写者只能单独进行,而且写者优先。当一个读者到来时,先判断有无写者正在进行,可用一个布尔变量bwrite,当其为true时表示有写者正在进行,表示此时来到的读者只能进入等待状态。当其为false时,表示暂无写者正在进行,来到的读者可以立即开启。读者到来:空闲情况下,直接开启一个读者,就是将共享文件中的内容简单的读取出,并且显示在相应读者的显示框中。当有读者正在进行时,由于多个读者可以同时进行,因此这种情况下也是立即开启一个读者进程,同时读取。当有写者正在进行时,由于写者优先,因此到来的读者必须进入等待状态,直到所有写者进程全部完成。一段时间后,这个读者应当完成,并且要释放资源,即共享文件的被引用次数减一。写者到来:空闲情况下,直接开启一个写者,由于写者只能单独进行,因此开启一个写者后要将共享区锁住,禁止其他读者或者写者进入。若此前有读者正在进行,则正在进行的读者马上进入等待状态,进入等待队列,立即将此写者开启,直到该写者完成,在从等待队列中拿出处于等待的读者继续。若此前有写者正在进行,则刚到的这个写者要进入等待队列。而且若后面还有读者到来,则当前写者完成后,要先判断写者等待队列是否为空,若写者等待队列为非空,则应先唤醒处于等待状态的写者,直到写者等待队列为空,再去唤醒处于等待状态的读者。这里要用到两个队列:读者等待队列,写者等待队列。产生java.lang.IllegalMonitorStateException异常:原因是没有注意notify(),notifyAll(),wait()方法的使用条件,如果当前的线程不是此对象锁的所有者,却调用该对象的noti
您可能关注的文档
最近下载
- 北师大版六年级上册数学《百分数的认识》(课件)(共17张PPT).pptx VIP
- 2025村委换届考试题及答案.docx VIP
- 2024《小红书运动户外行业白皮书》.docx
- 推荐浙江省土建安全技术资料台帐(十二本).doc VIP
- 肠套叠护理PPT课件讲解PPT课件.pptx VIP
- (沪教版2024)二年级数学上册新教材解读课件.pptx
- 小儿肛管排气.pptx VIP
- 新解读《GB_T 5271.9 - 2001信息技术 词汇 第9部分_数据通信》最新解读.docx VIP
- 新解读《GB_T 18492-2001信息技术 系统及软件完整性级别》最新解读.docx VIP
- PPT灌肠操作及并发症处理.pptx VIP
文档评论(0)