实验 2 进程控制
实验内容:
在 windows 系统下通过有关进程的系统调用,实现进程的简单操作,并观察程序的
运行情况,通过阅读和分析实验程序,分析执行结果。这些加深对进程概念的理解,明确
进程与程序之间的区别。
实验目的:
通过创建进程、观察正在运行的进程和终止进程的程序设计和调试操作,进一步熟悉
操作系统的进程概念,理解 Windows 进程的“一生”,并了解学习创建进程、观察进程和终
止进程的程序设计方法。
实验要求:
(1)理解系统调用 CreateProcess()的功能。
(2)编译并运行给出的程序,独立观察和分析程序执行的结果,给出需要回答的问题。
(3)有多余时间则编写程序,实现输入任意执行文件并启动和选择结束进程功能的程序。
背景知识u
Windows 所创建的每个进程都从调用 CreateProcess()函数开始,该函数的任务是在对象
管理器子系统内初始化进程对象,而进程都以调用 ExitProcess() 或 TerminateProcess() 函
数终止。
1. 创建进程
CreateProcess() 调用的核心参数是可执行文件运行时的文件名及其命令行。下表详细
地列出了每个参数的类型和名称。
CreateProcess() 函数的参数
参数名称 使用目的
LPCTSTR lpApplivationName 指明包括可执行代码的 EXE 文件的文件名
LPCTSTR lpCommandLine 向可执行文件发送的参数
LPSECURIITY_ATTRIBUTES
lpProcessAttributes
返回进程的安全属性。
LPSECURIITY_ATTRIBUTES
lpThreadAttributes
返回进程的主线程的安全属性
BOOL bInheritHandle 一种标志,告诉系统允许新进程继承创建者进程的句柄
DWORD dwCreationFlage 特殊的创建标志 (如 CREATE_SUSPENDED) 的位标记
LPVOID lpEnvironment
向新进程发送的一套环境变量;如为 null 值则发送调用者环
境
LPCTSTR lpCurrentDirectory
新进程的启动目录
STARTUPINFO lpStartupInfo
STARTUPINFO 结构,包括新进程的输入和输出配置的信息
LPPROCESS_INFORMATION
lpProcessInformation
应用程序的进程和主线程的句柄和 ID