- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
操作系统
实验报告
课程名称操作系统实验
实验项目名称进程的创建
学号班级
计算机科学
姓名专业
与技术
计算机科学与技
学生所在学院指导教师
术
实验室名称地点计算机基础第七实验室21B475
哈尔滨工程大学
计算机科学与技术学院
一、实验概述
1.实验名称
进程的创建
2.实验目的
(1)练习使用EOSAPI函数CreateProcess创建一个进程,掌握创建进程的方法,理
解进程和程序的区别。
(2)调试跟踪CreateProcess函数的执行过程,了解进程的创建过程,理解进程是资
源分配的单位。
3.实验类型
验证性实验
4.实验内容
准备实
练习使用控制台命令创
练习通过编程的方式让应用程序
创建另一个应用程序的进程
调试
二、实验环境
调试PsCreateProcess函数:
EOS操作系统
三、实验过程①调试进程控制块的创建过程
1.设计思路和流程图
2.算法实现
3.需要解决的问题及解答
(1)在源代码文件提供的源代码基础上进行修改,要求使用同时创建10个进程。提示:可
以使用PROCESS_INFORMATION类型定义一个有10个元素的数组,每一个元素对应一个进
程。使用一个循环创建10个子进程,然后再使用一个循环等待10个子进程结束,得到退
出码后关闭句柄。
答:后文中,有此题解决方案。
(2)尝试根据之前对PsCreateProcess函数和PspCreateProcessEnvironment函数执行过
程的跟踪调试,绘制一幅进程创建过程的流程图。
(3)在PsCreateProcess函数中调用了PspCreateProcessEnvironment函数后又先后调用
了PspLoadProcessImage和PspCreateThread函数,学习这些函数的主要功能。能够交换
这些函数被调用的顺序吗?思考其中的原因。
答:PspCreateProcessEnvironment的主要功能是创建进程控制块并且为进程创建了地
址空间和分配了句柄表。PspLoadProcessImage是将进程的可执行映像加载到了进程的地
址空间中。PspCreateThread创建了进程的主线程。这三个函数被调用的顺序是不能够改
变的就向上面描述的加载可执行映像之前必须已经为进程创建了地址空间这样才
能够确定可执行映像可以被加载到内存的什么位置在创建主线程之前必须已经加载了
可执行映像这样主线程才能够知道自己要从哪里开始执行,执行哪些指令。因此不能
交换他们的顺序。
4.主要数据结构、实现代码及其说明
主要使用PROCESS_INFORMATION类型定义一个有1
文档评论(0)