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


    • 姓名 :万大明
    • 学号 :201821121058
    • 班级 :计算1812

    1. 编写程序

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

    #include <sys/types.h>
    #include <unistd.h>
    #include <stdio.h>
    int main(){
        pid_t fpid1,fpid2; 
        fpid1=fork();
        if(fpid1<0){
            printf("error in fork");
        }
        else if(fpid1==0){
            printf("Child process,my process is %d
    ",getpid());
        }
        else{
            fpid2=fork();
            if(fpid2==0){
                printf("Child process,my process is %d
    ",getpid());
            }
            else
                printf("Parent process,my process is %d
    ",getpid());
        }
        sleep(1000);
        return 0;  
    }  
    

    2. 打印进程树

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

    3. 解读进程相关信息

    (1) ps -ef

    UID: 即图中第一行列wandamin+”,该进程的执行者ID

    PID: 这个进程的ID,为上述第二列的数字

    PPID: 进程的父进程ID,例如上述表现为第三列23720是第二列1309的父进程ID

    C: CPU所使用的资源占用比,上述表现为第四列的“0”

    STIME: 进程的启动时间

    TTY: 终端的次要装置码,上述为“pts/7”

    TIME: 进程执行时间,上述为“00:00:00”

    CMD: 所执行的命令,上述为“grep "test" ”,对应为“./test”

    (2) ps -aux

    USER: 进程拥有者

    PID: 进程的ID号,上述第二列数字

    %CPU: 占用的 CPU 使用率,为上述第三列

    %MEM: 占用的内存使用率,上诉第四列,此时为0.0

    VSZ: 占用的虚拟内存大小,上诉第五列

    RSS: 占用的内存大小,上诉第六列

    TTY: 终端的次要装置号码,为“pts/7”

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

    START: 进程开始时间,上诉为“12:16”

    TIME:进程执行的时间,为“0:00”

    COMMAND:所执行的指令,上述为“grep "test" ”,对应为“./test”

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

    1、vim命令具体操作方法:

                进入vim命令:vim 文件名.c(例如:vim test.c)注:c代表C语言代码

                vim操作:先按“ESC”,再输入“:”,输入一下命令即可执行对应操作。

                        :w 当前的内容保存
                        :wq 保存退出vi
                        :q! 放弃存盘退出
                        :zz 仅把修改过的内容存盘
                        :n1[,n2] w filename 把第n1行到n2行写入文件

    2、无法打印进程树问题:

                解决方法:在代码中加入代码段"sleep(1000)",其中1000可以是其他

                                  数值,代表时间限制。

  • 相关阅读:
    上传相同文件名的时候不能触发change事件的解决方案
    react自定义组件属性类型检测
    在react项目当中使用redux
    redux使用需要注意的地方
    关于在redux当中 reducer是如何知道传入的state是初始化state下面的哪一条数据
    react当中子组件改变父组件的状态
    vscode编辑器开发react时,设置使emmet支持自定义组件
    Sass之二(进阶篇)
    Sass之一(基础篇)
    sass ruby环境 安装配置,使用sublime text3 中sass
  • 原文地址:https://www.cnblogs.com/jiuyouir/p/12635679.html
Copyright © 2020-2023  润新知