山东大学计科3班:张畅进程控制实验报告

需积分: 0 0 下载量 58 浏览量 更新于2024-08-05 收藏 496KB PDF 举报
本次实验是关于山东大学计算机科学与技术学院2018级计科3班学生张畅在2020年11月17日进行的进程控制实验,旨在加深对进程并发执行的理解,掌握Linux系统中进程创建、控制、协作及其生命周期管理的方法。实验的主要目标包括: 1. **进程基础知识**:通过学习和理解进程的创建,如fork()函数,该函数原型为`pid_t fork()`,它用于创建子进程并与之并发执行。 2. **父子进程协作**:通过分析和实践exec()函数族,如`int execve(const char* path, const char* argv[], const char* envp[])`,子进程可以通过此调用来替换自身执行新的程序。 3. **进程控制与通信**:理解wait()和waitpid()系统调用,如`pid_t wait(int* status)` 和 `pid_t waitpid(pid_t pid, int* status, int option)`,这些函数让父进程能等待子进程结束并处理退出状态。同时,还涉及到getpid()和getppid()函数,分别获取当前进程ID和父进程ID。 4. **进程控制的高级操作**:使用kill()函数发送不同的信号,如SIGKILL、SIGTERM、SIGQUIT和 SIGINT(Ctrl+C)等,模拟进程间的交互。 在实验过程中,张畅面临了对进程间函数调用不熟悉的挑战,通过反复调试和理解示例代码,他设计了程序的逻辑结构,并最终实现了程序并成功进行了测试。在调试过程中,他还遇到了对 tester.c 测试程序工作原理的不了解,通过逐行阅读代码,他掌握了测试程序的工作机制,确保了程序的正确性。 总结来说,这次实验不仅巩固了张畅对进程控制相关知识的理解,还锻炼了他的编程技能和问题解决能力,让他深入体验了进程的动态特性和Linux系统调用的运用。