- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
燕山大学课程设计说明书
课程设计名称:操作系统
题目:多道程序缓冲区协调操作
班级:11级计算机应用1班
开发小组名称:多道程序缓冲区协调操作的程序设计
课题负责人:吴楠
课题组成员: 姓名 吴楠 学号 110104010058
班级 应用1班 自评成绩
姓名 王乐 学号 110104010045
班级 应用1班 自评成绩
课题开发日期:2014.1.10
1 概述
1.1 课程设计目的
通过编写一个生产者消费者的实例,了解多线程的创建,运行原理,通过信号量机制的运用了解各线程间的协调工作机制;通过实现界面编程,了解MFC编程思想。
1.2 主要完成的任务
如下图所示,有多个PUT操作要不断循环地向Buffer1送字符数据,有Move1操作不断地将Buffer1的数据取到Buffer2,Move2操作不断地将Buffer1的数据取到Buffer3,有多个GET操作要不断地从Buffer2和Buffer3中取数据。PUT、 MOVE、 GET每次操作一个数据,为了在操作的过程中要保证数据不丢失, 每个Buffer每次只能接受一个PUT或一个Move或一个Get。运用进程同步和互斥机制设计一个多道程序完成上述操作。
PutMove2
Put
Move2
Buff1
Buff2
Buff3
Get
Move1
Get
图1 Buffer操作
(1) 可以随机产生字符数据,由put操作放入Buff1,buffer中容量单位是字符。
(2)提供良好图形界面,显示Buffer的操作过程。
(3) 可以设定各Buffer的容量、PUT、GET、Move操作的个数;
(4) 可以设定PUT、GET、Move操作的速度;
(5) 实时显示每个Buffer中数据的个数和数据的内容,空闲Buffer的空间的个数;
(6) 实时显示线程、进程所处于等待(阻塞)状态的个数
(7)程序运行结束,显示汇总数据:
总的运行时间;
Buffer中数据的个数;
已放入BUFFER的数据个数;
已取出的数据个数;
平均每个buffer中的数据个数。
1.3 课程设计使用的开发语言和工具
语言:C++
开发环境:Visual Studio 2008及其开发环境下的MFC平台。
1.4 解决的主要问题
MFC界面设计
模拟生产者消费者的互斥操作
各信号量的使用
2 使用的基本概念和原理
2.1 MFC
MFC是Windows下程序设计的最流行的一个类库,它合理的封装了WIN32 API函数,并设计了一套方便的消息映射机制。
2.2 MFC的消息实现机制
在MFC的框架结构下,可以进行消息处理的类的头文件里面都会含有DECLARE_MESSAGE_MAP()宏,这里主要进行消息映射和消息处理函数的声明。
所有能够进行消息处理的类都是基于CCmdTarget类的,也就是说CCmdTarget类是所有可以进行消息处理类的父类。CCmdTarget类是MFC处理命令消息的基础和核心。
2.3 线程
线程是程序独立运行的基本单位,一个程序通过执行多个线程可以提高机器本身资源的利用率,同时也可以完成多任务并行运行的操作。
2.4 信号量
信号量是一个在一定范围内变化的整形数据,用来表示一种临界资源,线程通过信号量的值来确定自己的状态是执行还是挂起,各线程间也是通过信号量机制来协调运行顺序一起完成任务。
3 总体设计
3.1基本的技术路线
确定基本技术路线为面向对象程序设计,使用MFC编写程序,建立基本对话框。
在对话框中设立生产者、MOVE、消费者板块,各板块内的按钮能控制各自线程的建立、暂停以及相关数据的设定。
3.2软件的总体结构
图2 总体结构
3.3模块关系
主要分为显示模块、数据模块和线程模块。模块之间的关系显示模块显示的数据模块的内容,而数据模块又影响线程模块,三个模块互相影响,并根据各自的变化,实时显示并协调工作。
3.4总体流程
通过创建生产者线程往BUFFER1中投放随机产生的字符,创建MOVE1线程和MOVE2线程将BUFFER1中的字符移动到BUFFER2和BUFFER3中,创建消费者线程从BUFFER2和BUFFER3中取出字符消费。
建立信号量,因为生产者线程和MOVE1、MOVE2线程共同使用临界资源BUFF
您可能关注的文档
- XX商业广场高层商住楼建设工程施工组织设计.pdf
- 学校食品安全量化分级管理知识培训.ppt
- XX市某大型医院保安服务投标书.doc
- XX水利工程创优计划.doc
- XX物业投标书彭彬.doc
- 学校卫生安全管理制度.doc
- xx项目结构设计任务书.pdf
- xx新村项目管理招标文件.doc
- XX学校办公楼标书(参考模板,请勿照搬).pdf
- 学校消防安全知识培训(简化版).ppt
- 中国国家标准 GB/T 18233.4-2024信息技术 用户建筑群通用布缆 第4部分:住宅.pdf
- GB/T 18233.4-2024信息技术 用户建筑群通用布缆 第4部分:住宅.pdf
- GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计.pdf
- 《GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计》.pdf
- 中国国家标准 GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计.pdf
- GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置.pdf
- 《GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置》.pdf
- 中国国家标准 GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置.pdf
- GB/T 17889.4-2024梯子 第4部分:铰链梯.pdf
- 《GB/T 17889.4-2024梯子 第4部分:铰链梯》.pdf
文档评论(0)