读者-写者问题说明书

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《操作系统原理》课程设计任务书

题目:读者-写者问题的实现

学生姓名:李志旭学号:13740113 班级:_13级软件工程_

题目类型:软件工程(R)指导教师:陈文娟、马生菊一、设计目的

学生通过该题目的设计过程,掌握读者、写者问题的原理、软件开发方法并提高解决实际问题的能力。

二、设计任务

编写程序实现读者优先和写者优先问题:

读者-写者问题的读写操作限制(包括读者优先和写者优先)

写-写互斥:不能有两个写者同时进行写操作

读-写互斥:不能同时有一个线程在读,而另一个线程在写。

读-读允许:可以有一个或多个读者在读。

三、设计要求

1.分析设计要求,给出解决方案(要说明设计实现所用的原理、采用的数

据结构)。

2.设计合适的测试用例,对得到的运行结果要有分析。

3.设计中遇到的问题,设计的心得体会。

4.文档:课程设计打印文档每个学生一份,并装在统一的资料袋中,资料

袋前面要贴有学校统一的资料袋封面。

四、提交的成果

1. 课程设计说明书内容包括

(1) 封面(学院统一印制);

(2) 课程设计任务书;

(3) 中文摘要150字;关键词3-5个;

(4) 目录;

(5) 正文;(设计思想;各模块的伪码算法;函数的调用关系图;测试结果等)

(6) 设计总结;

(7) 参考文献;

(8) 致谢等。

注:每一部分是单独的一章,要另起一页写。

2. 排版要求

(1) 所有一级标题为宋体三号加粗(即上面写的2~8部分,单独一行,居中)

(2) 所有二级标题为宋体四号加粗(左对齐)

(3) 所有三级标题为宋体小四加粗(左对齐)

(4) 除标题外所有正文为宋体小四,行间距为固定值22磅,每个段落首行缩进2字符

(5) 目录只显示3级标题,目录的最后一项是无序号的“参考文献资料”。

3. 其他要求(班长负责,务必按照以下方式建文件夹)

(1) 以班级为单位刻录光盘一张,光盘以班级命名,例如:“10级计算机科学与技术1班”;

(2) 光盘内每人一个文件夹,以学号姓名命名——如“10730101 陈映霞”,内容包括任务书、设计文档。

五、各阶段时间安排(共2周)

根据教学计划安排,于2014年12月8日~2014年12月19日安排为期二周的操作系统课程设计。

六、考勤、纪律及注意事项

1.每日准时教室设计,不得无故缺席、早退。

2.独立、按时完成课程设计任务,准时上交资料。

七、主要参考文献

1. 汤子瀛,哲凤屏.《计算机操作系统》[M].西安:西安电子科技大学学出版社.1996年

2. 王万森.《计算机操作系统原理》[M].北京:高等教育出版社.2001年

3. 周长林,左万历. 《计算机操作系统教程》[M].北京:高等教育出版社.1994年

4. 黄廷辉,王宇英.《计算机操作系统实践教程》[M].北京:清华大学出版社. 2007年5月

5. 殷兆麟.《计算机操作系统》[M].北京:清华大学出版社.2007年3月

6. 张尧学,史美林,张高.《计算机操作系统教程》[M].北京:清华大学出版社.1993年

摘要

读者写者问题,是指保证一个writer进程必须与其他进程互斥地访问共享对象的同步问题。

读者写者问题可以这样的描述,有一群写者和一群读者,写者在写同一本书,读者也在读这本书,多个读者可以同时读这本书,但是,只能有一个写者在写书,并且,读者必写者优先,也就是说,读者和写者同时提出请求时,读者优先。当读者提出请求时需要有一个互斥操作,另外,需要有一个信号量S来当前是否可操作。

信号量机制是支持多道程序的并发操作系统设计中解决资源共享时进程间的同步与互斥的重要机制,而读者写者则是这一机制的一个经典范例。

关键字:信号量;读者优先;写者优先;线程;互斥。

目录

1概述 (1)

1.1设计内容 (1)

1.2实验目的 (2)

1.3设计思想 (2)

1.4设计方案 (3)

2.总体设计 (4)

2.1系统总体框架 (4)

2.2函数调用关系图 (5)

2.3数据结构定义 (5)

3详细设计 (7)

3.1读者进程优先算法 (7)

3.2写者进程优先算法 (8)

4调试分析 (10)

4.1程序分析 (10)

4.2调试结果 (10)

4.3调试出现的问题 (12)

总结 (13)

参考文献 (14)

致谢 (15)

附录 (16)

1概述

1.1 设计内容

读者-写者问题可以这样的描述,有一群写者和一群读者,写者在写同一本书,读者也在读这本书,多个读者可以同时读这本书,但是,只能有一个写者在写书,并且,读者必写者优先,也就是说,读者和写者同时提出请求时,读者优先。当读者提出请求时需要有一个互斥操作,另外,需要有一个信号量S来当前是否可操作。

读者-写者问题(Readers-Writers problem)也是一个经典的并发程序设计问题,是经常出现的一种同步问题。计算机系统中的数据(文件、记录)常被多个进程共享,但其中某些进程可能只要求读数据(称为读者Reader);另一些进程则要求修改数据(称为写者Writer)。就共享数据而言,Reader和Writer是两组并发进程共享一组数据区,要求:

(1)允许多个读者同时执行读操作;

(2)不允许读者、写者同时操作;

(3)不允许多个写者同时操作。

Reader和Writer的同步问题分为读者优先、弱写者优先(公平竞争)和强写者优先三种情况,它们的处理方式不同。

(1)读者优先。对于读者优先,应满足下列条件:

如果新读者到:

①无读者、写者,新读者可以读;

②有写者等待,但有其它读者正在读,则新读者也可以读;

③有写者写,新读者等待。

如果新写者到:

①无读者,新写者可以写;

②有读者,新写者等待;

③有其它写者,新写者等待。

信号量机制是支持多道程序的并发操作系统设计中解决资源共享时进程间的同步与互斥的重要机制,而读者写者问题则是这一机制的一个经典范例。

与记录型信号量解决读者—写者问题不同,信号量机制它增加了一个限制,即最多允许RN个读者同时读。为此,又引入了一个信号量L,并赋予初值为RN,

相关文档
最新文档