![进程的创立试验报告_第1页](http://file4.renrendoc.com/view/d705da41b903fe8764cd05444dede707/d705da41b903fe8764cd05444dede7071.gif)
![进程的创立试验报告_第2页](http://file4.renrendoc.com/view/d705da41b903fe8764cd05444dede707/d705da41b903fe8764cd05444dede7072.gif)
![进程的创立试验报告_第3页](http://file4.renrendoc.com/view/d705da41b903fe8764cd05444dede707/d705da41b903fe8764cd05444dede7073.gif)
![进程的创立试验报告_第4页](http://file4.renrendoc.com/view/d705da41b903fe8764cd05444dede707/d705da41b903fe8764cd05444dede7074.gif)
![进程的创立试验报告_第5页](http://file4.renrendoc.com/view/d705da41b903fe8764cd05444dede707/d705da41b903fe8764cd05444dede7075.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本文格式为Word版,下载可任意编辑——进程的创立试验报告
操作系统实验报告
课程名称试验项目名称学号姓名学生所在学院操作系统试验进程的创立班级专业指导教师试验室名称地点
哈尔滨工程大学计算机科学与技术学院
一、试验概述
1.试验名称进程的创立2.试验目的
(1)练习使用EOSAPI函数CreateProcess创立一个进程,把握创立进程的方法,理解进程和程序的区别。
(2)调试跟踪CreateProcess函数的执行过程,了解进程的创立过程,理解进程是资源分派的单位。
3.试验类型验证性试验4.试验内容
(1)、准备试验(2)、练习使用控制台命令创立EOS应用程序的进程(3)、练习通过编程的方式让应用程序创立另一个应用程序的进程(4)、调试CreateProcess函数(5)、调试PsCreateProcess函数
①调试进程控制块的创立过程
②调试初始化进程控制块中各个成员变量的过程二、试验环境
EOS操作系统、OSLab软件三、试验过程
1.设计思路和流程图2.算法实现
3.需要解决的问题及解答
(1)在源代码文件NewTwoProc.c提供的源代码基础上进行修改,要求使用hello.exe同时创立10个进程。提醒:可以使用PROCESS_INFORMATION类型定义一个有10个元素的数组,每一个元素对应一个进程。使用一个循环创立10个子进程,然后再使用一个循环等待10个子进程终止,得到退出码后关闭句柄。答:后文中,有此题解决方案。
(2)尝试根据之前对PsCreateProcess函数和PspCreateProcessEnvironment函数执行过程的跟踪调试,绘制一幅进程创立过程的流程图。
1
(3)在PsCreateProcess函数中调用了PspCreateProcessEnvironment函数后又先后调用了PspLoadProcessImage和PspCreateThread函数,学习这些函数的主要功能。能够交换这些函数被调用的顺序吗?思考其中的原因。
答:PspCreateProcessEnvironment的主要功能是创
创立了地址空间和分派了句柄表。PspLoadProcessImage是将进程的可执行映像加载到了进程的地址空间中。PspCreateThread创立了进程的主线程。这三个函
2
知道自己要从哪里开始执行,执行哪些指令。因此不能交换他们的顺序。
4.主要数据结构、实现代码及其说明
主要使用PROCESS_INFORMATION类型定义一个有10个元素的数组,每一个元素对应一个进程。使用一个循环创立10个子进程,然后再使用一个循环等待10个子进程终止,得到退出码后关闭句柄。
5.源程序并附上解释
使用hello.exe同时创立10个进程的原代码及解释如下:#include\//main函数参数的意义:
//argc-argv数组的长度,大小至少为1,argc-1为命令行参数的数量。//argv-字符串指针数组,数组长度为命令行参数个数+1。其中argv[0]固定指向当前
//进程所执行的可执行文件的路径字符串,argv[1]及其后面的指针指向各个命令行//参数。
//例如通过命令行内容\启动进程后,hello.exe的main函
//数的参数argc的值为3,argv[0]指向字符串\,argv[1]指向
//参数字符串\,argv[2]指向参数字符串\。intmain(intargc,char*argv[]){
//启动调试EOS应用程序前要特别注意下面的问题:
//1、假使要在调试应用程序时能够调试进入内核并显示对应的源码,//必需使用EOS核心项目编译生成完全版本的SDK文件夹,然//后使用此文件夹覆盖应用程序项目中的SDK文件夹,并且EOS//核心项目在磁盘上的位置不能改变。
//2、在启动调试应用程序之前必需首先删除/禁用所有的断点,在断//点中断(int3)被命中后才能重新添加/启用断点,否则启动//调试会失败。STARTUPINFOStartupInfo;
3
PROCESS_INFORMATIONProcInfo[10];ULONGulExitCode;//子进程退出码
INTnResult=0;//main函数返回值。0表示成功,非0表示失败。inti,j;
//#ifdef_DEBUG
//__asm(\//#endif
printf(\10processesandwaitfortheprocessesexit...\\n\\n\//使子进程和父进程使用一致的标准句柄。
StartupInfo.StdInput=GetStdHandle(STD_INPUT_HANDLE);StartupInfo.StdOutput=GetStdHandle(STD_OUTPUT_HANDLE);StartupInfo.StdError=GetStdHandle(STD_ERROR_HANDLE);//为一个应用程序同时创立10个子进程。for(i=0;i<10;i++)
if(CreateProcess(\else{
for(j=0;j<i;j++){}
printf(\}
4
NULL,0,
WaitForSingleObject(ProcInfo[j].ProcessHandle,INFINITE);//得到并输出子进程的退出码。
GetExitCodeProcess(ProcInfo[j].ProcessHandle,printf(\//关闭不再使用的句柄。
CloseHandle(ProcInfo[j].ProcessHandle);Clo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年国内旅游合作合同标准格式
- 2025年企业与股东资金互助协议
- 2025年保险赔付责任权益协议
- 2025年官方版复婚双方解除婚姻策划协议书
- 2025年人力资源与组织绩效评估合同
- 2025年度人工智能策划投资协议书
- 2025年古建筑保护工程进度申请监管协议
- 2025年二手房产一次性付款交易合同模板
- 2025年债券交易委托策划协议书
- 2025年度店铺租赁协议标准格式
- 中小学校岗位安全工作指南
- 数据中心运维方案
- 《愿望的实现》全文
- 病毒性脑炎教学查房及疑难病例讨论
- Word操作练习题(解析和答案)
- 糖尿病足的多学科联合治疗
- 小龙虾啤酒音乐节活动策划方案课件
- 中药贴敷课件
- 塔吊租赁(大型机械)-招标文件模板(完整版)2021.5.13
- 客户服务中心操作手册
- 《战国策》教学讲解课件
评论
0/150
提交评论