码迷,mamicode.com
首页 > 系统相关 > 详细

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

时间:2020-04-04 18:36:45      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:style   编辑   提示   fat   使用   star   cond   占用   树结构   

  • 姓名:祁翌炀
  • 学号:201821121019    
  • 班级:计算1811

1. 编写程序

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

1 #include <stdio.h>
  2 #include <sys/types.h>
  3 #include <unistd.h>
  4 int main()
  5 {
  6     pid_t pid1=fork();
  7     if(pid1==0)
  8         printf("child1的ID为:%d\n",getpid());
  9     else if(pid1<0)
 10         printf("child1 create error!\n");
 11     else
 12     {
 13         printf("father1的ID为:%d\n",getpid());
 14         pid_t pid2=fork();
 15         if(pid2==0)
 16             printf("child2的ID为:%d\n",getpid());
 17         else if(pid2<0)
 18             printf("child2 create error\n");
 19         else
 20             printf("father2的ID为:%d\n",getpid());
 21     }
 22     sleep(1000);
 23     return 0;
 24 }
 25
 26
~                                                                                                                       ~                                                                                                                       ~                  

编译启动child代码,观察父进程和子进程的ID;

 

 

 

 技术图片

2. 打印进程树

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

技术图片

提示:

  • 使用unsigned sleep(unsigned seconds)挂起进程,以便打印进程树
  • 打印进程树命令pstree -p pid

3. 解读进程相关信息

(1) ps -ef

技术图片

 

 

 技术图片

技术图片

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

UID:-该用户的登录用户名。

PID:该进程的进程号

PPID:父进程的进程号。由图可知,2998 2999的两个子进程都是又2997的进程所创建

C:占用CPU的量,图中为0

STIME:创建该进程的时间,可知父进程连着子进程一起创建

TTY:pts/2  pts/0-2为远程登录终端, tty0-6为自己的终端登录。

TIME : 指程序使用掉 CPU 的时间,因为CPU消耗为0,所以他为0

CMD:可执行文件下达的命令

(2) ps -aux

技术图片

技术图片

技术图片

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

UESR:登陆者用户名

PID:进程的进程号

CPU:CPU占有率

MEM:内存占有率

VSZ:虚拟内存量

 RSS:固定内存量

TTY:pts/2  pts/0-2为远程登录终端, tty0-6为自己的终端登录。

 STAT:进程状态

T为停止

Z为僵尸进程

S为休眠

S+有子进程的进程

START:进程开始时间

TIME:进程使用CPU的时间

COMMAND:在当前时间使用的指令代码

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

1:一开始不知道fork的含义是什么。然后如何去写这个创建的代码的时候也不知道如何下手。

后面了解了之后明白 应该先从父进程这边开始创建。父进程的pid=1的时候,他还没有子进程,所以这个

时候我们就可以让他创建子进程了。就利用一下判断语句进行让他循环。

然后同理,再创建第二个进程的前提是第一个子进程已经被创建好了。最后实现代码。

2:发现了在Ubuntu 用ps-aux的命令时候可以观察到其他同学在做什么东西。就是其他同学是啥时候登录的,

现在正在使用什么

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

标签:style   编辑   提示   fat   使用   star   cond   占用   树结构   

原文地址:https://www.cnblogs.com/qbbnb/p/12632923.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!