




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
江苏大学操作系统大作业 读者和写者的问题姓名: 秦友才 班级: 计算机1502 学号: 3140602055 操作系统大作业:读者和写者的问题1、 问题的提出一个数据对象被若干个并发进程所共享,且其中一些进程只要求读该数据对象的内容,而另一些进程则要求写操作。即一个是写者一个是读者。写者任意时刻只能有一个,而读者则允许有多个,多个读者之间不会干扰,而写者就不能同时运行。所以对共享资源的读写的限制条件是:1) 允许多个读者可以同时对文件执行读操作;2) 只允许一个写者往文件中写信息;3) 任一写者在完成写操作之前不允许其他读者或写者工作;使用信号量来处理读者和写者的问题。有读者和写者两组并发进程,共享一个文件,当两个或以上的读进程同时访问共享数据时不会产生副作用,但若某个写进程和其他进程(读进程或写进程)同时访问共享数据时则可能导致数据不一致的错误。2、 问题的分析设计优先策略满足:1. 读者优先,即当读者进行读的时候,后续的写者必须等待。直到所有的读者都读完后写者才可以去进行写操作。2. 写者优先,即当一个写者到来的时候,只有在写者之前的读者才会执行,写者之后的都之后将会被阻塞。3. 公平策略。满足规则,在读序列中,如果有写者在等待,不允许新来的读者执行,在写者结束时,所有的都读者都有比写者更高的优先级。通过信号量的操作控制顺序,下面对前两种策略进行分析。3、 解决算法读者优先,只要有读者经行都读操作,则写者一直等待。如果有新的读者到来,写者依然要等待。一直等待读者全部完成,才会去执行写者。教科书上给出的例子就是读者优先的。如果新读者到:无读者、写者,新读者可以读;有写者等待,但有其它读者正在读,则新读者也可以读;有写者写,新读者等待。如果新写者到:无读者,新写者可以写;有读者,新写者等待;有其它写者,新写者等待。只要解决写者和写者,第一个读者和写者的互斥问题。引入一个信号量Wmutex,来解决这个互斥,通过Rcount来记录当前正在读文件的读者个数,只要读者个数不为零,写者就没有权利写。通过一个Rmutex来解决修改Rcount时候读者和读者的问题。Semaphore wmutex,rmutex=1; Int rcount=0Void reader()P(rmutex);If(rconut=0) P(wmutex);Rcount+;V(rmutex);/读数据P(rmutex);Rcount-If(rconut=0) V(wmutex);V(rmutex);Void Write()P(wmutex);DoWriting();V(wmutex);写者优先,读者优先对于写者来书实在是太苛刻了,如果有读者就不能写。采用写者优先在一个写者到达时如果有正在工作的读者,那么该写者只要等待正在工作的读者完成,而不必等候其后面到来的读者就可以进行写操作。注意,该算法当一个写者在等待时,后到达的读者是在写者之后被挂起,而不是立即允许进入。为了解决以上问题,写者优先的设计思想是在一个写者到达时如果有正在工作的读者,那么该写者只要等待正在工作的读者完成,而不必等候其后面到来的读者就可以进行写操作。注意,该算法当一个写者在等待时,后到达的读者是在写者之后被挂起,而不是立即允许进入。在读者优先的算法的基础上增加了一个排队信号量read,读、写进程在每次操作前都要等待read信号量。写者优先的程序设计如下:int Rcount=0;semaphore rmutex=1;semaphore write=1; semaphore add_reader=1; void reader() P(add_reader); P(rmutex); Rcount+; if Rcoun=1 P(write); V(rc_mutex); V(add_reader); /读操作P(Rmutex); Rcount-; if Rcount=0 V(write); V (Rmutex); void writer()P(add_reader);P(Rmutex); P(write);/写操作V(write); V(add_reader); 4、 流程分析读者优先写者优先5、 分析和总结刚接到这个题目的时候很茫然,不知道该做什么。在脱了很久之后终于面临要收作业的事实后,我到网上找了很多相关的东西,参考了很多
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年医用放射诊断设备项目申请报告
- 2025福建漳州漳州市芗城区行政事业单位国有资产中心招募2人模拟试卷带答案详解
- 2025年太阳能电池背膜项目提案报告模板
- 特殊食品生产声明书7篇
- 2025湖北荆州市石首市第二批校园招聘教师6人考前自测高频考点模拟试题及参考答案详解
- 网络平台商家责任承诺书3篇
- 运动会上感人瞬间记事文(6篇)
- 我的童话城堡世界作文4篇
- 2025届广东省江门市高三下学期一模英语试题(解析版)
- 与时光同行我的成长日记8篇
- 2025年传媒行业招聘考试模拟题及专业知识解析
- 竞彩考试题目及答案
- 门店客诉处理课件
- 教科版(2024)科学二年级上册第一单元《造房子》测试卷(含答案)
- 2025四川省监理员考试题库及答案解析
- 2025成人高考专升本考试政治试题及答案
- 中药制剂进修汇报
- 2025全国中学生天文知识竞赛决赛试题及答案
- 第4课 科技力量大 第三课时(课件)2025-2026学年道德与法治三年级上册统编版
- 学生成长班会课件
- 毕节市七星关区社区工作者招聘笔试真题2024
评论
0/150
提交评论