操作系统第二次实验

操作系统实验二 进程控制

​ 16281049 王晗炜 计科1601

实验题目
  1. 打开一个vi进程。通过ps命令以及选择合适的参数,只显示名字为vi的进程。寻找vi进程的父进程,直到init进程为止。记录过程中所有进程的ID和父进程ID。将得到的进程树和由pstree命令的得到的进程树进行比较。
    • 使用ps逐步查找

      • 首先在所在目录下使用vi打开一个文本文件,启动vi进程:

        在这里插入图片描述

      • 之后在终端中使用ps命令配合grep命令查找该进程:

        在这里插入图片描述

      • 在这里-ef表示显示出进程的完整信息,以下依次为结果各列对应的项:

        • UID:程序被该 UID 所拥有
        • PID:就是这个程序的ID
        • PPID:则是其上级父程序的ID
        • C:CPU使用的资源百分比
        • STIME:系统启动时间
        • TTY:登入者的终端机位置
        • TIME:使用掉的CPU时间。
        • CMD:所下达的是什么指令
      • 根据其父进程继续查找,直到找到进程init:

        在这里插入图片描述

        在这里插入图片描述

        在这里插入图片描述

        在这里插入图片描述

        在这里插入图片描述

        在这里插入图片描述

        如图所示进程1便是我们要找到了init进程,至此查询结束。

    • 使用pstree查找

      • 直接在终端中查询init进程的进程树:

        在这里插入图片描述

      • 如图所示其子进程众多,我们转而查询进程1017的进程树:

        在这里插入图片描述

        在这里插入图片描述

      • 所标记的即为我们需要查找的子树

    • 二者比较

      使用ps命令查找是从当前进程一步步寻找父进程,是一个自底向上的过程,而pstree指令与之相反,是一个自顶向下的过程,前者查找的信息较为全面且精确,但需要操作的步数较多,而后者给出的信息虽然较少,但结构一目了然,不过在子进程较多的情况下寻找所需信息也较为复杂。因此这两种方法应结合实际情况具体分析选择使用。

  2. 编写程序,首先使用fork系统调用,创建子进程。在父进程中继续执行空循环操作;在子进程中调用exec打开vi编辑器。然后在另外一个终端中,通过ps –Al命令、ps aux或者top等命令,查看vi进程及其父进程的运行状态,理解每个参数所表达的意义。选择合适的命令参数,对所有进程按照cpu占用率排序。
    • 按照题目要求编写程序,一下为源代码2-2.c:

      #include <sys/types.h>
      
      #include <unistd.h>
      
      #include <stdio.h>
      
      
      
      int main(){
             
      
      	pid_t pid;
      
      	pid = fork();
      
      	if (pid > 0){
             
      
          	printf ("I am the parent of pid=%d!\n", pid);
      
          	while(1);
      
      	}
      
      	else if (!pid){
             
      
          	printf ("I am the baby!\n");
      
          	int ret;
      
          	ret = execl ("/usr/bin/vi", "vi","/home/anjinggufa/桌面/lab2/2-2.c", NULL);
      
          	if (ret == -1)
      
              	perror ("execl");
      
      	}
      
      
      
      	else if (pid == -1)
      
          	perror ("fork");
      
      	return 0;
      
      }
      
    • 在终端下使用gcc编译并运行该程序:

      在这里插入图片描述

    • 之后使用ps命令查询父进程的进程号:

      在这里插入图片描述

    • 使用top命令查看二者的进程运行状况:

      在这里插入图片描述

      在这里插入图片描述

      在top命令中p参数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值