操作系统课程设计-进程同步模拟设计

操作系统课程设计-进程同步模拟设计

ID:17453839

大小:281.50 KB

页数:11页

时间:2018-09-01

操作系统课程设计-进程同步模拟设计_第1页
操作系统课程设计-进程同步模拟设计_第2页
操作系统课程设计-进程同步模拟设计_第3页
操作系统课程设计-进程同步模拟设计_第4页
操作系统课程设计-进程同步模拟设计_第5页
资源描述:

《操作系统课程设计-进程同步模拟设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、武汉理工大学计算机科学与技术学院《操作系统》课程设计学号:0120810340614课程设计题目进程同步模拟设计——生产者和消费者问题学院计算机科学与技术学院专业计算机科学与技术班级0806姓名张方纪指导教师孙玉芬2010年1月20日10武汉理工大学计算机科学与技术学院《操作系统》课程设计课程设计任务书学生姓名:张方纪专业班级:计算机0806指导教师:孙玉芬工作单位:计算机科学与技术学院题目:进程同步模拟设计——生产者和消费者问题初始条件:1.预备内容:阅读操作系统的进程管理章节内容,对进程的同步和互斥,以及信号量机制度有深入的理解。2.实践准备:掌

2、握一种计算机高级语言的使用。要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.模拟用信号量机制实现生产者和消费者问题。2.设计报告内容应说明:⑴需求分析;⑵功能设计(数据结构及模块说明);⑶开发平台及源程序的主要部分;⑷测试用例,运行结果与运行情况分析;⑸自我评价与总结:i)你认为你完成的设计哪些地方做得比较好或比较出色;ii)什么地方做得不太好,以后如何改正;iii)从本设计得到的收获(在编写,调试,执行过程中的经验和教训);iv)完成本题是否有其他方法(如果有,简要说明该方法);时间安排:设计安排一周:周1、周2

3、:完成程序分析及设计。周2、周3:完成程序调试及测试。周4、周5:验收、撰写课程设计报告。(注意事项:严禁抄袭,一旦发现,一律按0分记)指导教师签名:年月日系主任(或责任教师)签名:年月日10武汉理工大学计算机科学与技术学院《操作系统》课程设计进程同步模拟设计——生产者和消费者问题1课设任务本课程设计的任务在于,通过编写一个具体的有关操作系统进程同步互斥的经典问题,加强对操作系统实现进程间同步与互斥的机制的理解。同时培养提出问题、发现知识、使用工具、解决问题的能力。具体地,我们要编制出一个程序,利用PV原语以及进程创建、同步、互斥、销毁等相关的系统调

4、用来模拟“生产者—消费者”问题。2背景介绍2.1“生产者—消费者”问题(theproducer-consumerproblem)问题描述:一组生产者向一组消费者提供消息,它们共享一个有界缓冲区n,生产者向其中投放消息,消费者从中取得消息。规则:u对于生产者进程:产生一个数据,当要送入缓冲区时,要检查缓冲区是否已满,若未满,则可将数据送入缓冲区,并通知消费者进程;否则,等待;u对于消费者进程:当它去取数据时,要看缓冲区中是否有数据可取,若有则取走一个数据,并通知生产者进程,否则,等待。u缓冲区是个临界资源,因此,诸进程对缓冲区的操作程序是一个共享临界区

5、,所以,还有个互斥的问题。问题分析:该问题涉及到操作系统进程管理当中的两个重要概念——同步和互斥。同步,表现在生产者和消费者需要协同工作,步调不能拉开太大(由缓冲区大小n决定,n越大,缓冲空间越大,步调可以拉得越开;n=1时,必须是生产一个,消费一个,生产者和消费者就完全同步了)。当步调差距超过极限时,走在前面的当前进程(生产者)调用P原语时由于资源耗尽,被阻塞;步调靠后的继续向前推进。由此实现同步。互斥,表现在生产者与消费者、生产者与生产者、消费者与消费者任何两个成员之间必须互斥地使用缓冲区。当有一个成员进入缓冲区存/取产品时,其他成员将被关在门外

6、排队等候(被阻塞);当完毕时,通知队首成员进入。由操作系统理论可知,我们需要三个信号量,分别命名full,empty,mutex,来分别代表消费者的可用资源数、生产者的可用资源数、缓冲区是否可用。初值:full=0(消费者无资源可用),empty=N(生产者有N个资源可用,N代表缓冲区大小),mutex=1(缓冲区可用)。要模拟多个进程的并发,我们要使用一个系统调用,使多个函数或程序同时地执行。鉴于VC下这样的函数太过复杂,Linux下笔者暂未找到,因此我们使用Toyix系统提供的一个系统调用函数:cobegin。其说明如下:10武汉理工大学计算机科

7、学与技术学院《操作系统》课程设计cobegin原型:intcobegin();功能:创建多个子进程并发执行函数。参数:函数名用0结束,例如:cobegin(f1,f2,f3,0);返回值:创建子进程的个数。说明:所有子进程共享数据段,主进程撤销,所有子进程将被撤销。我们于下一小节具体讲述有关Toyix的背景知识。1.1Toyix简介1.1.1概述Toyix是我国著名计算机教育家王爽老师开发的一个专门用于操作系统基础理论教学的软件。该软件很好的解决了目前存在于计算机专业操作系统课程教学中无法使学习者获得实践体验和对理论直观的了解的问题。以下是Toyix

8、软件的重要意义和特点的描述:(该软件下载地址www.toyix.net)传统的操作系统教学中存在的问题:u重

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

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

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