Day21 08-21 linux进程管理

1.什么是进程?

进程是系统正在运行的一个程序,程序一旦运行就是个进程

2.程序与进程之间有什么区别?

1.程序是数据和指令的集合,是一个静态的概念。比如/bin/ls、/bin/cp等二进制文件。同时程序可以长期存在系统中。

2.进程是程序运行的过程,是一个动态的概念。进程是存在生命周期的概念的,也就是说进程会随着程序的终止而销毁,不会永久存在系统中。

3.进程的生命周期?



当父进程接收到任务调度时,会通过fock派生子进程来处理,那么子进程会继承父进程属性。

1.子进程在处理任务代码时,父进程会进入等待状态中...

2.子进程在处理任务代码后,会执行退出,然后唤醒父进程来回收子进程的资源。

3.如果子进程在处理任务过程中,父进程退出了,子进程没有退出,那么这些子进程就没有父进程来管理了,就变成僵尸进程。

PS: 每个进程都父进程的PPID,子进程则叫PID。

4.进程运行的状态指标?


Tasks: 127 total

Tasks: 127 total   任务总数

2 running            有两个进程正在运行

126 sleeping      12个睡眠进程

0  stopped         0个挂起,停止

0  zombie          0 个僵尸进程

0.0 us               进程占用cpu的百分比

0.3 sy              内核进程(硬件)

0.0 ni               优先级的进程占用cpu的百分比

99.7 id             空闲的进程

0.0wa              大量的等待

0.0 hi               硬中断

0.0 si               软中断

0.0 st               虚拟机占用物理cpu的时间

5.如何监控进程的状态、静态ps、动态top?

静态ps:

USER            启动进程的用户

PID                进程运行的ID

%CPU           进程占用的CPU百分比

%MEM          进程占用内存百分比

VSZ              进程占用虚拟内存大小(单位KB)

RSS              进程占用物理内存实际大小(单位KB)

TTY               进程是由那个终端运行启动的tty1,ps/0等标识内核程序与终端无关

STAT             进程运行过程中的状态man ps (/STATE)

START          进程的启动时间

TIME             进程占用CPU的总时间(为0表示还没超过秒)

COMMAND  程序的运行指令,[方括号]属于内核态的进程,没有[ ]的是用户态进程

6.进程中的iowait 软中断 硬中断?

网卡接收到数据包后,会通过硬件中断的方式,通知内核有新的数据到了。这时,内核就应该调用中断处理程序来响应它。

对上半部来说,既然是快速处理,其实就是要把网卡的数据读到内存中,然后更新一下硬件寄存器的状态(表示数据已经读好了),最后再发送一个软中断信号,通知下半部做进一步的处理。

而下半部被软中断信号唤醒后,需要从内存中找到网络数据,再按照网络协议栈,对数据进行逐层解析和处理,直到把它送给应用程序。

所以,这两个阶段你也可以这样理解:

上半部直接处理硬件请求,也就是我们常说的硬中断,特点是快速执行;

而下半部则是由内核触发,也就是我们常说的软中断,特点是延迟执行。

Linux软中断与硬中断小结

Linux 中的中断处理程序分为上半部和下半部:

上半部对应硬件中断,用来快速处理中断。

下半部对应软中断,用来异步处理上半部未完成的工作。

Linux 中的软中断包括网络收发、定时、调度、等各种类型,可以通过查看 /proc/softirqs 来观察软中断的运行情况。

你可能感兴趣的:(Day21 08-21 linux进程管理)