day20 进程管理

今日内容

1.什么是进程

进程是指在系统中正在运行的一个应用程序;线程是系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元。

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

1、进程是动态的,而程序是静态的。

2、进程有一定的生命期,而程序是指令的集合,本身无“运动”的含义。没有建立进程的程序不能作为1个独立单位得到操作系统的认可。

3、1个程序可以对应多个进程,但1个进程只能对应1个程序。进程和程序的关系犹如演出和剧本的关系。

4、进程和程序的组成不同。从静态角度看,进程由程序、数据和进程控制块(PCB)三部分组成。而程序是一组有序的指令集合。

5.程序是对于用户而言,也可以叫做软件。进程是对于程序员而言,是操作系统的概念。

6.进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。

7.程序,是管理方式的一种,是能够发挥出协调高效作用的工具,在我们的社会主义建设事业或者说现代化建设中,应该充分重视它的作用,应该不断地将我们的工作从无序整改到有序。

3.进程的生命周期

就是从进程的创建到进程的结束 ,即ready(就绪),running(运行),wait(等待).

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

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

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

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

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

4.进程运行的状态指示

day20 进程管理_第1张图片

user  :启动进程的用户

PID  :进程运行的ID号

%CPU  :进程占用CPU百分比

%MEM  :进程占用内存百分比

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

RSS  :实际占用内存

TTY  :进程是由哪个终端运行启动的tty1、pts/0等,表示内核程序与终端无关

STAT  :进程运行过程中的状态  man  ps

START  :  进程的启用时间

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

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

静态方式: ps aux , ps -ef 会显示PPID父进程

动态方式: top htop (负载状态 w uptime)

day20 进程管理_第2张图片

STAT的基本状态

day20 进程管理_第3张图片


day20 进程管理_第4张图片

使用top命令查看当前的进程状态(动态)

day20 进程管理_第5张图片

任务                                   含义

Tasks:108  total                 当前进程的总数

1  running                          正在运行的进程数

106sleeping                       睡眠的进程数

1  stopped                          停止的进程数

0  zombie                            僵尸进程数

%CPU(s):0.0  us              系统用户进程使用CPU的百分比

0.7 sy                                  内核中的进程占用CPU百分比,通常内核是于硬件进行交互

98.7  id                                id空闲CPU的百分比

0.0  wa                                waCPU等待IO完成的时间

0.0   hi                                 硬中断,占的CPU百分比

0.0   si                                 软中断,占的CPU百分比

0.0   st                                 比如虚拟机占用物理CPU的时间

top常见指令

day20 进程管理_第6张图片

top 常见指令

字母                              含义

h                                  查看帮出

1                                  数字1,显示所有CPU核心的负载

z                                  以高亮显示数据

b                                  高亮显示处于R状态的进程

M                                 按内存使用百分比排序输出

P                                  按CPU使用百分比排序输出

q                                  退出top

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

1.什么是中断

中断是系统用来响应硬件设备请求的一种机制,它会打断进程的正常调度和执行,然后调用内核中的中断处理程序来响应设备的请求。

2.硬中断

1. 硬中断是由硬件产生的,比如,像磁盘,网卡,键盘,时钟等。每个设备或设备集都有它自己的IRQ(中断请求)。基于IRQ,CPU可以将相应的请求分发到对应的硬件驱动上(注:硬件驱动通常是内核中的一个子程序,而不是一个独立的进程)。

2. 处理中断的驱动是需要运行在CPU上的,因此,当中断产生的时候,CPU会中断当前正在运行的任务,来处理中断。在有多核心的系统上,一个中断通常只能中断一颗CPU(也有一种特殊的情况,就是在大型主机上是有硬件通道的,它可以在没有主CPU的支持下,可以同时处理多个中断。)。

3. 硬中断可以直接中断CPU。它会引起内核中相关的代码被触发。对于那些需要花费一些时间去处理的进程,中断代码本身也可以被其他的硬中断中断。

4. 对于时钟中断,内核调度代码会将当前正在运行的进程挂起,从而让其他的进程来运行。它的存在是为了让调度代码(或称为调度器)可以调度多任务。

3.软中断

1. 软中断的处理非常像硬中断。然而,它们仅仅是由当前正在运行的进程所产生的。

2. 通常,软中断是一些对I/O的请求。这些请求会调用内核中可以调度I/O发生的程序。对于某些设备,I/O请求需要被立即处理,而磁盘I/O请求通常可以排队并且可以稍后处理。根据I/O模型的不同,进程或许会被挂起直到I/O完成,此时内核调度器就会选择另一个进程去运行。I/O可以在进程之间产生并且调度过程通常和磁盘I/O的方式是相同。

3. 软中断仅与内核相联系。而内核主要负责对需要运行的任何其他的进程进行调度。一些内核允许设备驱动的一些部分存在于用户空间,并且当需要的时候内核也会调度这个进程去运行。

4. 软中断并不会直接中断CPU。也只有当前正在运行的代码(或进程)才会产生软中断。这种中断是一种需要内核为正在运行的进程去做一些事情(通常为I/O)的请求。有一个特殊的软中断是Yield调用,它的作用是请求内核调度器去查看是否有一些其他的进程可以运行。

软中断和硬中断可以这样理解分为两部分理解

1.上半部对应硬中断,用来快速处理中断

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

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

你可能感兴趣的:(day20 进程管理)