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

个人信息

姓名:郑楚杭

学号:201821121009

班级:计算1811

一、实验目的

熟练Linux创建进程fork操作。

二、实验内容

  • 在服务器上用VIM编写一个程序:一个进程创建两个子进程。
  • 查看进程树
  • 查看进程相关信息

三、实验报告

1. 编写程序

2. 打印进程树

编译1的程序并运行:

打印进程树:

3. 解读进程相关信息

(1) ps -ef

   UID         PID    PPID      C       STIME     TTY        TIME      CMD
zhengch+    31795  31794    0       23:29     pts/4    00:00:00   -bash
zhengch+      309    308      0       23:35     pts/3    00:00:00   -bash
zhengch+ 3   1794   31679     0       23:29     ?        00:00:00   sshd: [email protected]/4
UID:说明该程序被谁拥有
PID:就是指该程序的 ID
PPID: 就是指该程序父级程序的 ID
C: 指的是 CPU 使用的百分比
STIME: 程序的启动时间
TTY: 指的是登录终端
TIME : 指程序使用掉 CPU 的时间
CMD:下达的指令

(2) ps -aux

USER       PID  %CPU %MEM   VSZ   RSS  TTY  STAT  START  TIME   COMMAND

zhengch+   24850 0.0  0.3  76632  7464  ?   Ss  22:45  0:00 /lib/systemd/sy

zhengch+   24851 0.0  0.1  112468 3100  ?    S  22:45   0:00  (sd-pam)

zhengch+   31795 0.0  0.2   21944  4868 pts/4 Ss  23:29   0:00   -bash

USER: 进程拥有者 PID: pid %CPU: 占用的 CPU 使用率 %MEM: 占用的内存使用率 VSZ: 占用的虚拟内存大小 RSS: 占用的内存大小 TTY: 终端的次要装置号码 (minor device number of tty)     pts/0,1,2是标准输入,标准输出,标准出错 STAT: 该行程的状态,linux的进程有5种状态:    D 不可中断 uninterruptible sleep (usually IO)    R 运行 runnable (on run queue)    S 中断 sleeping    T 停止 traced or stopped    Z 僵死 a defunct (”zombie”) process  START: 行程开始时间 TIME: 执行的时间 COMMAND:所执行的指令

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

产生的疑问1:

执行ps -aux命令后,Stat状态出现了S和Ss两种情况,已知S表示中断,那么Ss表示什么?

解答1:

S表示的是中断,s表示包含子进程。

产生的疑问2:

为什么在编译运行c程序后得到父进程以及两个子进程的pid,但是在执行pstree -p pid无法打印出进程树?

解答2:

原因是需要在一个终端后台跑程序,另一个终端执行命令来打印进程树。

原文地址:https://www.cnblogs.com/hg65596302/p/12623980.html

时间: 2024-10-28 06:28:00

操作系统第2次实验报告:创建进程的相关文章

P330.9 实验报告 创建动态链表实现插入删除

#include<stdio.h> #include<stdlib.h> #define LEN sizeof(struct Student) struct Student {  long num;  char name[20];  int age;  float score;  struct Student *next; }; int n; struct Student *creat() {  struct Student*head; struct Student *p1,*p2

操作系统第二次实验:创建进程

0.个人信息 姓名:王璐璐 学号:201821121037 班级:计算1812 1.编写程序 用vim编写程序——使用fork()创建两个子进程.代码如下: #include <stdio.h> #include <sys/types.h> #include <unistd.h> int main(){ pid_t fpid; fpid=fork(); if(fpid<0){ printf("error"); } else if (fpid==

操作系统实验报告二

  操作系统实验报告二 姓名:许恺 学号:2014011329 日期:10月14日 题目1:编写线程池 关键代码如下: 1.Thread.h #pragma once #ifndef __THREAD_H #define __THREAD_H #include <vector> #include <string> #include <pthread.h> #pragma comment(lib,"x86/pthreadVC2.lib") using

