操作系统生产者与消费者课程设计报告.docVIP

  • 13
  • 0
  • 约7.56千字
  • 约 12页
  • 2023-10-14 发布于湖北
  • 举报

操作系统生产者与消费者课程设计报告.doc

PAGE 1 课程设计报告 课程名称: 操作系统课程设计 设计题目: 生产者消费者问题 系 别: 计算机系 专 业: 计算机科学与技术 组 别: 第二组 学生姓名: 学 号 起止日期:2010年 7月18日~ 2010年7月23日 指导教师: 目 录 TOC \o 1-2 \h \u 19822 1.概述 2 8147 1.1 问题描述 2 22570 1.2 开发计划 2 1791 1.3 开发环境及开发工具 3 32670 2.需求分析 3 8280 2.1 设计任务 3 4248 2.2 设计思想 3 12804 2.3 设计要求 3 31465 3.概要设计 4 19888 3.1 方法及原理 4 28198 3.2 流程图 4 7889 4.详细设计 5 351 4.1 数据结构及信号量说明 5 15351 4.2 部分代码 6 26009 5.测试结果 9 7143 6.结果分析 10 24846 7.总结和体会. 10 5204 致谢 10 386 参考文献 10 1.概述 1.1 问题描述 以生产者/消费者模型为依据,在Windows XP环境下创建一个控制台进程, 在该进程中创建n个线程模拟生产者和消费者,实现进程(线程)的同步与互斥。 1.2 开发计划 第一天:完成整体的规划工作,用什么方法,能完成什么工作,如何设计 构造方法; 第二天:完成操作界面的设计与编码,设计一个美观,易于操作的界面; 第三天:完成并发设计内核的结构与实现工作; 第四天:基本完成程序设计工作; 第五天:完成代码的优化工作,添加一些功能; 第六天:完成实验报告; 第七天:交给老师审核。 1.3 开发环境及开发工具 硬件:普通PC386以上微机;一张软盘或U盘。 软件:操作系统:Windows 2000/XP。 开发工具:VC++6.0。 VC是一个集成开发环境,其中包含了Windows SDK 所有工具和定义。 2.需求分析 2.1 设计任务 (1)掌握基本的同步与互斥算法,理解生产者消费者模型。 (2)学习使用Windows 2000/XP中基本的同步对象,掌握相关API使用方法。 (3)了解Windows 2000/XP中多线程的并发执行机制,实现进程同步与互斥。 2.2 设计思想 生产者—消费者问题是一种同步问题的抽象描述。 计算机系统中的每个进程都可以消费或生产某类资源。当系统中某一进程使用某一资源时,可以看作是消耗,且该进程称为消费者。 而当某个进程释放资源时,则它就相当一个生产者。 在同一时刻只能有一个生产者或一个消费者使用缓冲区,有互斥信号量可以控制各个生产者和消费者之间互斥,使得生产和消费的工作能够有序的进行,而不至于发生死锁。 通过一个有界缓冲区(用数组来实现,类似循环队列)把生产者和消费者联系起来。假定生产者和消费者的优先级是相同的,只要缓冲区未满,生产者就可以生产产品并将产品送入缓冲区。类似地,只要缓冲区未空,消费者就可以从缓冲区中去走产品并消费它。应该禁止生产者向满的缓冲区送入产品,同时也应该禁止消费者从空的缓冲区中取出产品,这一机制有生产者线程和消费者线程之间的互斥关系来实现。 2.3 设计要求 每个生产者和消费者对有界缓冲区进行操作后,即时显示有界缓冲区的全部内容、当前指针位置和生产者/消费者线程的标识符。 生产者和消费者各有两个以上。 多个生产者或多个消费者之间须共享对缓冲区进行操作的函数代码。 3.概要设计 3.1 方法及原理 1.阅读操作系统的进程管理章节内容,对进程的同步和互斥,以及信号量机制有深入理解。 著名的生产者—消费者问题是典型的进程同步问题,操作系统中实现进程同步的常用机制有信号量和PV操作等。除赋初值外,信号量仅由同步原语P和V对其进行操作,PV操作的不分割性确保执行的原子性及信号量值的完整性。 信号量按用途分两种: (1)公用信号量,用于实现进程互斥; (2)私有信号量,多用于并发进程同步。 按取值又分两种: (1)两元信号量,主要用于解决进程互斥问题; (2)一般信号量,主要解决进程同步问题。 2.掌握Visual C++ 6.0语言

文档评论(0)

1亿VIP精品文档

相关文档