操作系统课设

您所在的位置:网站首页 操作系统的进程与线程有关吗 操作系统课设

操作系统课设

2023-08-06 00:44| 来源: 网络整理| 查看: 265

一、实验目的 (1) 回顾操作系统进程、线程的有关概念,加深对 Windows 线程的理解。 (2) 了解互斥体对象,利用互斥与同步操作编写生产者-消费者问题的并发程序,加深对 P (即semWait)、V(即 semSignal)原语以及利用 P、V 原语进行进程间同步与互斥操作的理解。

二、实验内容和步骤 生产者消费者问题 步骤 1:创建一个“Win32 Consol Application”工程,然后拷贝程序,编译成可执行文件。 步骤 2:在“命令提示符”窗口运行步骤 1 中生成的可执行文件,列出运行结果。 步骤 3:仔细阅读源程序,找出创建线程的 WINDOWS API 函数,回答下列问题:线程的第一个执行函数是什么(从哪里开始执行)?它位于创建线程的 API 函数的第几个参数中?

答:Produce()函数,位于第三个参数。

步骤 4:修改清单 4-1 中的程序,调整生产者线程和消费者线程的个数,使得消费者数目大与生产者,看看结果有何不同。察看运行结果,从中你可以得出什么结论?

答:当生产者个数多于消费者个数时生产速度快,生产者经常等待消费者对产品进行消费;反之,消费者经常等待生产者生产。

步骤 5:修改清单 4-1 中的程序,按程序注释中的说明修改信号量 EmptySemaphore 的初始化方 法,看看结果有何不同。 步骤 6:根据步骤 4 的结果,并查看 MSDN,回答下列问题: 1)CreateMutex 中有几个参数,各代表什么含义。 2)CreateSemaphore 中有几个参数,各代表什么含义,信号量的初值在第几个参数中。 3)程序中 P、V 原语所对应的实际 Windows API 函数是什么,写出这几条语句。 4)CreateMutex 能用 CreateSemaphore 替代吗?尝试修改程序 4-1,将信号量 Mutex 完全用CreateSemaphore 及相关函数实现。写出要修改的语句。

答: (1)3个;LPSECURITY_ATTRIBUTESlpMutexAttributes,指向安全属性的指针BOOLbInitialOwner, 初始化互斥对象的所有者;LPCTSTRlpName 指向互斥对象名的指针;第二个参数是FALSE,表示刚刚创建的这个Mutex不属于任何线程。 (2)4个;第一个参数:安全属性,如果为NULL则是默认安全属性 第二个参数:信号量的初始值,要>=0且



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3