个人信息
姓名:林伟强
学号:201821121010
班级:计算1811
一、实验目的
熟练Linux创建进程fork操作。
二、实验内容
- 在服务器上用VIM编写一个程序:一个进程创建两个子进程。
- 查看进程树
- 查看进程相关信息
三、实验报告
1. 编写程序
2. 打印进程树
程序运行结果:
(开启2个终端一个挂程序,另一个打印树)
3. 解读进程相关信息
用的时候必须在另一个程序中将进程挂起
(1) ps -ef
UID PID PPID C STIME TTY TIME CMD
uid:为用户id
pid :进程id
ppid:父进程的PID(由后面的2个进程可以看出)
c:为进程占cpu率
stime 为运行的时候的时间
TTY是终端名
pts是虚拟终端/第3终端
time 运行持续时间
cmd 为表示启动这个进程的命令
(2) ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
%cpu:cpu占用率
%MEM: 占用的记忆体使用率
VSZ:完全驻留需要会用多少内存
RSS,表示进程当前实际上占用了多少内存
STAT,该进程的状态,S表示中断
剩下的和上面ps -ef相同
4. 通过该实验产生新的疑问及解答
为什么我的程序中得到的子进程的pid输出的时候是反着输出的。
getpid是一种函数,功能是取得进程识别码,许多程序利用取到的此值来建立临时文件,以避免临时文件相同带来的问题。