读者写者问题-3-任务书
- 格式:pdf
- 大小:162.88 KB
- 文档页数:5
学号:课程设计课程名称操作系统学院计算机科学与技术学院专业软件工程班级姓名指导教师2014——2015学年第1学期1《操作系统原理》课程设计指导书课程编号:课程名称:操作系统/Operating System周数/学分:1周/1学分先修课程:高级语言程序设计、汇编语言、数据结构、计算机组成原理适用专业:计算机科学与技术、软件工程开课学院、系或教研室:计算机科学与技术学院一、课程设计的目的通过对操作系统内核实现代码的阅读、修改、设计,理解和掌握复杂的操作系统的工作原理。
二、课程设计的内容和要求1.系统调用学习在Linux中产生一个系统调用以及怎样通过往Linux内核中增加一个新函数从而在该内核空间中实现对用户空间的读写。
这个函数的功能是返回当前的系统时间。
实验条件要求:每人一台Linux主机且有超级用户权限。
2.内核定时器通过研究内核的时间管理算法学习内核源代码。
然后应用这些知识并且使用“信号”建立一种用户空间机制来测量一个多线程程序的执行时间。
实验条件要求:每人一台Linux主机且有超级用户权限。
3.实现生产者消费者(Bounded – Buffer Problem)问题通过研究Linux的线程机制和信号量实现生产者消费者(Bounded Buffer)问题的并发控制。
实验条件要求:每人一台与Linux主机联网的Windows主机,普通用户权限。
4.实现读者写者(Reader-Writer Problem)问题通过研究Linux的线程机制和信号量实现读者写者(Reader-Writer)问题并发控制。
实验条件要求:每人一台与Linux主机联网的Windows主机,普通用户权限。
三、课程设计进度安排四、课程设计说明书与图纸要求应包含如下内容:1.设计题目与要求2.总的设计思想及系统平台、语言、工具等。
3.数据结构与模块说明(功能与流程图)4.源程序5.运行结果与运行情况6.调试记录7.自我评析和总结五、课程设计评分标准注:优(90-100分)、良(80-89分)、中(70-79分)、及格(60-69分)、60分以下为不及格。
附件1:学号:012081034课程设计进程同步模拟设计——读者和题目写者问题学院计算机科学与技术学院专业计算机科学与技术班级计算机科学与技术姓名指导教师2011 年 1 月19 日目录目录 (1)1 设计概述 (4)1.1问题描述: (4)1.1.1规则: (4)1.1.2读者和写者的相互关系: (4)1.2采用信号量机制 (4)1.3 C++语言程序模拟用信号量机制实现生产者和消费者问题 (5)2课程设计目的及功能 (5)2.1 设计目的 (5)2.2 设计功能: (5)3 需求分析,数据结构或模块说明(功能与框图) (5)3.1数据结构 (5)3.2模块说明 (6)3.3开发平台及源程序的主要部分 (6)3.3.1写操作的设计: (6)3.3.2读操作的设计: (7)3.3.3主函数的设计: (9)3.4 功能流程图 (12)4测试用例,运行结果与运行情况分析 (12)4.1测试用例 (12)4.2运行结果 (13)4.3运行情况分析 (14)5自我评价与总结 (15)6 参考文献 (16)课程设计任务书学生姓名:专业班级:计算机科学与技术指导教师:工作单位:计算机科学与技术学院题目: 进程同步模拟设计——读者和写者问题初始条件:1.预备内容:阅读操作系统的进程管理章节内容,对进程的同步和互斥,以及信号量机制度有深入的理解。
2.实践准备:掌握一种计算机高级语言的使用。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.模拟用信号量机制实现读者和写者问题。
2.设计报告内容应说明:⑴课程设计目的与功能;⑵需求分析,数据结构或模块说明(功能与框图);⑶源程序的主要部分;⑷测试用例,运行结果与运行情况分析;⑸自我评价与总结:i)你认为你完成的设计哪些地方做得比较好或比较出色;ii)什么地方做得不太好,以后如何改正;iii)从本设计得到的收获(在编写,调试,执行过程中的经验和教训);iv)完成本题是否有其他的其他方法(如果有,简要说明该方法);v)对实验题的评价和改进意见,请你推荐设计题目。
读者-写者实验报告
姓名:何绍金
班级:自动化1202
学号:201203870408
指导教师:张健
2014年11月11日
一.实验题目
经典的同步问题——读者-写者问题。
二. 实验内容
1.实验要求
(1)允许多个读者同时执行读操作;
(2)不允许读者、写者同时操作;
(3)不允许多个写者同时操作。
2.测试数据文件:
1 R 3 5
2 W 4 5
3 R 5 2
4 R 6 5
5 W 5.1 3
注意:在创建数据文件时,要求在记事本中手工逐个键入数据。
三.实验流程图
实验流程图附在页末。
四.实验小结
通过本次的实验设计,把教材中的理论知识转化为实践,在一定程度上加深了我对读者-写者这类经典的同步问题的理解,同时也提高了我的动手编程和独立思考的能力。
虽然在分析问题的过程中,遇到了很多的疑惑与不解,但同时掌握了很多进程同步的知识。
4--采用“写优先”策略的“读者-写者”问题《操作系统课程设计》任务书设计题目:采用“写优先”策略的“读者-写者”问题指导老师:赵娟课程设计的目的:操作系统课程设计是计算机专业重要的教学环节,它为学生提供了一个既动手又动脑,将课本上的理论知识和实际有机的结合起来,独立分析和解决实际问题的机会。
? 进一步巩固和复习操作系统的基础知识。
? 培养学生结构化程序、模块化程序设计的方法和能力。
? 提高学生调试程序的技巧和软件设计的能力。
? 提高学生分析问题、解决问题以及综合利用 C 语言进行程序设计的能力。
设计内容:用高级语言编写和调试一个采用“写优先”策略的“读者-写者”问题的模拟程序。
设计要求:1. 读者与写者至少包括ID、进入内存时间、读写时间三项内容,可在界面上进行输入 2. 读者与写者均有二个以上,可在程序运行期间动态增加读者与写者 3. 可读取样例数据(要求存放在外部文件中),进行读者/写者、进入内存时间、读写时间的初始化4. 要求将运行过程用可视化界面动态显示,可随时暂停,查看阅览室中读者/写者数目、读者等待队列、写者等待队列、读写时间、等待时间5. 读写策略为:读写互斥、写写互斥、写优先(只要写者到达,就阻塞后续的所有读者,一旦阅览室无人,写者能最快进入阅览室;在写者未出阅读室之前,又有新的读者与写者到达,仍然是写者排在前面)设计结束需提交下列资料:1、课程设计报告。
报告中至少应包括:相关操作系统的知识介绍,程序总的功能说明、程序各模块的功能说明、程序设计的流程图、源程序清单。
2、源程序和编译连接后的可执行程序文件。
时间安排:分析设计贮备阶段(1天)编程调试阶段(7天)写课程设计报告、考核(2天)感谢您的阅读,祝您生活愉快。
《操作系统原理》课程设计任务书题目:读者-写者问题的实现学生姓名:李志旭学号: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 陈映霞”,内容包括任务书、设计文档。
米伊林《十万个为什么》第三站问题和解答摘要:一、米伊林《十万个为什么》第三站简介1.作者背景2.书籍内容简介3.第三站的主题和结构二、第三站问题与解答1.问题的分类和解答方式2.具体问题及解答实例3.解答问题的科学性和通俗性三、书籍的影响和意义1.对我国科普事业的贡献2.对青少年科学教育的促进3.对社会科技普及的推动正文:米伊林《十万个为什么》第三站问题和解答米伊林的《十万个为什么》是一本深受读者喜爱的科普读物,该书分为四站,涵盖了各种科学知识。
在第三站中,米伊林继续以生动有趣的方式解答了众多关于自然和科学的问题。
一、米伊林《十万个为什么》第三站简介米伊林(1896-1983)是我国著名的科普作家,他的《十万个为什么》自1961 年出版以来,一直是我国科普事业的瑰宝。
第三站以自然界为主题,分为天文、气象、地理、动物、植物等多个部分,共有180 多个问题,涵盖了广泛的知识领域。
米伊林通过生动的描绘和浅显易懂的语言,引导读者探索自然界的奥秘。
二、第三站问题与解答第三站的问题涉及多个领域,既有基础科学知识,也有日常生活现象的解释。
米伊林的解答既科学严谨,又通俗易懂,使读者在轻松愉快的氛围中学习科学知识。
例如,对于“为什么太阳白天出来,晚上就不出来了?”这个问题,米伊林解释道:“这是因为地球不停地自转,我们站在地球上看太阳,觉得它东升西落。
到了晚上,我们所在的地球的另一边正好转到太阳的背后,所以看不见太阳。
”再如,对于“为什么会有雷电?”这个问题,米伊林写道:“雷电是大气中的静电现象。
当地球表面的水分蒸发上升,遇到冷空气时,就会形成积雨云。
云层中的水滴和冰晶互相摩擦,使它们带上了相反的电荷。
当电荷积累到一定程度时,就会通过空气放电,产生雷电。
”三、书籍的影响和意义《十万个为什么》第三站为我国科普事业做出了巨大贡献,对青少年的科学教育起到了很好的促进作用。
同时,它还推动了社会科技普及,提高了广大民众的科学素养。
阅读与写作任务安排介绍本文档旨在为您提供一个有效的阅读与写作任务安排,以帮助您提高阅读和写作技能。
以下是一些建议和策略,让您能更好地应对这些任务。
阅读任务安排1. 设置明确的目标:在开始阅读之前,明确您的阅读目标。
这可以是获取具体知识,了解不同观点,或浏览一篇文章的主要观点等。
2. 预览文章:在全面阅读之前,快速浏览文章的标题、子标题、引言和结论部分。
这有助于您了解文章主旨和结构,以便更有针对性地进行阅读。
3. 确定关键信息:在细读文章时,注意关键信息,例如作者的主要观点、论据和支持细节。
可以使用标记策略,如高亮或书签,以便稍后参考。
4. 反思和总结:在阅读结束后,花一些时间反思所读内容,并总结文章的主要观点和结论。
写作任务安排1. 计划与组织:在开始撰写文档之前,进行充分的计划和组织。
确定您的写作目标、主题和结构。
创建一个大纲或草稿,以便在写作过程中更好地组织思路。
2. 引出观点:在引言部分引出您的观点,并阐述您的写作目的。
简明扼要地介绍您将要讨论的主题,并给读者一个清晰的导向。
3. 条理清晰:确保文章中的每个段落都有清晰的主题句,并使用恰当的支持细节和论据来支持每个观点。
段落之间应有过渡句,以确保文章的连贯性。
4. 符合结构:使用适当的段落结构和标点符号,使文章具备良好的逻辑结构和流畅性。
这包括使用标题、段落分隔符和标点符号来明确不同段落和思想之间的区别。
5. 仔细校对:在完成写作后,花一些时间进行仔细的校对。
检查拼写、语法和标点符号错误,并确保文章通顺、连贯,并表达您想要传达的观点。
总结通过遵循上述阅读与写作任务安排,您可以更有效地完成阅读和写作任务。
记住要明确目标、预览文章、反思总结阅读内容,并进行计划、组织、引出观点、条理清晰和仔细校对写作。
这些策略将帮助您提高阅读和写作技能,取得更好的结果。
---以上是如何安排阅读与写作任务的一些建议和策略。
希望对您有所帮助!。
读者常遇问题解答1.图书馆的开放时间?答:请看图书馆一楼大厅电梯间的宣传栏或参见图书馆网站里“入馆指南”。
2. 自己带手提电脑可以在图书馆上网吗?答:可以。
图书馆各楼层有开放的WIFI,分别是lzzytsgXX(XX是楼层序号,如:01、02、03......)。
3.使用图书馆的电脑收费吗?答:图书馆的电脑全部免费使用。
进门刷卡只是为了做统计。
4.校园卡(借书证)丢失后怎样补办?答:校园卡(借书证)丢失后应立刻到图书馆一楼综合服务部挂失,或者到学院学生服务中心挂失。
然后补办校园卡。
校园卡如果在补办前找回,可以解除失挂。
5.我有许多关于图书馆的问题不清楚,可去哪询问?答:您可到图书馆一楼的综合服务部向工作人员询问。
6.如果我对图书馆的服务有意见将如何投诉?答:您可到图书馆一楼综合服务部进行投诉。
也可以到图书馆205馆长办公室直接向馆长投诉。
7.我想了解图书馆的相关规定,去哪了解?答:您可以通过点击学院网首页里的“图书文献”,进入“图书馆网站”,点击“读者服务”栏目中的“规章制度”即可,或者直接到图书馆一楼综合服务部询问。
8.读者在网上能不能查找图书馆是否有“某某”书刊?答:可以。
通过点击学院网首页里的“图书文献”进入“图书馆网站”点击“读者服务”栏目中的“馆藏检索”,输入相应的检索项(如:书名、分类号等)即可查询到所需要的图书信息。
9. 各类图书的借阅时间是多少?答:(1)教职工借期:专业参考书5个月、文学书、过刊2个月;(2)学生借期:1个月。
10.各类图书的借阅册数是多少?答:(1)教职工每人可同时借阅15册;(2)学生每人可同时借阅6册。
11. 借书时应该注意哪些问题?答:借书前要检查图书是否被涂划、湿水、污损、缺页等情况,如有应及时向工作人员说明。
12.图书到期了还想续借,如何办理?答:图书到期前须带上图书,到对应的书库办理续借手续。
13.如果我只是想还书,觉得上书库去还比较麻烦,有没有更方便的办法?答:有。
读者写着问题课程设计一、课程目标知识目标:1. 学生能理解并掌握“读者写着问题”的概念,明确其在语文写作中的应用。
2. 学生能分析并评价一篇作文中的“读者写着问题”,提出改进意见。
3. 学生能了解不同文体的写作特点,结合“读者写着问题”进行创作。
技能目标:1. 学生能够运用“读者写着问题”的方法,提高自己的写作能力,使文章更具吸引力。
2. 学生能够通过小组讨论,与他人合作完成一篇作文,提高团队协作能力。
3. 学生能够运用所学知识,对一篇作文进行修改和润色,提升文章质量。
情感态度价值观目标:1. 学生对写作产生兴趣,树立自信心,勇于表达自己的观点。
2. 学生认识到“读者写着问题”在写作中的重要性,培养良好的写作习惯。
3. 学生在写作过程中,学会换位思考,关注读者需求,提高人际沟通能力。
本课程针对初中年级学生,结合语文写作教学实际,以“读者写着问题”为主题,旨在提高学生的写作水平,培养其良好的写作习惯和团队协作能力。
课程目标具体、可衡量,便于教师进行教学设计和评估。
通过本课程的学习,学生将能够更好地应对各类写作任务,提高自己的语文素养。
二、教学内容1. 理论知识:- “读者写着问题”的定义与作用- 不同文体中的“读者写着问题”特点- 如何在写作中关注读者需求,提高文章吸引力2. 实践训练:- 分析优秀作文中的“读者写着问题”应用- 学生现场写作,运用“读者写着问题”方法- 小组合作修改作文,提升文章质量3. 教学案例:- 以教材中相关章节的课文为例,分析“读者写着问题”的应用- 选取学生习作,进行课堂讲评,指出优缺点,并提出改进建议4. 教学进度安排:- 第一课时:导入“读者写着问题”概念,分析教材相关章节内容- 第二课时:优秀作文案例分析,学生现场写作实践- 第三课时:小组合作修改作文,总结“读者写着问题”在写作中的应用教学内容根据课程目标进行选择和组织,确保科学性和系统性。
以教材为依据,结合实际教学需求,制定详细的教学大纲,明确教学内容的安排和进度。
操作系统原理课程设计任务书
学院名称:数学与计算机学院课程代码:_8404061_
专业:年级:
一、设计题目
读者写者问题
二、主要内容
编写程序解决读者写者问题,并测试。
三、具体要求及应提交的材料
在Windows2000环境下,创建一个控制台进程,此进程包含n个线程。
用这n个线程来表示n个读者或写者。
每个线程按相应测试数据文件(后面介绍)的要求进行读写操作。
用信号量机制分别实现读者优先和写者优先问题。
读者-写者问题的读写操作限制(包括读者优先和写者优先)
1)写-写互斥:不能有两个写者同时进行写操作
2)读-写互斥:不能同时有一个线程在读,而另一个线程在写。
3)读-读允许:可以有一个或多个读者在读。
读者优先的附加限制:如果读者申请进行读操作时已有另一个读者正在进行读操作,则该读者可直接开始读操作。
写者优先的附加限制:如果一个读者申请进行读操作时已有另一个写者在等待访问共享资源,则该读者必须等到没有写者处于等待状态后才能开始读操作。
运行结果显示要求:要求在每个线程创建、发出读写申请、开始读写操作和结束读写操作时分别显示一行提示信息,以确定所有处理都遵守相应的读写操作限制。
测试数据文件格式:
测试数据文件包括n行测试数据,分别描述创建的n个线程是读者还是写者,以及读写操作的开始时间和持续时间。
每行测试数据包括四个字段,每个字段间用空格分隔。
第1个字段为正整数,表示线程的序号。
第2个字段表示线程的角色,R表示读者,W表示写者。
第3个字段为一个正数,表示读写开始时间:线程创建后,延迟相应时间(单位为秒)后发出对共享资源的读写申请。
第4个字段为一个正数,表示读写操作的延迟时间。
当线程读写申请成功后,开始对共享资源进行读写操作,该操作持续相应时间后结束,释放该资源。
下面是一个测试数据文件的例子(在记事本手工录入数据):
1R35
2W45
3R52
4R65
5W5.13
课程设计分析:
可以将所有读者和所有写者分别存于一个读者等待队列和一个写者等待队列中,每当读允许时,就从读者队列中释放一个或多个读者线程进行读操作;每当写允许时,就从写者队列中释放一个写者线程进行写操作。
1.读者优先:
读者优先指的是除非有写者在写文件,否则读者不需要等待。
所以可以用一个整数变量Read_count记录当前的读者数目,用于确定是否需要释放正在等待的写者进程(当Read_count=0时,表明所有的读者读完,需要释放写者等待队列中的一个写者)。
每当一个读者开始读文件时,必须修改Read_count变量。
因此需要一个互斥对象mutex来实现对全局变量Read_count修改时的互斥。
另外,为了实现写-写互斥,需要增加一个临界区对象Write。
当写者发出写请求时,必须申请临界区对象的所有权。
通过这种方法,可以实现读-写互斥,当Read_count=1时(即第一个读者到来时),读者线程也必须申请临界区对象的所有权。
当读者拥有临界区的所有权时,写者阻塞在临界区对象Write上。
当写者拥有临界区的所有权时,第一个读者判断完”Read_count==1”后阻塞在Write上,其
余的读者由于等待对Read_count的判断,阻塞在mutex上。
2.写者优先:
写者优先与读者优先相类似。
不同之处在于一旦一个写者到来,它应该尽快对文件进行写操作,如果有一个写者在等待,则新到来的读者不允许进行读操作。
为此应当填加一个整形变量Write_count,用于记录正在等待的写者的数目,当Write_count=0时,才可以释放等待的读者线程队列。
为了对全局变量Write_count实现互斥,必须增加一个互斥对象mutex3。
为了实现写者优先,应当填加一个临界区对象read,当有写者在写文件或等待时,读者必须阻塞在read上。
读者线程除了要对全局变量Read_count实现操作上的互斥外,还必须有一个互斥对象对阻塞read这一过程实现互斥。
这两个互斥对象分别命名为mutex1,mutex2。
相关WindowsAPI说明:(请同学们参考MSDN)
1.CreateThread:创建一个在调用进程的地址空间中执行的线程。
2.ExitThread
3.Sleep:对指定的时间间隔挂起当前的执行线程
4.CreateMutex:创建有名或者无名的互斥对象
5.ReleaseMutex:
6.WaitForSingleObject:当发生(1)指定对象处于信号态(2)超时则该函
数返回
7.WaitForMultipleObject:任意一个或全部指定对象处于信号态或超时
间隔已过时,返回
8.CreateSemapore:创建一个有名或无名信号对象。
9.ReleaseSemapore:
10.InitializeCriticalSection:初始化临界区对象
11.EnterCriticalSection:等待指定临界区对象的所有权。
当调用线程被
赋予所有权时,返回。
LeaveCriticalSection:该函数释放指定临界区对象的所有权。
课程设计要求:
1.分析设计要求,给出解决方案(要说明设计实现所用的原理,采用的数
据结构);
2.画出程序的基本结构框图和流程图;
3.对程序的每一部分要有详细的设计分析说明;
4.程序执行的每个步骤要有具体的提示内容或输出;
5.源代码格式规范,注释不少于三分之一;
6.设计合适的测试用例,对得到的运行结果要有分析;
7.设计中遇到的问题,设计的心得体会。
设计结束后,每位同学必须上交如下材料:
1.《课程设计说明书》打印稿一份;
2.《课程设计说明书》电子文档及课程设计的程序源代码刻盘
四、主要技术路线提示
首先选择自己熟悉的程序设计语言,然后分析问题,画出流程图,再进行详细编码,实现相应的功能。
最后要对软件进行测试。
五、进度安排
共计2周时间,20个机时,建议进度安排如下:
1.选题和需求分析2学时
2.查阅资料(图书、期刊资料或上网查阅相关资料)2学时
3.构造框架(系统结构设计) 1.5学时
4.编程上机,调试9学时
5.现场验收(根据程序提问)0.5学时
6.书写课程设计报告5学时
当然,仅靠课内时间是不够的,希望同学们课外多花时间编程学习。
六、推荐参考资料(不少于3篇)
1.张尧学等编著.计算机操作系统教程.北京:清华大学出版社,2006.02 2.汤子瀛等编著.计算机操作系统.西安:西安电子科技出版社,1996.12 3.陈向群编著.操作系统教程.北京:北京大学出版社,2007.01
4.罗宇等编著.操作系统课程设计.北京:机械工业出版社,2005.9
指导教师签名日期年月日
系主任审核日期年月日。