- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
大连理工大学远程与继续教育学院《操作系统》课程设计
学习中心:甘肃酒泉奥鹏学习中心[12]VIP
专业:计算机科学与技术
年级:2018年秋季
学号:181398407612
学生:茹雪
题目:进程同步与互斥生产者-消费者问题
1.谈谈你对本课程学习过程中的心得体会与建议?
一个学期的《操作系统》课程就要结束了,在这个学期,通过老师的传授和课本以及课下的阅读学习,让我对计算机操作系统的一些实现原理和简单的操作过程有了基本的了解。经过快一个星期的努力,终于完成了这个课程设计,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。
通过这次课程设计,自己也是受益匪浅,因为平时学到的大部分都是理论知识,而课程设计就是将我们的理论应用到实践的过程,通过这个过程,也让我们锻炼了自己的动手能力,也加深了我们对理论知识的理解,提高了我们对操作系统这门课程的认识和理解,也加强了我们的学习效果。
2.《操作系统》课程设计,从以下5个题目中任选其一作答。
《操作系统》课程设计
题目三:进程同步与互斥生产者-消费者问题
一、设计要求
一组生产者向一组消费者提供消息,它们共享一个有界缓冲区n,生产者向其中投放消息,消费者从中取得消息。
二、设计思路
对于生产者进程:产生一个数据,当要送入缓冲区时,要检查缓冲区是否已满,若未满,则可将数据送入缓冲区,并通知消费者进程;否则,等待;
对于消费者进程:当它去取数据时,要看缓冲区中是否有数据可取,若有则取走一个数据,并通知生产者进程,否则,等待。
缓冲区是个临界资源,因此,诸进程对缓冲区的操作程序是一个共享临界区,所以,还有个互斥的问题。
三、流程(原理)图
四、源代码
#includewindows.h
#includeiostream
constunsignedshortSIZE_OF_BUFFER=20;//有界缓冲区长度
intg_buffer[SIZE_OF_BUFFER];//开辟缓冲区,用数组表示,可以看成是一个循环队列
unsignedshortProductID=0;//新生产出来的产品的产品号
unsignedshortConsumeID=0;//被消耗的产品的产品号
unsignedshortin=0;//产品进缓冲区时的缓冲区下标,用于记录生产者的指针位置
unsignedshortout=0;//产品出缓冲区时的缓冲区下标,用于记录消费者的指针位置
boolg_continue=1;//控制程序运行:1表示继续运行,0表示停止运行
HANDLEg_hMutex;//线程间的互斥信号量
HANDLEg_hEmptySemaphore;//资源信号量:缓冲区空
HANDLEg_hFullSemaphore;//资源信号量:缓冲区满
DWORDWINAPIConsumer(LPVOID);//消费者线程
DWORDWINAPIProducer(LPVOID);//生产者线程
constunsignedshortPRODUCERS_COUNT=4;//生产者的个数
constunsignedshortCONSUMERS_COUNT=3;//消费者的个数
constunsignedshortTHREADS_COUNT=PRODUCERS_COUNT+CONSUMERS_COUNT;//总线程数
DWORDproducerID[CONSUMERS_COUNT];//生产者线程的标识符
HANDLEhThreads[PRODUCERS_COUNT];//各线程的handle
DWORDconsumerID[THREADS_COUNT];//消费者线程的标识符
/*----------------------------生产一个产品开始------------------------------*/
//生产一个产品,输出其ID号
您可能关注的文档
- 181590311984李治家大工19春《金工实习(二)》实验报告及要求.doc
- 大工19春《工程抗震》大作业-答案1.doc
- 大工19春《管理学》大作业题目及要求(已完成)-曹彬彬181331234976.doc
- 大工19春《画法几何与机械制图》大作业及要求--题目2+4+5答案.doc
- 大工19春《生产实习(机械制造与自动化)》大作业及要求-171088231151金国源.doc
- 大工19春《土木工程实验(二)》离线作业及学习要求--徐铁城(已完成).doc
- 大工19春工程抗震大作业参考答案2.doc
- 大工19秋《操作系统》大作业题目及要求-刘志.doc
- 大工19秋《操作系统》大作业题目及要求-题目三答案.doc
- 大工19秋《操作系统》大作业题目及要求-题目三答案版本4.doc
文档评论(0)