操作系统ucore lab7实验报告

操作系统lab7实验报告 lab6完成了用户进程的调度框架和调度算法的具体实现,即到lab6位置,ucore系统已经可以同事调度运行多个程序.但是这又引来了一个新的问题,那就是当多个同时运行的进程要协同操作或是访问共享内存的时候,如何解决同步和有序竞争的问题. 本次实验的主要就是解决进程的同步问题 练习0:填写已有实验 同样使用一款名为meld的软件进行对比即可,大致截图如下: 这里把需要填充的文件罗列如下: proc.c default_pmm.c pmm.c swap_fifo.c vmm.

操作系统ucore lab4实验报告

操作系统lab4实验报告 本次实验将接触的是内核线程的管理.内核线程是一种特殊的进程,内核线程与用户进程的区别有两个:内核线程只运行在内核态而用户进程会在在用户态和内核态交替运行:所有内核线程直接使用共同的ucore内核内存空间,不需为每个内核线程维护单独的内存空间而用户进程需要维护各自的用户内存空间. 在本次实验完成之后,为了加深理解,我这里简单将之前的所有代码又重新阅读并梳理了一遍,简单作了下总结. 这里主要是从kern_init函数的物理内存管理初始化开始的,截图如下: 按照函数的次序我进

操作系统ucore lab8实验报告

操作系统lab8实验报告 本次实验涉及的是文件系统,通过分析了解 ucore 文件系统的总体架构设计,完善读写文件操作,从新实现基于文件系统的执行程序机制(即改写do_execve),从而可以完成执行存储在磁盘上的文件和实现文件读写等功能.可以看到,在kern_init函数中,多了一个fs_init 函数的调用.fs_init 函数就是文件系统初始化的总控函数,它进一步调用了虚拟文件系统初始化函数 vfs_init,与文件相关的设备初始化函数 dev_init 和 Simple FS 文件系统的

操作系统ucore lab5实验报告

操作系统lab5实验报告 到实验四为止,ucore还一直在核心态"打转",没有到用户态执行.创建用户进程,让用户进程在用户态执行,且在需要ucore支持时,可通过系统调用来让ucore提供服务.而本实验将进程的执行空间扩展到了用户态空间,出现了创建子进程执行应用程序等.即实验五主要是分析用户进程的整个生命周期来阐述用户进程管理的设计与实现. 练习0 填写已有实验 这里和前几个实验一样,照样运用meld软件进行对比,大致的截图如下: 这里简单将我们需要修改的地方罗列如下: proc.c

操作系统实验报告四

操作系统实验4 题目1:编写页面内存的LRU替换算法 在实验3基础上考虑,如果当前分配的内存或保存页面的数据项已经被用完,这时再有新的网页请求,需要对已在内存中的网页数据进行替换,本实验内容需要使用LRU算法来对内存中的网页数据进行替换 题目2:编写页面内存的LFU替换算法 实现LFU(最少访问频率的页面替换)算法来管理内存页面 实验报告要求: 实验报告封面如下页所示. 按照题目要求,完成相关实验题目. 2.1报告中要包含完成此题目所查阅的一些关键技术材料.例如内存结构的设计.分配管理.回收方法

操作系统实验报告三

操作系统实验报告三 姓名:许恺 学号:2014011329 日期:2016.11.22 题目1:设计一段内存结构,能够缓存一定数量的网页,在客户端访问时,首先从内存中查找是否存在客户端访问的网页内容,如果存在,则直接从内存中将相应的内容返回给客户端:如果不存在,则从磁盘中将网页内容读入到内存,并返回给客户端   1.思想以及准备怎么做 在刚刚读完题目之后我的想法已经有了一点感觉要怎样做了,因为报告拖了比较久,所以老师也说过很多,好了直奔主题,首先要设计一段内存结构,用来缓存网页,其实就是做几个能