Linux进程控制实验:fork与vi编辑器的使用

需积分: 0 0 下载量 140 浏览量 更新于2024-08-05 收藏 816KB PDF 举报
"实验二_16281022_战泓夷1" 在本次实验中,我们探讨了进程控制以及如何利用Linux系统调用和命令来管理和观察进程。实验主要包括两个部分: 第一部分涉及查找和理解进程树。首先,通过在终端中使用`vi`启动一个编辑器进程,然后利用`ps`命令的不同参数来查找和显示与`vi`相关的进程。例如,可以使用`ps -C vi`来仅显示名为`vi`的进程。接着,我们需要跟踪这些进程的父进程ID,直到找到根进程`init`。这可以通过反复使用`ps`命令并关注`PPID`(父进程ID)字段来实现。同时,`pstree -p1`命令提供了一种简洁的视图,显示了以`init`为起点的整个进程树。两者对比,`ps`命令提供的信息更为详尽,而`pstree`则更直观。 第二部分涉及到`fork`系统调用和`exec`函数的使用。我们编写了一个程序,使用`fork`创建子进程。在父进程中,我们设置了一个空循环,以便它能持续运行。而在子进程中,我们调用`exec`来启动`vi`编辑器。为了监控这个过程,可以在另一个终端中使用`ps -Al`、`ps aux`或`top`命令。这些命令可以帮助我们了解进程的状态,如CPU利用率、内存使用情况以及进程的优先级和nice值等。例如,`ps -Al`提供了包括PID、PPID、CPU使用率(%CPU)和内存使用率(%MEM)在内的详细信息。为了按CPU占用率排序进程,可以使用`ps -eo %cpu,pid,cmd`等参数。这有助于我们观察`vi`进程及其父进程的资源使用情况。 在这个实验中,我们学习了如何利用`fork`创建进程,以及如何通过`exec`在子进程中替换执行体,从而启动新的程序。同时,我们掌握了如何使用Linux命令来监控和分析系统中的进程,这对于理解和优化系统的性能至关重要。通过实践,我们加深了对进程生命周期、父子进程关系以及系统资源管理的理解。