首页 > 系统服务 > 详细

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

时间:2020-04-05 00:08:35      阅读:74      评论:0      收藏:0      [点我收藏+]
个人信息

姓名:李瑶

学号:20182112002

班级:计算1811

1. 编写程序

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

#include<stdio.h>
#include<sys/types.h>
 #include<unistd.h>
 int main()
 {
    pid_t pid;
    int i;
    for(i=0;i<2;i++){
     pid=fork();
     if(pid<=0)
         break;
     }
     if(pid<0){
     printf("error in fork\n");
     }
     else if(pid==0){
         printf("Child porcess,process id is %d\n",getpid());
     }
     else{
         printf("Parent process,process id is %d\n",getpid());
     }
     sleep(1000);
     return 0;
}

 

 

2. 打印进程树

 

运行结果:

 

技术分享图片

 

进程树:

技术分享图片

 

3. 解读进程相关信息

(1) ps -ef

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

UID      PID   PPID   C STIME TTY      TIME      CMD
liyao    25208 19116  0 19:44 pts/4    00:00:00 ./forktest
liyao    25209 25208  0 19:44 pts/4    00:00:00 ./forktest
liyao    25210 25208  0 19:44 pts/4    00:00:00 ./forktest

UID: 表示用户ID

PID: 进程的ID号,上述程序产生三个进程,它们的ID分别为25208,25209和25210

PPID: 父进程的ID,进程25208的父进程是进程19116,进程25209和进程25210的父进程是25208 

C: CPU使用的资源百分比

STIME: 系统启动时间

TTY: 终端的次要装置号码

TIME: 进程使用CPU的时间

CMD: 所下达的指令名称

(2) ps -aux

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

USER      PID    %CPU  %MEM  VSZ     RSS   TTY    STAT  START  TIME  COMMAND
liyao    25208   0.0   0.0   4508   752    pts/4   S    19:44  0:00  ./forktest
liyao    25209   0.0   0.0   4508    68    pts/4   S    19:44  0:00  ./forktest
liyao    25210   0.0   0.0   4508    68    pts/4   S    19:44  0:00  ./forktest

 

USER: 进程拥有者

PID: 进程的ID号

%CPU: 占用的 CPU 使用率

%MEM: 占用的记忆体使用率

VSZ: 占用的虚拟记忆体大小

RSS: 占用的记忆体大小

TTY: 终端的次要装置号码

STAT: 该进程的状态,S表示中断

START: 进程开始时间

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

ps-aux指令执行后 start常见的状态除了S,还有哪些?

D:无法中断的休眠状态

R:正在运行可中在队列中可过行的

T:停止或被追踪

W:进入内存交换

Z:僵尸状态

<:优先级高的进程

N:优先级较低的进程

L:有些页面被锁进内存

l:多进程的  

 

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

原文:https://www.cnblogs.com/876144571yo-yo/p/12634118.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!