个人信息:
- 姓名:林永鑫
- 学号:201821121040
- 班级:计算1812
1. 编写程序
在服务器上用VIM编辑器编写一个程序:一个进程创建(fork)两个子进程。给出源代码:
运行结果:
2. 打印进程树
打印1所创建的进程树结构,给出带有自己名字的截图。
使用sleep(100)挂起进程,以便打印进程树
3. 解读进程相关信息
(1) ps -ef
使用ps -ef
给出所创建进程的信息,并分析每个字段的含义。
UID:该进程执行的用户ID
PID:进程的ID
PPID:该进程的父级进程ID
C:CPU占用率,单位:%
STIME:进程的启动时间
TTY:该进程在哪个终端上运行(登陆者的终端位置),若与终端无关,则显示(?)若为pts/0等,则表示由网络连接主机进程
TIME:该进程实际使用CPU运行的时间
CMD:进程的名称或对应的路径
(2) ps -aux
使用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.在编辑代码的时候出现:E348:No string under cursor(提示)
解决方法:
按一下“ESC”,即可回到命令行模式,输入按一下“:”冒号键进入底行模式。
输入:
: w filename (将文章以指定的文件名filename保存)
: wq (输入「wq」,存盘并退出vim)
: q! (输入q!, 不存盘强制退出vim)
2.在打印进程树的时候使用pstree -p pid 无法打印出进程树
解决方法:增加挂起的时间(我将原来的sleep(10)改为sleep(100))