实验2.3.1_创建进程.ppt

上传人:gs****r 文档编号:1450793 上传时间:2019-02-28 格式:PPT 页数:34 大小:203.32KB
下载 相关 举报
实验2.3.1_创建进程.ppt_第1页
第1页 / 共34页
实验2.3.1_创建进程.ppt_第2页
第2页 / 共34页
实验2.3.1_创建进程.ppt_第3页
第3页 / 共34页
实验2.3.1_创建进程.ppt_第4页
第4页 / 共34页
实验2.3.1_创建进程.ppt_第5页
第5页 / 共34页
点击查看更多>>
资源描述

1、操作系统实验 创建进程 学会通过基本的 Windows进程控制函数,由父进程创建子进程。实验目的 我们设计一个应用程序时,有时候需要另外一段代码做一些其它工作。 方法如下: 一 、函数调用或者子程序 弊端 :我们可以用函数调用或者子程序,但是我们调用函数之后,只能等函数返回; 二 、在进程内创建一个新线程 弊端 :但是如果在一个复杂应用系统中,我们有可能不慎改写了进程地址空间中的某些数据(例如某些引用数据),导致其它工作不能正确地进行。 三 、创建新进程(子进程) 所以当我们需要某些工作同时进行,并且希望保护它们的运行地址空间时,一个很好地办法是创建一个新进程来执行需要同时进行的工作。 假设现

2、在有这样的一个工作,需要计算 1100 的和,还需要做一个工作是读写文件。 我们可以让父进程计算,创建一个子进程实现读写文件。 主要工作: 1、首先由父进程创建子进程 2、让子进程创建一个文件并写入数据,子进程写文件过程中,父进程继续执行计算工作 3、等子进程执行完以后,父进程读取文件内容输出,实现进程协同工作。实验内容 父进程框架 void main() /为创建进程做准备工作 /创建子进程 If(创建失败) 返回 Else(创建成功 ) /执行 计算 1100 的和 /等子进程执行完, 读取子进程的文件内容 ,并输出。 程序框架 子进程框架 void main() /创建文件 If(失败)

3、 返回 Else(成功) /向文件写入数据 /读取文件内容输出 BOOL CreateProcess( LPCTSTR lpApplicationName , /指定可执行程序名 LPTSTR lpCommandLine , /命令行字符串,可以为 NULL LPSECURITY_ATTRIBUTES lpProcessAttributes , /新进程对象的安全属性 LPSECURITY_ATTRIBUTES lpThreadAttributes , /新进程对应线程的安全属性 BOOL bInheritHandles ,/指定父进程的对象句柄是否能被子进程继承 DWORD dwCreati

4、onFlags , /指定创建进程的附加标记,即指定新创建进程的特性 LPVOID lpEnvironment ,/指定新进程使用的环境, NULL表示同父进程环境 LPCTSTR lpCurrentDirectory , /指定子进程当前路径, NULL表示与父进程路径相同 LPSTARTUPINFO lpStartupInfo , /指定新进程主窗口如何显示 LPPROCESS_INFORMATION lpProcessInformation /作为返回值使用,是一个指针 ); 父进程创建子进程用 CreateProcess函数来创建一个新进程 当调用 CreateProcess时, 系统所做的工作: 1、首先,系统创建一个进程内核对象,其初始使用计数为 1。 (进程内核对象并不代表进程本身,而是操作系统用来管理这个进程的一个数据结构。) 2、然后,系统为新进程创建一个虚拟地址空间,并将可执行文件(和所有必要的 DLL)的代码及数据加载到进程的地址空间。 3、 最后,系统为新进程创建一个主线程内核对象 (使用计数为 1) (线程内核对象是操作系统用来管理线程的数据结构。)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 课件讲义

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。