个人信息:
- 姓名:危文涛
- 学号:201821121048
- 班级:计算1812
1. 编写程序
在服务器上用VIM编辑器编写一个程序:一个进程创建(fork)两个子进程。给出源代码:
运行结果截图:
2. 打印进程树
打印1所创建的进程树结构,给出带有自己名字的截图。
3. 解读进程相关信息
(1) ps -ef
UID: 该进程使用的用户id(weiwentao)
PID:该进程的ID(2533,2534,4234等)
PPID: 该进程的父级进程的ID(如4234)
C: CPU的占有率
STIME: 进程开始时间(20:59)
TTY: 该进程在哪个终端机器上运作,若与终端机无关,则显示? ; 若为pts/0等等,则表示远程登录(如图中的pts/4)。
TIME:指程序使用的CPU时间
CMD: 下达的指令的名称./forktest
(2) ps -aux
USER:进程的用户账号
PID:进程的ID
%CPU:进程占用的CPU百分比
%MEM:表示该进程占用内存的百分比,途中表示三个进程都没有占用内存
RSS:该进程占用的固定内存量(KB)
TTY:该进程在哪个终端上运行(登陆者的终端位置),若与终端无关,则显示(?)若为pts/0等,则表示由网络连接主机进程
STAT:状态位常见的状态字符
START:该进程被触发启动的时间
TIME:该进程实际使用CPU运行的时间
COMMAND :执行命令的名称;
D :无法中断的休眠状态(通常 IO 的进程);
R: 正在运行可中在队列中可过行的;
S: 该进程属于睡眠状态;
T :停止或被追踪;
W: 进入内存交换
X :该程序目前正停止或者被追踪(基本很少见);
Z: 僵尸进程;
4. 通过该实验产生新的疑问及解答
通过该实验如果有产生新的疑问,可以写出来,并尝试自己解决问题。
1.第一次上手时搞不清楚vim的快捷键,不知道什么时候是输入如何保存退出,按下:时vim没有反应。
要同时按下shift和:才能进行相关的操作,如保存退出、强制退出等。
2.在创建进程时由于粗心导致for循环未进行两次,只创建了一个子进程。
返回vim编辑把for循环的条件修改成两次循环即可。