实验二并发与调度.doc

上传人:1595****071 文档编号:33918990 上传时间:2022-08-12 格式:DOC 页数:4 大小:52KB
返回 下载 相关 举报
实验二并发与调度.doc_第1页
第1页 / 共4页
实验二并发与调度.doc_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《实验二并发与调度.doc》由会员分享,可在线阅读,更多相关《实验二并发与调度.doc(4页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、如有侵权,请联系网站删除,仅供学习与交流一、二、三、四、五、六、 实验二并发与调度【精品文档】第 4 页七、 实验名称实验二并发与调度八、 实验目的在本实验中,通过对事件和互斥体对象的了解,来加深对Windows Server 2003线程同步的理解。1) 回顾系统进程、线程的有关概念,加深对Windows Server 2003线程的理解。2) 了解事件和互斥体对象。3) 通过分析实验程序,了解管理事件对象的API。4) 了解在进程中如何使用事件对象。5) 了解在进程中如何使用互斥体对象。6) 了解父进程创建子进程的程序设计方法。九、 实验内容父进程启动时,利用CreateEvent() A

2、PI创建一个命名的、可共享的事件和子进程,然后等待子进程向事件发出信号并终止父进程。在创建时,子进程通过OpenEvent() API打开事件对象,调用SetEvent() API使其转化为已接受信号状态。两个进程在发出信号之后几乎立即终止。十、 实验步骤步骤1:登录进入Windows Server 2003 。步骤2:在“开始”菜单中单击“程序”-“Microsoft Visual Studio 6.0”“Microsoft Visual C+ 6.0”命令,进入Visual C+窗口。步骤3:在工具栏单击“打开”按钮,在“打开”对话框中找到并打开实验源程序4-1.cpp。步骤4:单击“Bu

3、ild”菜单中的“Compile 4-1.cpp”命令,并单击“是”按钮确认。系统对4-1.cpp进行编译。步骤5:编译完成后,单击“Build”菜单中的“Build 4-1.exe”命令,建立4-1.exe可执行文件。操作能否正常进行?如果不行,则可能的原因是什么?_ 操作能正常运行。 _步骤6:在工具栏单击“Execute Program” (执行程序) 按钮,执行4-1.exe程序。运行结果 (分行书写。如果运行不成功,则可能的原因是什么?) :1) _event created_2) _child created_3) _Parent waiting on child._ _4) _c

4、hild process begining_ _5) _ event signaled_6) _ parent received the envent signaling from child_7) _ Parent released._这个结果与你期望的一致吗?(从进程并发的角度对结果进行分析)答:这个结果与期望一致。 当程序运行时条件“(argc1 & : strcmp(argv1 , child )= 0)”成立的时候,则创建父进程成功,否则则创建一个事件和一个子进程。当调用WaitForChild()函数的时候,程序会跳转到CreateChild(),等待函数CreateChild()

5、完成后,函数WaitForChild()才会再一次运行。满足了进程的并发性。阅读和分析程序4-1,请回答:1) 程序中,创建一个事件使用了哪一个系统函数?创建时设置的初始信号状态是什么?a. _CreateEvent_b. _CreateEvent(NULL,TRUE,FALSE,g_szContinueEvent);_2) 创建一个进程 (子进程) 使用了哪一个系统函数?_答:CerateChild()、CreateProcess()_3) 从步骤6的输出结果,对照分析4-1程序,可以看出程序运行的流程吗?请简单描述:答:能看出程序运行的流程。 首先创建一个事件(event created)

6、,然后创建一个子进程(child created),与此同时父进程等待子进程的创建,之后子进程开始运行,并发出信号。父进程接收到信号后结束。步骤7:在Visual C+ 窗口的工具栏中单击“打开”按钮,在“打开”对话框中找到并打开实验源程序4-2.cpp。步骤8:单击“Build”菜单中的“Compile 4-2.cpp”命令,并单击“是”按钮确认。系统对4-2.cpp进行编译。步骤9:编译完成后,单击“Build”菜单中的“Build 4-2.exe”命令,建立4-2.exe可执行文件。操作能否正常进行?如果不行,则可能的原因是什么?答:操作能正常进行。_步骤10:在工具栏单击“Execut

7、e Program”按钮,执行4-2.exe程序。分析程序4-2的运行结果,可以看到线程 (加和减线程) 的交替执行 (因为Sleep() API允许Windows切换线程) 。在每次运行之后,数值应该返回初始值 (0) ,因为在每次运行之后写入线程在等待队列中变成最后一个,内核保证它在其他线程工作时不会再运行。1) 请描述运行结果 (如果运行不成功,则可能的原因是什么?) :答:运行结果如下:thread: 3660value: 1access: 50thread: 4012value: 0access: 49thread: 3660value: 1access: 48thread: 401

8、2value: 0access: 47thread: 3660value: 1access: 46thread: 4012value: 0access: 45thread: 3660value: 1access: 44thread: 4012value: 0access: 43thread: 3660value: 1access: 42thread: 4012value: 0access: 41thread: 3660value: 1access: 40thread: 4012value: 0access: 39thread: 3660value: 1access: 38thread: 401

9、2value: 0access: 37thread: 3660value: 1access: 36thread: 4012value: 0access: 35thread: 3660value: 1access: 34thread: 4012value: 0access: 33thread: 3660value: 1access: 32thread: 4012value: 0access: 31thread: 3660value: 1access: 30thread: 4012value: 0access: 29thread: 3660value: 1access: 28thread: 401

10、2value: 0access: 27thread: 3660value: 1access: 26thread: 4012value: 0access: 25thread: 3660value: 1access: 24thread: 4012value: 0access: 23thread: 3660value: 1access: 22thread: 4012value: 0access: 21thread: 3660value: 1access: 20thread: 4012value: 0access: 19thread: 3660value: 1access: 18thread: 401

11、2value: 0access: 17thread: 3660value: 1access: 16thread: 4012value: 0access: 15thread: 3660value: 1access: 14thread: 4012value: 0access: 13thread: 3660value: 1access: 12thread: 4012value: 0access: 11thread: 3660value: 1access: 10thread: 4012value: 0access: 9thread: 3660value: 1access: 8thread: 4012v

12、alue: 0access: 7thread: 3660value: 1access: 6thread: 4012value: 0access: 5thread: 3660value: 1access: 4thread: 4012value: 0access: 3thread: 3660value: 1access: 2thread: 4012value: 0access: 1thread: 3660value: 1access: 0Press any key to continue2) 根据运行输出结果,对照分析4-2程序,可以看出程序运行的流程吗?请简单描述: 答:标识符为4012和3660的县城通过改变信号量的值来交替访问互斥体,知道access的值小于0为止。十一、 实验结论 通过本次实验,使我加深了对于时间和互斥体对象的了解。也加深了对于windows server 2003线程同步的理解。在分析实验步骤的过程中,我了解到管理事件对象的API。同时也学会了在进程中如何使用事件对象和互斥体对象。更加清晰明了的知道了其中运行的具体流程。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com