- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
A操作系统课程设计
燕山大学课程设计说明书
课程设计名称:操作系统
班级:
开发小组名称:
课题负责人:
课题组成员:姓名 学号 班级自评成绩
课题开发日期:
1 概述
1.1 课程设计目的
通过编写一个生产者消费者的实例,了解多线程的创建,运行原理,通过信号量机制的运用了解各线程间的协调工作机制;通过实现界面编程,了解MFC编程思想。
1.2 主要完成的任务
如下图所示,有个PUT操作要不断循环地向Buffer1送数据,有Move操作不断地将Buffer1的数据取到Buffer2操作不断地将Buffer2数据取到,有GET操作要不断地从中取数据。PUT、 MOVE、 GET每次操作一个数据,为了在操作的过程中要保证数据不丢失, 每个Buffer每次只能接受一个PUT或一个Move或一个Get,多个操作不能同时操作同一BUFFER。设计一个多道程序完成上述操作。
图1 Buffer操作
Buff1,buffer中容量单位是字符。
(2)提供良好图形界面,显示Buffer的操作过程可以Buffer的容量、PUT、GET、操作的个数;
可以PUT、GET、速度;
实时显示每个Buffer中数据的个数,Buffer的个数实时显示程序运行结束,显示汇总数据:
总的运行时间;
Buffer中数据的个数;
已放入BUFFER的数据个数;
已放已取的数据个数;
平均buffer中的数据个数。
MFC
MFC是Windows下程序设计的最流行的一个类库它合理的封装了WIN32 API函数,并设计了一套方便的消息映射机制。
在MFC的框架结构下,可以进行消息处理的类的头文件里面都会含有DECLARE_MESSAGE_MAP()宏,这里主要进行消息映射和消息处理函数的声明。
所有能够进行消息处理的类都是基于CCmdTarget类的,也就是说CCmdTarget类是所有可以进行消息处理类的父类。CCmdTarget类是MFC处理命令消息的基础和核心。
Mutex信号量来协调生产者线程和MOVE1线程;因为MOVE1线程和MOVE2线程共同使用临界资源BUFFER2,所以用Mutex1信号量来协调MOVE1线程和MOVE2线程,因为MOVE2线程和消费者线程共同使用临界资源BUFFER3,所以用Mutex3信号量来协调MOVE2线程和消费者线程。
4 详细设计
4.1 ThreadInfo结构体
typedef struct ThreadInfo{
CListBox *pList;
}thread,*lpthread;
此结构体用来保存在线程建立时往线程中传送的参数信息(如该线程指定的操作控件),以供在本线程中使用。
4.2 线程操作函数
4.2.1 执行函数的声明
分别声明生产者、MOVE1、MOVE2、消费者函数,格式为:DWORD WINAPI threadFIFO(LPVOID lparam);
//声明3个不同的生产者线程,主要区别是能分别输出该生产的字符是哪个生产者生产的。
DWORD WINAPI Productor1(LPVOID pthread)
DWORD WINAPI Productor2(LPVOID pthread)
DWORD WINAPI Productor3(LPVOID pthread)
//声明MOVE1线程。
DWORD WINAPI Move1(LPVOID pthread)
//声明MOVE2线程。
DWORD WINAPI Move2(LPVOID pthread)
//声明3个不同的消费者线程,主要区别是能分别输出该消费的字符是哪个消费者消费的。
DWORD WINAPI Consumer1(LPVOID pthread)
DWORD WINAPI Consumer2(LPVOID pthread)
DWORD WINAPI Consumer3(LPVOID pthread)
4.2.2 定义12个线程
//3个生产者线程
hThread1=CreateThread(NULL,0,Productor1,thread1,0,ProducterID);
hThread2=CreateThread(NULL,0,Productor2,thread1,0,ProducterID);
hThread7=CreateThread(NULL,0,Productor3,thread1,0,ProducterID);
//3个MOVE1线程
hThread5=CreateThread(NUL
您可能关注的文档
- A_hanging更新版.ppt
- a_forever_friendPPT永远的朋友.ppt
- A_Modest_Proposal 英文版PPT.ppt
- A_learnA_talkU42015年最新pep人教版五年级英语下册unit4第四单元when_is_Easter精品.ppt
- A_Rose_for_Emily__献给爱米丽的玫瑰_演讲.ppt
- a_rose_for_emily终结版.ppt
- a_rose_for_emily 课件.ppt
- A_story_–The_frog.ppt
- A_visit_to_the_moon_语言点.ppt
- a七年级英语上册_词汇集合课件_人教新目标版.ppt
- T_CAPDA 065—2024(植保无人飞机喷雾雾滴飘移测试方法).pdf
- T_CAPDA 067—2024(微生物农药有效成分分析方法 确认指南 计数法).pdf
- T_CANSI 92—2025(平面分段数字化装焊工艺要求).pdf
- T_CANSI 103—2025(智能船体建造阶段数据采集技术要求).pdf
- T_HAPS 010—2025(湿地沉水植物种植技术规程).pdf
- T_CACM 1651—2025(脑梗死合并心肌梗死中医诊疗指南).pdf
- T_CACM 1653—2025(儿童青少年近视中西医一体化综合防控指南).pdf
- T_CANSI 108—2025(船舶造修企业无废工厂评价指标体系原则要求).pdf
- 25年三月混凝土排水管道基础及接口附录(ppt).docx
- 2025年度三月份混凝土排水管道基础及接口附录(ppt).docx
最近下载
- 人教版八下英语语法.doc VIP
- 七年级历史下期末试卷2012.doc VIP
- 2024年上半年教师资格证考试《教育教学知识与能力》(小学)真题.docx
- 2022-2023年八年级会考一模生物试卷(山东省青岛市市北区).docx VIP
- 恒生PB系统介绍.pptx VIP
- U盘盖注塑模模具设计.doc VIP
- 2024年中考语文复习【整本书阅读之12部名著内容勾连题】精练附答案解析.docx VIP
- 2025年安全月主题宣贯课件ppt65页.pptx VIP
- 小型水库雨水情测报和大坝安全监测设施建设与运行技术指南.pdf VIP
- 2024年上半年教师资格证考试《教育教学知识与能力》(小学)真题.pdf
文档评论(0)