- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三次实验报告模板
湖南科技学院计算机与通信工程系《操作系统》实验报告实验项目实验三 进程同步的经典算法课程名称操作系统成 绩实验时间2015年12月21日星期日第十六周实验地点E座502姓 名学号班 级计科1302一、实验要求1、设计实验步骤;2、将上机过程中出现的问题及解决方法写在实验报告上;3、掌握WINDOWS进程同步经典算法的知识。 4、认真完成实验报告二、实验目的1、回顾系统进程、线程的有关概念,加深对Windows 2000线程的理解。2、了解互斥体对象,通过对生产者消费者等进程间同步与互斥经典算法的实现,加深对P、V原语以及利用P、V原语进行进程间同步与互斥操作的理解。三、实验环境VC++6.0四、实验内容及步骤:(1). 生产者消费者问题步骤1:创建一个“Win32 Consol Application”工程,然后拷贝清单3-1中的程序,编译成可执行文件。步骤2:在“命令提示符”窗口运行步骤1中生成的可执行文件。运行结果:范例:E:\课程\os课\os实验\程序\os11\debugos31 (假设编译生成的可执行文件是os31.exe)步骤3:仔细阅读源程序,找出创建线程的WINDOWS API函数,回答下列问题:线程的第一个执行函数是什么(从哪里开始执行)?它位于创建线程的API函数的第几个参数中?线程执行的第一个函数是Producer,由程序代码CreateThread(NULL,0,Producer,NULL,0,producerID[i]);可知Producer位于创建线程的API函数的第三个参数步骤4:修改清单3-1中的程序,调整生产者线程和消费者线程的个数,使得消费者数目大与生产者,看看结果有何不同。运行结果:从中你可以得出什么结论:当生产者生产的速度快时,生产者要等待消费者;反正当消费者速度快时,消费者要等待生产者步骤5:修改清单3-1中的程序,按程序注释中的说明修改信号量EmptySemaphore的初始化方法,看看结果有何不同。运行结果:步骤6:根据步骤4的结果,并查看MSDN,回答下列问题CreateMutex中有几个参数,各代表什么含义。CreateMutex中有3个参数,分别为:LPSECURITY_ATTRIBUTESlpMutexAttributes, // 指向安全属性的指针BOOLbInitialOwner, // 初始化互斥对象的所有者LPCTSTRlpName // 指向互斥对象名的指针CreateSemaphore中有几个参数,各代表什么含义,信号量的初值在第几个参数中。CreateSemaphore中有4个参数,分别为:lpSemaphoreAttributes SECURITY_ATTRIBUTES,指定一SECURITY_ATTRIBUTES结构,或传递零值(将参数声明为ByVal As Long,并传递零值)——表示采用不允许继承的默认描述符。该参数定义了信号量的安全特性lInitialCount Long,设置信号量的初始计数。可设置零到lMaximumCount之间的一个值lMaximumCount Long,设置信号量的最大计数lpName String,指定信号量对象的名称。用vbNullString可创建一个未命名的信号量对象。如果已经存在拥有这个名字的一个信号量,就直接打开现成的信号量。这个名字可能不与一个现有的互斥体、事件、可等待计时器或文件映射的名称相符程序中P、V原语所对应的实际Windows API函数是什么,写出这几条语句。P:Append V:TakeCreateMutex能用CreateSemaphore替代吗?尝试修改程序3-1,将信号量Mutex完全用CreateSemaphore及相关函数实现。写出要修改的语句:可以,程序代码如下:Mutex=CreateSemaphore(NULL,false,false,NULL);(2). 读者写者问题根据实验(1)中所熟悉的P、V原语对应的实际Windows API函数,并参考教材中读者、写者问题的算法原理,尝试利用Windows API函数实现第一类读者写者问题(读者优先)。五、实验运行结果消费者进程大于生产者进程时修改信号量EmptySemaphore的初始化方法后CreateMutex用CreateSemaphore替代后:读写者问题,读者优先截图:六、实验分析和总结:通过本次实验基本上掌握WINDOWS进程同步经典算法的有关知识,回顾系统进程、线程的有关概念,加深对Windows 2000线程的理解。也初步了解了同步与互斥,但是在利用P、V原语设计程序方面还是存在者很大的问题,可能是对同步、互斥理解的不够透彻,应该要进一步加深对同步与互斥的理解。七、实验程序代码:#include windows.h#
您可能关注的文档
最近下载
- 水泥厂余热锅炉调试报告.pdf VIP
- 2024-2025年中国铁氧体软磁材料行业市场调查研究及投资前景预测报告.docx
- 2025秋统编版(2024)小学道德与法治三年级上册(全册)课时练习及答案(附目录).docx
- 我眼中的中国平安.docx VIP
- 公路工程沥青新旧试验规程差异对比解读-JTG 3410-2025.pdf VIP
- 《气体传感器简介》课件.pptx VIP
- 自治区矿产资源开发利用与生态保护修复方案编制提纲(试行).doc VIP
- 粘贴钢板加固施工方案.docx VIP
- 碳排放权交易有关会计处理暂行规定(2025).docx VIP
- Fisher阀门结构与维护.ppt VIP
文档评论(0)