实验一、进程控制实验
1.1 实验目的
加深对于进程并发执行概念的理解。实践并发进程的创建和控制方法。观察和体验进程的动
态特性。进一步理解进程生命期期间创建、变换、撤销状态变换的过程。掌握进程控制的方
法,了解父子进程间的控制和协作关系。练习 Linux 系统中进程创建与控制有关的系统调
用的编程和调试技术。
1.2 实验说明
1)与进程创建、执行有关的系统调用说明进程可以通过系统调用 fork()创建子进程并和其
子进程并发执行.子进程初始的执行映像是父进程的一个复本.子进程可以通过 exec()系
统调用族装入一个新的执行程序。父进程可以使用 wait()或 waitpid()系统调用等待子进
程的结束并负责收集和清理子进程的退出状态。
fork()系统调用语法:
#include <unistd.h> pid_t
fork(void);
fork 成功创建子进程后将返回子进程的进程号,不成功会返回-1.
exec 系统调用有一组 6 个函数,其中示例实验中引用了 execve 系统调用语法:
#include <unistd.h>
int execve(const char *path, const char *argv[], const char * envp[]); path 要装入
的新的执行文件的绝对路径名字符串.
argv[] 要传递给新执行程序的完整的命令参数列表(可以为空).
envp[] 要传递给新执行程序的完整的环境变量参数列表(可以为空).