并发程序设计.docx
- 文档编号:29211016
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:15
- 大小:864.90KB
并发程序设计.docx
《并发程序设计.docx》由会员分享,可在线阅读,更多相关《并发程序设计.docx(15页珍藏版)》请在冰豆网上搜索。
并发程序设计
附件(四)
深圳大学实验报告
课程名称:
操作系统
实验项目名称:
并发程序设计
学院:
计算机与软件学院
专业:
计算机科学与技术
指导教师:
报告人:
学号:
班级:
实验时间:
2015/9/18
实验报告提交时间:
2015/10/15
教务处制
一、实验目的与要求:
实验目的:
掌握Windows环境下,多程序并发程序设计方法,并通过程序的运行结果来验证分时系统和并发程序设计的优越性。
实验要求:
熟悉Windows操作系统及VC程序设计方法。
二、方法、步骤:
1.生成Parent.exe进程:
打开VC++编译环境,选择File→New→Win32Application[必须先输入projectname,如Parent]→下一步,选择Atypical“HelloWorld!
”Application→打开C源程序[Parent.cpp]→编写附件中的代码→按“!
”运行Parent.exe程序;
2.生成Calculate.exe进程:
打开VC++编译环境,选择File→New→Win32Application[必须先输入projectname,如Calculate]→下一步,选择ASimpleWin32Application→打开C源程序[Calculate.cpp]→编写附件中的代码→按“!
”运行Calculate.exe程序;
3.生成WriteFile.exe进程:
打开VC++编译环境,选择File→New→Win32Application[必须先输入projectname,如WriteFile]→下一步,选择ASimpleWin32Application→打开C源程序[WriteFile.cpp]→编写附件中的代码→按“!
”运行WriteFile.exe程序;
三.实验过程及内容:
(其中:
提供有简短说明的程序代码。
要求:
程序运行正确、符合设计要求。
)
1.生成Parent.exe进程:
创建工程参照图1:
注意要写工程名
创建工程参照图2:
选择第三个
创建工程参照图3:
编辑Menu
创建工程参照图4:
注意ID要与参考代码中的名称一样
创建工程参照图5:
编辑Menu完成
运行结果:
代码说明(注释):
//该函数表示计算数据和向U盘写入数据并行执行
voidWriteOrCalculate()
{
STARTUPINFOsui;//定义进程开始信息
PROCESS_INFORMATIONpiszWriteFile,piszCalculate;//进程创建返回信息
BOOLwProcess,cProcess;//创建进程是否成功
//设置创建进程信息
memset(&sui,0,sizeof(STARTUPINFO));
sui.cb=sizeof(STARTUPINFO);
//创建进程
cProcess=CreateProcess(szCalculate,NULL,NULL,NULL,TRUE,0,NULL,NULL,&sui,&piszCalculate);
wProcess=CreateProcess(szWriteFile,NULL,NULL,NULL,TRUE,0,NULL,NULL,&sui,&piszWriteFile);
//等待进程结束
WaitForInputIdle(piszWriteFile.hProcess,INFINITE);
WaitForInputIdle(piszCalculate.hProcess,INFINITE);
}
//该函数表示计算数据和向U盘写入数据串行执行
voidWriteAndCalculate()
{
WinExec(szCalculate,NULL);//启动执行文件的运行
WinExec(szWriteFile,NULL);
}
2.生成Calculate.exe进程:
创建工程参照图1:
注意要写工程名
创建工程参照图2:
选择第二个选项
创建工程参照图3:
编辑代码并运行
3.生成WriteFile.exe进程:
创建工程参照图1:
注意要写工程名
创建工程参照图2:
选择第二个选项
创建工程参照图3:
编辑代码并运行
将三个exe文件放在同一个文件夹下
运行成功
四、实验结论:
(其中:
提供运行结果,能对实验结果进行深入的探讨和分析、评价,并提出结论性意见和改进想法)
运行画面:
运行数据记录表格:
次数
1
2
3
4
5
平均
Write
62ms
63ms
78ms
47ms
62ms
62ms
Calculate
4414ms
4399ms
4399ms
4383ms
4399ms
4398ms
WriteandCalculate
4446ms
4446ms
4462ms
4446ms
4446ms
4449ms
WriteorCalculate
4399ms
4400ms
4384ms
4384ms
4415ms
4396ms
运行结果分析:
在实验运行成功的前提下,我们收集多种数据并进行平均计算处理,以防止产生误差。
由数据可以看出,当写入数据和计算数据两个进程并行运行时,其运行时间与单独一个计算数据进程的运行时间基本一致,而写入数据和计算数据两个进程串行运行时间明显高于它们并行运行的时间。
因此,我们可以得出分时系统和并发程序设计在节约运行时间上具有优越性。
在串行运行时,系统资源被单进程所独占,当进程在读或写磁盘文件时,CPU是处于等待I/O完成的空闲状态,因此造成较大的资源和时间浪费。
在多进程运行时,当某进程在等待I/O结果时,可以自动阻塞(blocked)起来,这时CPU可选择另一个就绪(ready)进程来执行,从而提高系统的运行效率,增加系统的吞吐量,提高系统交互操作性能。
改进建议:
我们可以编写一个手动操控I/O的程序来进一步验证分时系统和并发程序设计的优越性,或者设计多个程序,使得结果更加明显,以防止误差。
五、实验体会:
(根据自己情况填写)
本次实验是操作系统课程的第一个实验,感触良多,受益匪浅。
由于代码老师有提供,所以难度不是很大,但是通过这样难度不大的实验却让我了解到了分时系统和并发程序设计在进程运行中的优越性,对操作系统拥有更深刻的认识。
实验中也有许多细节问题需要注意,比如说不能一味照抄老师的代码,防止文件位置错误,以及创建工程的诸多选项要注意不要出错等等,总之,想要学好该科目,就需要多多上机动手实验。
注:
“指导教师批阅意见”栏请单独放置一页
指导教师批阅意见:
成绩评定:
指导教师签字:
年月日
备注:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 并发 程序设计