2019进程的创建实验报告

2019进程的创建实验报告

ID:40999174

大小:17.35 KB

页数:5页

时间:2019-08-13

2019进程的创建实验报告_第1页
2019进程的创建实验报告_第2页
2019进程的创建实验报告_第3页
2019进程的创建实验报告_第4页
2019进程的创建实验报告_第5页
资源描述:

《2019进程的创建实验报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、进程的创建实验报告  操作系统实验报告  课程名称实验项目名称学号姓名学生所在学院  操作系统实验进程的创建班级专业指导教师  实验室名称地点    哈尔滨工程大学计算机科学与技术学院  一、实验概述  1.实验名称进程的创建2.实验目的  (1)练习使用EOSAPI函数CreateProcess创建一个进程,掌握创建进程的方法,理解进程和程序的区别。  (2)调试跟踪CreateProcess函数的执行过程,了解进程的创建过程,理解进程是资源分配的单位。  3.实验类型验证性实验4.实验内容  、准备实验、练习使用控制台命令创建EOS

2、应用程序的进程、练习通过编程的方式让应用程序创建另一个应用程序的进程、调试CreateProcess函数、调试PsCreateProcess函数  ①调试进程控制块的创建过程  ②调试初始化进程控制块中各个成员变量的过程二、实验环境  EOS操作系统、OSLab软件三、实验过程  1.设计思路和流程图2.算法实现  3.需要解决的问题及解答  (1)在源代码文件提供的源代码基础上进行修改,要求使用同时创建10个进程。提示:可以使用PROCESS_INFORMATION类型定义一个有10个元素的数组,每一个元素对应一个进程。使用一个循环创

3、建10个子进程,然后再使用一个循环等待10个子进程结束,得到退出码后关闭句柄。答:后文中,有此题解决方案。  (2)尝试根据之前对PsCreateProcess函数和PspCreateProcessEnvironment函数执行过程的跟踪调试,绘制一幅进程创建过程的流程图。  1  (3)在PsCreateProcess函数中调用了PspCreateProcessEnvironment函数后又先后调用了PspLoadProcessImage和PspCreateThread函数,学习这些函数的主要功能。能够交换这些函数被调用的顺序吗?思考

4、其中的原因。  答:PspCreateProcessEnvironment的主要功能是创  创建了地址空间和分配了句柄表。PspLoadProcessImage是将进程的可执行映像加载到了进程的地址空间中。PspCreateThread创建了进程的主线程。这三个函  2  知道自己要从哪里开始执行,执行哪些指令。因此不能交换他们的顺序。  4.主要数据结构、实现代码及其说明  主要使用PROCESS_INFORMATION类型定义一个有10个元素的数组,每一个元素对应一个进程。使用一个循环创建10个子进程,然后再使用一个循环等待10个子

5、进程结束,得到退出码后关闭句柄。  5.源程序并附上注释  使用同时创建10个进程的原代码及注释如下:#include//main函数参数的意义:  //argc-argv数组的长度,大小至少为1,argc-1为命令行参数的数量。//argv-字符串指针数组,数组长度为命令行参数个数+1。其中argv[0]固定指向当前  //  进程所执行的可执行文件的路径字符串,argv[1]及其后面的指针指向各个命令行//  参数。  //  例如通过命令行内容启动进程后,的main函  //  数的参数argc的值为3,argv[0]指向字符

6、串,argv[1]指向  //  参数字符串,argv[2]指向参数字符串。intmain(intargc,char*argv){    //启动调试EOS应用程序前要特别注意下面的问题:  //1、如果要在调试应用程序时能够调试进入内核并显示对应的源码,//  必须使用EOS核心项目编译生成完全版本的SDK文件夹,然//  后使用此文件夹覆盖应用程序项目中的SDK文件夹,并且EOS//  核心项目在磁盘上的位置不能改变。  //2、在启动调试应用程序之前必须首先删除/禁用所有的断点,在断//  点中断(int3)被命中后才能重新

7、添加/启用断点,否则启动//  调试会失败。STARTUPINFOStartupInfo;  3  PROCESS_INFORMATIONProcInfo[10];ULONGulExitCode;//子进程退出码  INTnResult=0;//main函数返回值。0表示成功,非0表示失败。inti,j;  //#ifdef_DEBUG  //__asm(//#endif    printf(10processesandwaitfortheprocessesexit...\//使子进程和父进程使用相同的标准句柄。  =G

8、etStdHandle(STD_INPUT_HANDLE);=GetStdHandle(STD_OUTPUT_HANDLE);=GetStdHandle(STD_ERROR_HANDLE);//为一个应用程

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

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

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