标签:star http roc RoCE 字段 log 编写 uid src
姓名:王璐璐
学号:201821121037
班级:计算1812
用vim编写程序——使用fork()创建两个子进程。代码如下:
 #include <stdio.h>
 #include <sys/types.h>
 #include <unistd.h>
 int main(){
     pid_t fpid;
     fpid=fork();
     if(fpid<0){
         printf("error");
     }
     else if (fpid==0){
         printf("child process 1,process id: %d\n",getpid());
     }
     else{
         pid_t fpid2=fork();
         if(fpid2<0){
             printf("error2");
         }
         else if(fpid2==0){
             printf("child process 2,process id: %d\n",getpid());
         }
         else{
             printf("parent process,process id: %d\n",getpid());
         }
         sleep(500);         //延迟100秒,进程挂起
     }
 }
编译过程:

得到的程序运行结果图如下:

(1)在代码中创建完进程后,使用sleep(500)函数,将进程挂起了500秒。
(2)方法一:打开两个控制台,一个开启程序,一个打印进程树;
(3)使用 命令打印出上述进程的进程树,结果如下:
命令打印出上述进程的进程树,结果如下:

其中15250为父进程的pid号,15251和15252分别为两个子进程的pid号
(4)方法二:用“&”将进程放置后台运行,再打印进程树


(1)下图中红色框表示的是查找到的与创建的父子进程相关的进程信息:

(2)执行 后,会有以下几个字段
后,会有以下几个字段
UID PID PPID C STIME TTY TIME CMD
(3)根据执行fork.c程序,解释上述的几个字段含义:
①UID:表示用户的ID。在该实验中,用户ID是wanglulu,这是我登录服务器时的用户名;
②PID:表示某一个进程的ID号。在该实验中,fork.c创建了三个进程,其进程ID号分别为15250,15251,15252;
③PPID:表示某一个进程的父进程ID号。在该实验中,fork.c创建了一个父进程和两个子进程,从结果图中可以看出进程ID15251和15252的父进程ID均为15250;

④C:表示CPU使用的资源百分比。在该实验中,三个进程的资源百分比均为0;
⑤STIME:表示程序启动时间。从该实验的结果图中,可以发现创建父进程的同时会将两个子进程创建好,这三个进程的创建时间是一致的;
⑥TTY:表示进程与控制终端的关联值。由于fork.c中创建的三个进程是父子关系,这三个进程最后得到TTY值是一样的,值pts/1表示在桌面Linux中是标准输出;
⑦TIME:表示进程使用的总CPU时间。由结果图可知,创建进程无需使用CPU
⑧CMD:所下达的指令名称

(1)下图是执行 命令后得到的字段结果:
命令后得到的字段结果:

(2)执行 后,会有以下几个字段:
后,会有以下几个字段:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
(3)根据执行fork.c程序,解释上述的几个字段含义:
①USER:表示的含义与使用“ps -ef”中的字段“UID”相类似;
②PID:同“ps -ef”中的“PID”;
③%CPU:同“ps -ef”中的“C”;
④%MEM:表示该进程所占用的物理内存百分比。在该实验中显示这三个进程所占的物理内存百分比均为0;
⑤VSZ:表示的是该进程使用掉的虚拟内存量 (Kbytes)。由结果图可以看出父进程和第二个子进程均开辟了4508Kbytes大小的空间,由于第一个子进程处于僵死状态,第一个子进程并未占空间,即每次使用fork()创建一个进程时,都会开辟一个大小相同的虚拟内存空间;
⑥RSS:表示的是该进程占用的固定的内存量 (Kbytes)。从结果图中可以看出父进程所占用的固定内存量比子进程的大很多,子进程所占有的固定内存量是一致的;
⑦TTY:同“ps -ef”中的“TTY”;
⑧STAT:表示的是该程序目前的状态。由结果图中可以得出,父进程和第二个子进程正处于睡眠状态中,而第一个子进程处于终止状态,但父进程未将该子进程进行回收;
⑨START:表示的是该进程被触发启动的时间;
⑩TIME:表示的是该进程实际使用 CPU 运作的时间;COMMAND:同“ps -ef”中的“CMD”
(1)创建的子进程中,第一个子进程的状态处于僵死状态,还未找到错误处;
TTY值的取值含义解释:https://blog.csdn.net/u013115811/article/details/78849165
标签:star http roc RoCE 字段 log 编写 uid src
原文地址:https://www.cnblogs.com/jmuaia-wll/p/12636620.html