实验一进程控制与描述_第1页
实验一进程控制与描述_第2页
实验一进程控制与描述_第3页
实验一进程控制与描述_第4页
实验一进程控制与描述_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验一进程控制与描述第一页,共十五页,2022年,8月28日实验一进程控制与描述实验目的:利用Windows提供的API函数,编写程序,实现进程的创建和终止(如创建写字板进程及终止该进程),加深对操作系统进程概念的理解,观察操作系统进程运行的动态性能,获得包含多进程的应用程序编程经验。第二页,共十五页,2022年,8月28日Windows所创建的每个进程都从调用CreateProcess()API函数开始,该函数的任务是在对象管理器子系统内初始化进程对象;每一进程都以调用ExitProcess()或TerminateProcess()API函数终止。背景知识第三页,共十五页,2022年,8月28日进程创建实例

BOOLCreateProcess(LPCTSTRlpApplicationName,LPTSTRlpCommandLine,LPSECURITY_ATTRIBUTESlpProcessAttributes,LPSECURITY_ATTRIBUTESlpThreadAttributes,BOOLbInheritHandles,DWORDdwCreationFlags,LPVOIDlpEnvironment,LPCTSTRlpCurrentDirectory,LPSTARTUPINFOlpStartupInfo,LPPROCESS_INFORMATIONlpProcessInformation);第四页,共十五页,2022年,8月28日各项参数意义lpApplicationName:指定要执行的模块,包括可执行代码的EXE文件的文件名。lpCommandLine:指向一个以空结尾的串,该串定义了要执行的命令行。该命令行是可以在Windows提示符下执行的命令行。lpProcessAttributes:指向一个SECURITY_ATTRIBUTES结构,该结构决定了返回的句柄是否可被子进程继承。lpThreadAttributes:指向一个SECURITY_ATTRIBUTES结构,该结构决定了返回的句柄是否可被子进程继承。第五页,共十五页,2022年,8月28日bInheritHandles,:表明新进程是否可继承创建者进程的句柄。dwCreationFlags:定义控制优先类和进程创建的附加标志。lpEnvironment:指向一个新进程的环境块。lpCurrentDirectory:指向一个以空结尾的串,该串定义了子进程的当前驱动器和当前目录。lpStartupInfo:指向一个STARTUPINFO结构,该结构定义了新进程的主窗口将如何显示。lpProcessInformation:指向进程信息描述结构,该结构接受关于新进程的描述信息。各项参数意义第六页,共十五页,2022年,8月28日可执行文件运行时的文件名及其命令行,如

lpCommandLine="c:\\windows\\system32\\cmd.exe“lpStartupInfor描述新进程的窗口显示情况。定义STARTUPINFO结构,并赋予初始值,如:STARTUPINFOsi;memset(&si,0,sizeof(si));si.cb=sizeof(si);lpProcessInformation指向进程信息描述结构,接受关于新进程的描述信息,如:PROCESS_INFORMATIONpiCreateProcess()调用的核心参数第七页,共十五页,2022年,8月28日所有进程都是以调用ExitProcess()或者TerminateProcess()函数结束的。TerminateProcess()API函数只要打开带有PROCESS_TERMINATE访问权的进程对象,就可以终止进程,并向系统返回指定的代码。如果不知道所创建进程中所有线程的状态,最好使用TerminateProcess()终止进程。终止进程第八页,共十五页,2022年,8月28日VOIDExitProcess(UINTuExitCode);uExitCode[in]Exitcodefortheprocessandallthreadsterminatedasaresultofthiscall.UsetheGetExitCodeProcessfunctiontoretrievetheprocess'sexitvalue.UsetheGetExitCodeThreadfunctiontoretrieveathread'sexitvalue.ExitProcess()第九页,共十五页,2022年,8月28日BOOLTerminateProcess(HANDLEhProcess,UINTuExitCode);hProcess[in]Handletotheprocesstoterminate.ThehandlemusthavethePROCESS_TERMINATEaccessright.uExitCode[in]Exitcodetobeusedbytheprocessandthreadsterminatedasaresultofthiscall.Value0meanscurrentprocess.TerminateProcess()第十页,共十五页,2022年,8月28日typedefstruct_PROCESS_INFORMATION{

HANDLEhProcess;//Handletothenewlycreatedprocess.

HANDLEhThread;//Handletotheprimarythreadofthenewlycreatedprocess.

DWORDdwProcessId;//Valuethatcanbeusedtoidentifyaprocess.

DWORDdwThreadId;//Valuethatcanbeusedtoidentifyathread.

}PROCESS_INFORMATION,

*LPPROCESS_INFORMATION;

PROCESS_INFORMATION第十一页,共十五页,2022年,8月28日进程的创建和终止。编写一段程序,可以创建一个进程,并终止当前创建的进程。试观察记录程序执行的结果,并分析原因。利用VC++6.0实现上述程序设计和调试操作,对于进程创建的成功与否、终止进程操作的成功与否提供一定的提示框。通过阅读和分析实验程序,学习创建进程、观察进程和终止进程的程序设计方法实验内容与步骤第十二页,共十五页,2022年,8月28日在开始本实验之前,请回顾教科书的相关内容需要做以下准备:一台运行Windows2000/XP操作系统的计算机计算机中需安装VisualC++6.0专业版或企业版工具/准备工作第十三页,共十五页,2022年,8月28日思考系统是怎样创建进程的?可执行文件加载时进行了那些处理?当首次调用新创建进程时,其入口在那里?第十四页,共十五页,2022年,8月28日实验报告

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论