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

  • 姓名:倪晓东
  • 学号:201821121020
  • 班级:计算1811

1. 编写程序

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

 

 

 源代码运行结果:

 

 

 

2. 打印进程树

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

3. 解读进程相关信息

(1) ps -ef 运行:

 

 

 

 

 字段分析:

UID:用户ID名:nixiaodong

PID:该进程ID:18997

PPID:该进程的父进程ID,由进程18997创建的两个进程18998,18999的父进程均为18997

C:CPU占用率,当前为0

STIME:进程开始时间,改进程为19.05

TTY:用户的终端机位置

TIME:进程所占用CPU的时间,为0

CMD:可执行文件名

(2) ps -aux 运行:

 

 

 

 

 

 

字段分析:

USER:用户ID

PID:该进程ID

%CPU:该进程所占CPU百分比

%MEM:该进程所占内存百分比

VSZ:该进程所用虚拟内存量

RSS:该进程所用固定内存量

TTY:用户终端机位置

STAT:进程状态

S为休眠

S+有子进程的进程

START:进程开始时间

TIME:进程占用CPU的时间

COMMAND:当前指令内容

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

 

 

ps -ef 指令和ps -aux指令有什么区别?

答:ps -ef 指令和ps -aux指令但是用来显示当前运行进程,没有什么差别,ps -aux 是用BSD格式来显示而ps -ef是用标准格式显示,两者输出略有不同。

5. 加分项

结合实例(实例可以是写一个输出Hello World的简单程序)分析Linux可执行文件构成。

hello world实例:

 

 使用%!xxd将将当前文本转换为16进制格式:

 

使用命令将文本转换为16进制字符数组,前面8位16进制数代表行,每行后面8组数代表16字节,所以每组的两个16进制数代表一个字节,最后的0a实际上是0x0a,表示换行,我们可以在16进制下进行编辑:

如:696e代表字符in,将第一行的696e改为4141(即字符AA的ASCII码)

 

 然后使用%!xxd -r 将当前文件转换回文本格式

 

 

posted @ 2020-04-04 20:36  Linial  阅读(581)  评论(0编辑  收藏  举报