操作系统实验报告2

操作系统实验报告2

ID:22001522

大小:260.98 KB

页数:6页

时间:2018-10-26

操作系统实验报告2_第1页
操作系统实验报告2_第2页
操作系统实验报告2_第3页
操作系统实验报告2_第4页
操作系统实验报告2_第5页
资源描述:

《操作系统实验报告2》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、订线III专业班级:xxxxxx学生姓名:廷学号(班内序号):XXXXXXX2016年4月14日1、实验冃的1)回顾系统进稈、线稈的有关概念,加深对Windows2000线程的理解。2)了解互斥体对象,通过对生产者消费者等进程间同步与互斥经典算法的实现,加深对P、V原语以及利用P、V原语进行进程间同步与互斥操作的理解。2、实验内容和步与(1).生产者消费者问题u«a•••的瞻,鶬臧MCrI步骤1:创建一个“Win32ConsolApplication”工程,然后拷贝清单3-1中的程序,步骤2:在“命令提示符”窗口运行步骤1中生成的可执行文件。运行结果:范例:E:课程os课3实验

2、程序oslldebug〉os31(假设编译生成的可执行文件是os31.exe)步骤3:仔细阅读源程序,找出创建线程的WINDOWSAPI函数,回答下列问题:线程的第一个执行函数是什么(从哪里开始执行)?它位于创建线程的API函数的第几个参数中?生产者线程的第一个执行函数足Producer(),消费者第一个执行阑数足Consumer(),他们分別位于API函数的第3个参数中。步骤4:修改清单3-1中的程序,调整生产者线程和消赀者线程的个数,使得消费者数目人与生产者,看看结果奋何不同。运行结果:QKU«14.<(b,tr•戸*KO4Zw3«Muo•i•(c*«-一aiM^tVr.bIV*

3、rLSOQ-«II^NMfI^Mwmfcwwsz7^jBBHBnP^?■MU(N»tv$««upMr•:"11二二:::--*A,•wornviMirirv«4M«r4irwi»i:m•?*•*•••雇…•”<«V>mI5«钃<«藝曲,*•”HZC•4mla«t...S«M«»*4•pr»4wH•••雪7

4、a«•”■•■■•••••i■<—生严<一鵰費119?«SssJx}

5、9...Smcm4•»r*4aM«...Iw:J:fIM«FbminrnoiriMmf»m•1>)XC«l<%从屮你可以得出什么结论:当牛.产者多余消费者的吋候,牛产者牛产多个的吋

6、候消费者才会去消费。当生产若少于消费者的时候,生产者基木每生产一个,消费者就消费一个步骤5:修改澝•中.3-1中的程序,按程序注释中的说明修改信号MEmptySemaphore的初始化方法,看看结果有何不同。运行结果:将资源EmptySemaphore的初始值设置为0,也就是•一开始两个资源都不能获取,导致无论足屯产者还足消费的P操作都无法取到资源,只能一直等待,所以窗U不输出任何东西,表不的含义是生产者和消费者均在等待EmptySemaphore资源的释放。步骤6:根裾步骤4的结梁,并查看MSDN,回答卜列问题1)GreateMutex中有儿个参数,各代表什么含义。有三个参数。分别是:

7、LPSECURITY_ATTRIBUTES/p/Wufex^^/bufes,//桁向安全属性的桁针BOOLblnitialOwner,//初始化互斥对象的所有者LPCTSTR/pA/ame//指向互斥对象名的指针2)CreateSemaphore屮奋儿个参数,各代表什么含义,信号量的初值在第儿个参数屮。冇四个参数,分别是:IpSemaphoreAttributesSECURITY_ATTRIBUTES,指定一个SECURITY_ATTRIBUTES结构,或传递零值(将参数声明为ByValAsLong,并传递零值)——表示采川不允许继承的默认描述符。该参数定义了信号暈的安全特性Ilniti

8、alCountLong,设置信号:W:的初始计数。可设置零到IMaximumCount之问的一个位IMaximumCountLong,设背信号;W;的最人汁数IpNameString,指定信号;W;对象的名称。用vbNullString可创建一个未命名的佶号;U;对象。如果已经存在拥冇这个名字的一个信号S,就直接打开现成的信号:&。这个名字可能不与一个现冇的互斥体、事件、可等待计时器或文件映射的名称相符1)程序屮P、V原语所对应的实际WindowsAPI阁数足什么,写出这儿条语句。P操作:WaitForSingleObject(EmptySemaphore,INFINITE);//p(e

9、mpty);WaitForSingleObject(Mutex,INFINITE);//p(mutex);V操作:Release.Mutex(Mutex);//V(mutex);ReleaseSemaphore(FullSemaphore,1,NULL);//V(full);2)CreateMutex能用CreateSemaphore替代吗?尝试修改程序3-1,将信号量Mutex完全用CreateSemaphore及相关函数实现。写

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。