网站大量收购闲置独家精品文档,联系QQ:2885784924

实验一进程控制与描述.ppt

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统原理实验 浙江工业大学 计算机科学与技术学院 李 波 实验一 进程控制与描述 实验目的: 利用Windows提供的API函数,编写程序,实现进程的创建和终止(如创建写字板进程及终止该进程),加深对操作系统进程概念的理解,观察操作系统进程运行的动态性能,获得包含多进程的应用程序编程经验。 Windows 所创建的每个进程都从调用CreateProcess() API函数开始,该函数的任务是在对象管理器子系统内初始化进程对象; 每一进程都以调用ExitProcess() 或TerminateProcess() API函数终止。 背景知识 进程创建实例 BOOL CreateProcess( LPCTSTR lpApplicationName, LPTSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, DWORD dwCreationFlags, LPVOID lpEnvironment, LPCTSTR lpCurrentDirectory, LPSTARTUPINFO lpStartupInfo, LPPROCESS_INFORMATION lpProcessInformation ); 各项参数意义 lpApplicationName:指定要执行的模块,包括可执行代码的EXE文件的文件名。 lpCommandLine:指向一个以空结尾的串,该串定义了要执行的命令行。该命令行是可以在Windows提示符下执行的命令行。 lpProcessAttributes:指向一个SECURITY_ATTRIBUTES结构,该结构决定了返回的句柄是否可被子进程继承。 lpThreadAttributes:指向一个SECURITY_ATTRIBUTES结构,该结构决定了返回的句柄是否可被子进程继承。 bInheritHandles:表明新进程是否可继承创建者进程的句柄。 dwCreationFlags:定义控制优先类和进程创建的附加标志。 lpEnvironment:指向一个新进程的环境块。 lpCurrentDirectory:指向一个以空结尾的串,该串定义了子进程的当前驱动器和当前目录。 lpStartupInfo:指向一个STARTUPINFO结构,该结构定义了新进程的主窗口将如何显示。 lpProcessInformation:指向进程信息描述结构,该结构接受关于新进程的描述信息。 各项参数意义 可执行文件运行时的文件名及其命令行,如 lpCommandLine=c:\\windows\\system32\\cmd.exe” 或lpApplicationName=“c:\windows\system32\cmd.exe” lpStartupInfor描述新进程的窗口显示情况。定义STARTUPINFO结构,并赋予初始值, 如:STARTUPINFO si; memset(si,0,sizeof(si)); si.cb=sizeof(si); lpProcessInformation指向进程信息描述结构,接受关于新进程的描述信息,如:PROCESS_INFORMATION pi CreateProcess() 调用的核心参数 所有进程都是以调用ExitProcess() 或者TerminateProcess() 函数结束的。 TerminateProcess() API函数只要打开带有PROCESS_TERMINATE访问权的进程对象,就可以终止进程,并向系统返回指定的代码。 如果不知道所创建进程中所有线程的状态,最好使用TerminateProcess() 终止进程。 终止进程 VOID ExitProcess( UINT uExitCode ); uExitCode [in] Exit code for the process and all threads terminated as a result of this call. Use the GetExitCodeProcess function to retrieve the processs exit value. Use the GetExitCodeThread function to retrieve a threads exit value. ExitProcess() BOOL Termin

文档评论(0)

550008333 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档