操作系统课程设计报告

操作系统课程设计报告

ID:9188829

大小:199.80 KB

页数:41页

时间:2018-04-21

操作系统课程设计报告_第1页
操作系统课程设计报告_第2页
操作系统课程设计报告_第3页
操作系统课程设计报告_第4页
操作系统课程设计报告_第5页
资源描述:

《操作系统课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、操作系统课程设计报告题目:生产者-消费者问题的设计与实现学号:姓名:任课教师:2016年12月41摘要生产者-消费者问题是计算机操作系统中并发进程内在关系的一种抽象,是典型的进程同步问题。在操作系统中,生产者进程可以是计算进程、发送进程;而消费者进程可以是打印进程、接收进程等等。解决好生产者--消费者问题就解决好了一类并发进程的同步问题。该课程设计在理解和分析了生产者-消费者问题的前提下,对算法的实现在总体上进行了设计,包括在对算法分模块设计,并对各个模块的算法思想通过流程图表示,分块编写代码,并进行测试,最后进行程序的测

2、试,在设计思路上严格按照软件工程的思想执行,确保了设计和实现的可行,可信。代码实现采用C语言。关键词:生产者-消费者问题、互斥、同步41目录第一章绪论41.1课程设计目的41.2课程设计内容41.3相关知识41.3.1进程间的制约关系51.3.2进程互斥51.3.3进程同步6第二章生产者-消费者问题需求分析72.1环境需求72.2功能需求7第三章生产者-消费者问题的设计153.1数据结构153.2功能模块17第四章生产者-消费者问题的实现194.1功能模块的实现194.2流程图25第五章运行示例及结果分析29第六章个人体会

3、31第七章参考文献34第八章附录3541第一章绪论1.1课程设计目的“操作系统”是计算机专业的核心专业课,“操作系统课程设计”是理解和巩固操作系统基本理论、原理和方法的重要实践环节。本课程通过设计实现一个综合作业,加深对操作系统原理的理解,提高综合运用所学知识的能力,培养学生独立工作和解决问题的能力,取得设计与调试的实践经验,为今后进一步从事计算机系统软件和应用软件的分析、研制和开发打下良好的基础。1.2课程设计内容课程设计的任务是采用C语言编程实现用信号量机制解决生产者和消费者问题。信号量和PV操作不仅可以解决进城互斥问

4、题,而且是实现进程同步的有力工具。在协作进程之间,一个进程的执行依赖于协作进程的信号或消息,在尚未得到来自协作进程的信号消息时则等待,直至信号或消息到达时才被唤醒。1.3相关知识在多道程序的环境中,系统中的多个进程可以并发执行,41同时它们又要共享系统中的资源,由此诸进程间会产生错综复杂的相互制约的关系。1.1.1进程间的制约关系(1)竞争关系源于资源共享,多个不存在逻辑关系的进程因共享资源而产生制约关系。若一个进程要求使用某一资源,而该资源正被另一个进程使用,并且这一资源不允许两个进程同时访问,那么该进程只有等待,只有这

5、一资源释放后才能使用。(2)协作关系源于进程间的协作。一组进程为完成共同任务分工协作,各进程都独立以不可预知速度推进,在执行的先后次序就有约束,在一些关键点上协调工作。若一个进程运行到某关键点时,在尚未收到另一协作进程发来的信息前应阻塞自己,等协作进程发来消息后方可继续执行。进程间这种相互依赖又相互制约,相互协作又相互竞争的关系,主要表现在进程互斥和进程同步两方面1.1.2进程互斥(1)临界资源一次仅允许一个进程使用的资源称为临界资源。(2)临界区41每个进程中访问临界资源的那段程序段称为临界区。(临界段)两个进程必须互斥

6、的进入临界区,否则就可能出与时间有关的错误.(3)进程互斥进程应互斥访问同一临界资源,即进程应互斥的进入临界区。当一进程正在访问某临界区时,就不允许其它进程进入,试图进入临界区的另一进程必须等待。进程之间的这种相互制约的关系称为进程互斥。(4)进入临界区的准则每次至多有一个进程进入临界区内执行;若已有进程在临界区中,试图进入此临界区的其他进程应等待;进入临界区的进程应在有限时间内退出,以便让等待队列中的一个进程进入。1.1.1进程同步互斥的概念来自于进程对临界资源的竞争,同步来源于多个进程的协作。在人类社会中竞争与协作是永

7、恒的。进程同步:几个进程相互协作,一个进程到达某点后,若另一进程尚未完成某些操作,就必须停下来等待,只有等另一进程的这些操作完成了才能继续执行。协作进程间需要在某些关键点上排定执行先后次序而等待、传递信号或消息所产生的协作关系称为进程同步。41第一章生产者-消费者问题需求分析1.1环境需求硬件:台式或者笔记本电脑软件:1.window7系统。2.MicrosoftVisualC++6.01.2功能需求解决PN个生产者,CN个消费者,公用M个环形缓冲区的问题,生产者与消费者存在同步关系,而且各个生产者之间、各个消费者之间存在

8、互斥关系,他们必须互斥地访问缓冲区。生产者-消费者(producer-consumer)问题,也称作有界缓冲区(bounded-buffer)问题,两个进程共享一个公共的固定大小的缓冲区。其中一个是生产者,用于将消息放入缓冲区;另外一个是消费者,用于从缓冲区中取出消息。问题出现在当缓冲区已经满了,而此时

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。