实验一进程控制与描述.ppt
文本预览下载声明
操作系统原理实验 浙江工业大学 计算机科学与技术学院 李 波 实验一 进程控制与描述 实验目的: 利用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
显示全部