操作系统第2次实验报告:创建进程

  • 姓名:白晓
  • 学号:201821121035
  • 班级:计算1812

1. 编写程序

在服务器上用VIM编辑器编写一个程序:一个进程创建(fork)两个子进程。给出源代码:

#include<sys/types.h>
#include<unistd.h>
#include<stdio.h>

int main()
{
 pid_t fpid;
 int i;
 for(i=0;i<2;i++)
 {
 fpid=fork();
 if(fpid==0 || fpid<0){
 break; 
}
 }
 if(fpid<0)
 printf("error in fork!");
 else if(fpid==0){
 printf("Child process,my process id is %d\n",getpid());
 }
 else{
 printf("Parent process,my process id is %d\n",getpid());
 }
 sleep(100);
 return 0;
 }

 

后台运行结果:

2. 打印进程树

打印1所创建的进程树结构,给出带有自己名字的截图。

3. 解读进程相关信息

(1) ps -ef

使用ps -ef给出所创建进程的信息,并分析每个字段的含义。

UID      PID     PPID     C       STIME      TTY          TIME         CMD
baixiao  1136    19737    0       20:53     pts/1       00:00:00    ./shiyaner
baixiao  1137    1136     0       20:53     pts/1       00:00:00    ./shiyaner
baixiao  1138    1136     0       20:53     pts/1       00:00:00    ./shiyaner

 

 

UID:用户ID为baixiao

PID:该进程的ID为:1136、1137、1138

PPID:进程1136的父进程ID为19737,进程1137、1138的父进程ID为1136

C:进程cpu占有率为0

STIME:进程启动时间为20:53

TTY:该进程登录终端

TIME:进程执行时间为0

CMD:指下达的指令

(2) ps -aux

使用ps -aux给出所创建进程的信息,并分析每个字段的含义。

USER      PID    %CPU     %MEM    VSZ     RSS    TTY     STAT  START    TIME    COMMAND
baixiao   1136    0.0     0.0     4508    788    pts/1    S    20:53    0:00  ./shiyaner
baixiao   1137    0.0     0.0     4508    68     pts/1    S    20:53    0:00  ./shiyaner
baixiao   1138    0.0     0.0     4508    68     pts/1    S    20:53    0:00  ./shiyaner

 

USER:用户为baixioa

PID:进程的ID为:1136、1137、1138

%CPU:进程CPU占有率为0

%MEM:进程使用的物理内存和总内存的百分比为0

VSZ:占用虚拟内存量为4508KB

RSS:进程1136占用固定内存量为788KB,进程1137与1138占用固定内存量为68KB

TTY:该进程登录终端

STAT:该进程的状态为S,表示可中断的睡眠状态

START:进程被触发的时间为20:53

TIME:进程执行时间为0

CMD:指下达的指令

4. 通过该实验产生新的疑问及解答

Q:打开两个终端,另一个终端使用ps -ef无法给出信息

A:需要先运行另一个终端的父进程,在运行ps -ef以及ps -aux

Q:STAT的其他状态

A:

资料来源:https://www.cnblogs.com/programmer-tlh/p/11593330.html

posted @ 2020-04-03 21:36  木澈  阅读(304)  评论(0编辑  收藏  举报