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

  • 姓名毛琳淇
  • 学号201821121007
  • 班级计算1811

1. 编写程序

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

 #include<sys/types.h>

 #include<stdio.h>

 #include<unistd.h>

 int main()

 {

     pid_t pid;

     int i;

     for(i-0;i<2;i++){

     pid=fork();

     if(pid<0||pid==0){

         break;

     }

     }

     if(pid<0){

         printf("error in fork\n");

     }

     else if(pid==0){

         printf("Child process,my process id is %d\n",getpid());

      }

     else{

          printf("Parent process,my process id is %d\n",getpid());

      }

      sleep(1000);

      return 0;

  }

2. 打印进程树

 

 

 

 

 

 

 

3. 解读进程相关信息

(1) ps -ef

 

 

 

 

 

UID:用户ID 

PID:进程ID

PPID:父进程ID

C:进程占用CPU的百分比

STIME:进程启动到现在的时间

TTY:终端的次要装置号码

TIMECPU运行时间

CMD:命令的名字和参数

(2) ps -aux

 

 

 

 

 

USER:用户ID 进程拥有者

PID进程ID

%CPU:进程占用CPU使用率

%MEM进程占用内存的百分比

VSZ占用虚拟内存量

RSS占用固定内存量

TTY进程的登录终端位置

STAT进程的状态,现在为T表示暂停或跟踪状态

START进程启动时的时间

TIMECPU运行时间

COMMAND:命令的名字和参数

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

1)第一次运行只能启动一个子进程。

答:然后发现是循环部分出了问题。

2)无法通过pstree打印进程树。

答:延长sleep函数中的时间后解决了。

posted @ 2020-04-04 22:41  my7in7i  阅读(212)  评论(0编辑  收藏  举报