77范文网 - 专业文章范例文档资料分享平台

操作系统实验三(2)

来源:网络收集 时间:2018-11-22 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

2. 需要解决的问题及解答

在PsCreateProcess函数中调用了PspCreateProcessEnvironment函数后又先后调用了PspLoadProcessImage和PspCreateThread函数,学习这些函数的主要功能。能够交换这些函数被调用的顺序吗?思考其中的原因。

答:PspCreateProcessEnvironment的主要功能是创建进程控制块?并且为进程创建了地址空间和分配了句柄表。PspLoadProcessImage是将进程的可执行映像加载到了进程的地址空间中。PspCreateThread创建了进程的主线程。这三个函数被调用的顺序是不能够改变的?就向上面描述的?加载可执行映像之前必须已经为进程创建了地址空间?这样才能够确定可执行映像可以被加载到内存的什么位置?在创建主线程之前必须已经加载了可执行映像这样主线程才能够知道自己要从哪里开始执行,执行哪些指令。因此不能交换他们的顺序。

3. 源程序代码 #include \

5

int main(int argc, char* argv[]) {

STARTUPINFO StartupInfo;

PROCESS_INFORMATION ProcInfo[11]; ULONG ulExitCode; // 子进程退出码

INT nResult = 0; // main 函数返回值。0 表示成功,非 0 表示失败。 __asm(\

printf(\StartupInfo.StdInput = GetStdHandle(STD_INPUT_HANDLE); StartupInfo.StdOutput = GetStdHandle(STD_OUTPUT_HANDLE); StartupInfo.StdError = GetStdHandle(STD_ERROR_HANDLE); int i,j,n=10,num[11]; for(i=1;i<=n;i++)

if (CreateProcess(\NULL, 0, &StartupInfo, &ProcInfo[i])) else {for(j=1;j<=i-1;j++)

{CloseHandle(ProcInfo[i].ProcessHandle); CloseHandle(ProcInfo[i].ThreadHandle);}

printf(\nResult = 1; return nResult;}

for(i=1;i<=n;i++) if(num[i]==1)

WaitForSingleObject(ProcInfo[i].ProcessHandle, INFINITE); for(i=1;i<=n;i++) if(num[i]==1)

GetExitCodeProcess(ProcInfo[i].ProcessHandle, &ulExitCode); for(i=1;i<=n;i++) if(num[i]==1)

printf(\

#ifdef _DEBUG #endif

{num[i]=1;}

// 得到并输出子进程的退出码。

// 关闭不再使用的句柄。

6

}

for(i=1;i<=n;i++) if(num[i]==1) CloseHandle(ProcInfo[i].ProcessHandle); for(i=1;i<=n;i++) if(num[i]==1) CloseHandle(ProcInfo[i].ThreadHandle);

return nResult;

4. 程序运行时的初值和运行结果

4.1 准备实验

4.2 练习使用控制台命令创建EOS应用程序的进程

7

4.3 练习通过编程的方式让应用程序创建另一个应用程序的进程

4.4 调试CreateProcess函数

8

4.5 调试PsCreateProcess函数

9

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库操作系统实验三(2)在线全文阅读。

操作系统实验三(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/296376.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: