《实验一进程控制与描述.ppt》由会员分享,可在线阅读,更多相关《实验一进程控制与描述.ppt(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、实验一进程控制与描述现在学习的是第1页,共15页实验一实验一 进程控制与描述进程控制与描述实验目的:实验目的:w利用利用WindowsWindows提供的提供的APIAPI函数,编写程序,函数,编写程序,实现进程的创建和终止(如创建写字板实现进程的创建和终止(如创建写字板进程及终止该进程),加深对操作系统进程及终止该进程),加深对操作系统进程概念的理解,观察操作系统进程运进程概念的理解,观察操作系统进程运行的动态性能,获得包含多进程的应用行的动态性能,获得包含多进程的应用程序编程经验。程序编程经验。现在学习的是第2页,共15页wWindows 所创建的每个进程都从调用所创建的每个进程都从调用C
2、reateProcess()API函数开始,该函数的任函数开始,该函数的任务是在对象管理器子系统内初始化进程对务是在对象管理器子系统内初始化进程对象;象;w每一进程都以调用每一进程都以调用ExitProcess()或或TerminateProcess()API函数终止。函数终止。背景知识背景知识现在学习的是第3页,共15页进程创建实例进程创建实例 BOOL CreateProcess(LPCTSTR lpApplicationName,LPTSTR lpCommandLine,LPSECURITY_ATTRIBUTES lpProcessAttributes,LPSECURITY_ATTRIB
3、UTES lpThreadAttributes,BOOL bInheritHandles,DWORD dwCreationFlags,LPVOID lpEnvironment,LPCTSTR lpCurrentDirectory,LPSTARTUPINFO lpStartupInfo,LPPROCESS_INFORMATION lpProcessInformation );现在学习的是第4页,共15页各项参数意义各项参数意义wlpApplicationName:指定要执行的模块,包括可执行代码的EXE文件的文件名。wlpCommandLine:指向一个以空结尾的串,该串定义了要执行的命令行。该
4、命令行是可以在Windows提示符下执行的命令行。wlpProcessAttributes:指向一个SECURITY_ATTRIBUTES结构,该结构决定了返回的句柄是否可被子进程继承。wlpThreadAttributes:指向一个SECURITY_ATTRIBUTES结构,该结构决定了返回的句柄是否可被子进程继承。现在学习的是第5页,共15页wbInheritHandles,:表明新进程是否可继承创建者进:表明新进程是否可继承创建者进程的句柄。程的句柄。wdwCreationFlags:定义控制优先类和进程创建的:定义控制优先类和进程创建的附加标志。附加标志。wlpEnvironment:
5、指向一个新进程的环境块。:指向一个新进程的环境块。wlpCurrentDirectory:指向一个以空结尾的串,该串:指向一个以空结尾的串,该串定义了子进程的当前驱动器和当前目录。定义了子进程的当前驱动器和当前目录。wlpStartupInfo:指向一个:指向一个STARTUPINFO结构,该结结构,该结构定义了新进程的主窗口将如何显示。构定义了新进程的主窗口将如何显示。wlpProcessInformation:指向进程信息描述结构,该结:指向进程信息描述结构,该结构接受关于新进程的描述信息。构接受关于新进程的描述信息。各项参数意义各项参数意义现在学习的是第6页,共15页w可执行文件运行时的
6、文件名及其命令行,如可执行文件运行时的文件名及其命令行,如可执行文件运行时的文件名及其命令行,如可执行文件运行时的文件名及其命令行,如 lpCommandLine=c:windowssystem32cmd.exe“w wlpStartupInforlpStartupInfor描述新进程的窗口显示情况。定义描述新进程的窗口显示情况。定义STARTUPINFO结构,并赋予初始值,结构,并赋予初始值,结构,并赋予初始值,结构,并赋予初始值,如:如:如:如:STARTUPINFO si;memset(&si,0,sizeof(si);si.cb=sizeof(si);wlpProcessInforma
7、tion指向进程信息描述结构,接受指向进程信息描述结构,接受关于新进程的描述信息,如:关于新进程的描述信息,如:PROCESS_INFORMATION piCreateProcess()调用的核心参数调用的核心参数现在学习的是第7页,共15页w所有进程都是以调用所有进程都是以调用所有进程都是以调用所有进程都是以调用ExitProcess()或者或者TerminateProcess()函数结束的。函数结束的。wTerminateProcess()API函数只要打开带有函数只要打开带有函数只要打开带有函数只要打开带有PROCESS_TERMINATE访问权的进程对象,就可以访问权的进程对象,就可以
8、访问权的进程对象,就可以访问权的进程对象,就可以终止进程,并向系统返回指定的代码。终止进程,并向系统返回指定的代码。终止进程,并向系统返回指定的代码。终止进程,并向系统返回指定的代码。w如果不知道所创建进程中所有线程的状态,最好使如果不知道所创建进程中所有线程的状态,最好使用用TerminateProcess()TerminateProcess()终止进程。终止进程。终止进程。终止进程。终止进程终止进程现在学习的是第8页,共15页wVOID ExitProcess(UINT VOID ExitProcess(UINT VOID ExitProcess(UINT VOID ExitProcess
9、(UINT uExitCodeuExitCodeuExitCodeuExitCode););););wuExitCode in Exit code for the process and all threads terminated as a result of this call.Use the GetExitCodeProcessGetExitCodeProcess function to retrieve the processs function to retrieve the processs exit value.Use the exit value.Use the GetExit
10、CodeThread function to retrieve a threads exit value.ExitProcess()现在学习的是第9页,共15页wBOOL TerminateProcess(HANDLE BOOL TerminateProcess(HANDLE hProcesshProcess,UINT,UINT uExitCodeuExitCode););whProcessin Handle to the process to terminate.The handle must have the PROCESS_TERMINATE access right.wuExitCod
11、ein Exit code to be used by the process and threads terminated as a result of this call.Value 0 means current process.TerminateProcessTerminateProcess()现在学习的是第10页,共15页typedef struct _PROCESS_INFORMATION typedef struct _PROCESS_INFORMATION HANDLE hProcess;HANDLE hProcess;/Handle to the newly created
12、Handle to the newly created process.process.HANDLE hThread;HANDLE hThread;/Handle to the primary thread of/Handle to the primary thread of the newly created process.the newly created process.DWORD dwProcessId;DWORD dwProcessId;DWORD dwProcessId;DWORD dwProcessId;/Value that can be used to/Value that
13、 can be used to identify a process.identify a process.DWORD dwThreadId;DWORD dwThreadId;/Value that can be used to/Value that can be used to identify a thread.identify a thread.PROCESS_INFORMATION,PROCESS_INFORMATION,*LPPROCESS_INFORMATION;*LPPROCESS_INFORMATION;PROCESS_INFORMATIONPROCESS_INFORMATIO
14、N现在学习的是第11页,共15页w进程的创建和终止。编写一段程序,可以创建一个进程,进程的创建和终止。编写一段程序,可以创建一个进程,进程的创建和终止。编写一段程序,可以创建一个进程,进程的创建和终止。编写一段程序,可以创建一个进程,并终止当前创建的进程。试观察记录程序执行的结果,并终止当前创建的进程。试观察记录程序执行的结果,并终止当前创建的进程。试观察记录程序执行的结果,并终止当前创建的进程。试观察记录程序执行的结果,并分析原因。并分析原因。并分析原因。并分析原因。w利用利用VC+6.0实现上述程序设计和调试操作,对于进实现上述程序设计和调试操作,对于进程创建的成功与否、终止进程操作的成功
15、与否提供程创建的成功与否、终止进程操作的成功与否提供一定的提示框。一定的提示框。w w通过阅读和分析实验程序,学习创建进程、观察进程和终通过阅读和分析实验程序,学习创建进程、观察进程和终通过阅读和分析实验程序,学习创建进程、观察进程和终通过阅读和分析实验程序,学习创建进程、观察进程和终止进程的程序设计方法止进程的程序设计方法止进程的程序设计方法止进程的程序设计方法实验内容与步骤实验内容与步骤现在学习的是第12页,共15页w在开始本实验之前,请回顾教科书的相关内容在开始本实验之前,请回顾教科书的相关内容w需要做以下准备:需要做以下准备:n n一台运行一台运行一台运行一台运行Windows 200
16、0/XP Windows 2000/XP 操作系统的计算机操作系统的计算机操作系统的计算机操作系统的计算机n n计算机中需安装计算机中需安装计算机中需安装计算机中需安装Visual C+6.0Visual C+6.0专业版或企业版专业版或企业版专业版或企业版专业版或企业版工具工具/准备工作准备工作现在学习的是第13页,共15页思考思考w系统是怎样创建进程的?w可执行文件加载时进行了那些处理?w当首次调用新创建进程时,其入口在那里?现在学习的是第14页,共15页实验报告实验报告w每人独立一组,需要上交实验报告每人独立一组,需要上交实验报告w实验报告包括实验目的、实验内容、实验步骤、实验报告包括实验目的、实验内容、实验步骤、实验中遇到的问题及解决方法等。实验中遇到的问题及解决方法等。w上交程序源代码。上交程序源代码。w源代码和实验报告一并打包后上交,其命名方式为:源代码和实验报告一并打包后上交,其命名方式为:班级班级_学号学号_姓名姓名.rar(注:只需上交源代码,不需要上交生成的目标文件(注:只需上交源代码,不需要上交生成的目标文件及可执行文件。)及可执行文件。)w通过通过EMAIL地址上交:地址上交:现在学习的是第15页,共15页