下载后可任意编辑《操作系统》课程设计生产者和消费者问题系 院: 计算机科学系学生姓名: 吴伟学 号: 专 业: 软件工程年 级: 0701B完成日期: 11 月指导老师: 刘栓下载后可任意编辑一、 课程设计的性质与任务1、 生产者-消费者问题是很经典很具有代表性的进程同步问题, 计算机中的很多同步问题都可抽象为生产者-消费者问题, 经过本实验的练习, 希望能加深学生对进程同步问题的认识与理解。2、 熟悉 VC 的使用, 培育和提高学生的分析问题、 解决问题的能力。二、 课程设计的内容及其要求1. 实验内容以生产者/消费者模型为依据, 在 Windows 环境下创立一个控制台进程, 在该进程中创立n 个线程模拟生产者和消费者, 实现进程(线程)的同步与互斥。2. 实验要求 学习并理解生产者/消费者模型及其同步/互斥规则; 学习了解 Windows 同步对象及其特性; 熟悉实验环境, 掌握相关 API 的使用方法; 设计程序, 实现生产者/消费者进程(线程)的同步与互斥; 提交实验报告。三、 课程设计的时间安排课程设计时间 8 课时四、 课程设计的实验环境本实验是在 winxp+VC6.0 环境下实现的, 利用 Windows SDK 编制实例程序。因此试验需要在 windows 下安装 VC 后进行。VC 是一个集成开发环境, 其中包含了 Windows SDK 所有工具和定义; 因此安装了 VC 后就不用特意安装 SDK 了。下载后可任意编辑五、 正文1、实验程序的结构图( 流程图) ; 2、 数据结构及信号量定义的说明; (1) CreateThread 功能——创立一个在调用进程的地址空间中执行的线程 格式HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes,DWORD dwStackSize,LPTHREAD_START_ROUTINE lpStartAddress,LPVOID lpParamiter,DWORD dwCreationFlags,Lpdword lpThread ); 参数说明lpThreadAttributes—— 指 向 一 个 LPSECURITY_ATTRIBUTES( 新 线 程 的 安 全 性 描 述符)。dwStackSize——定义原始堆栈大小。开始ProduceWait BufferWait ProductsConsume结束While produceWhile consume下载后可任意编辑lpStartAddress——指向使用 LPTHRAED_START_ROUTINE 类型定义的函数。lpParamiter——定义一个给进程传递参数的指针。dwCreationFlags——定义控制线程创立的附加标志。lpThread——保存线程标志符(32 位)(2) CreateMutex 功能——创立一个命名或匿名的互斥...