day 20 进程管理

1、什么是进程

(1)开发代码称之为程序,将开发的代码运行起来,称为进程
(2)当运行一个程序,那么将运行的程序叫进城
(3)当程序运行为进程后,系统会该进程分配内存,以及进程的身份和权限
(4)在进程的过程中,系统会有各种指标来表示当前运行的状态。

2、程序和进程的区别

(1)程序是数据和指令的集合,是一个静态的概念。如:/bin/ls和/bin/cp等二进制文件,同时程序可以长期存在系统里。
(2)进程是程序运行的过程,是一个动态的概念,晋城市存在生命周期的概念的,进程会随着程序的终止而销毁,不会永久存在系统里。

3、进程的生命周期

生命周期是指以个对象的生老病死,它的用处很广泛。
当父进程接收到任务调度时,会通过foc派子进程来处理,那么子进程会继承父进程属性
(1)子进程在处理任务代码时,父进程会进入等待状态…
(2)子进程在处理任务代码时,会执行退出,然后唤醒父进程来回收子进程的资源
(3)如果子进程在处理任务过程中,父进程退出,子进程没有退出,那么这些子进程就没有父进程来管理了,就成了僵尸进程。
注:每个进程都是父进程的PPID,子进程则是PID

3、监控进程状态

程序在运行后,需要了解进程的运行状态。查看进程的状态分为:静态和动态

(1)使用ps命令查看当前的进程状态(静态)

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

root          1  0.0  1.4 128408  6984 ?        Ss   08:07   0:04 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root          2  0.0  0.0      0     0 ?        S    08:07   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    08:07   0:00 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S<   08:07   0:00 [kworker/0:0H]
root          6  0.0  0.0      0     0 ?        R    08:07   0:00 [kworker/u256:0]
root          7  0.0  0.0      0     0 ?        S    08:07   0:00 [migration/0]
root          8  0.0  0.0      0     0 ?        S    08:07   0:00 [rcu_bh]
root          9  0.0  0.0      0     0 ?        R    08:07   0:01 [rcu_sched]
root         10  0.0  0.0      0     0 ?        S<   08:07   0:00 [lru-add-drain]
root         11  0.0  0.0      0     0 ?        S    08:07   0:00 [watchdog/0]
root         13  0.0  0.0      0     0 ?        S    08:07   0:00 [kdevtmpfs]
root         14  0.0  0.0      0     0 ?        S<   08:07   0:00 [netns]

 状 态      描 述
 USER      启动进程的用户
 PID       进程运行的ID
 %CPU      进程占用CPU百分比
 %MEM      进程占用内存百分比
 VSZ       进程占用虚拟内存大小(单位KB)
 RSS       进程占用物理内存时间大小(单位KB)
 TTY       进程是有那个终端运行启动的tty1、pts/0等 ? 表示内核程序与终端无关
 STAT      进程运行过程中的状态 man ps (/STATE)
 START     进程的启动时间
 TIME      进程占用CPU的总时间(为0表示还没超过秒)
 COMMAND   程序的运行指令,【】属于内核状态的进程。没有【】使用户进程 

(2)STAT状态意思

图片.png

(3)top使用

[root@yangdan ~]# top
top - 17:38:20 up  9:30,  2 users,  load average: 0.00, 0.01, 0.05
Tasks: 101 total,   1 running, 100 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

Tasks:101 total  任务总数 1 running       有进程正在运行
100 sleeping  100个睡眠
0 stopped    挂起,停止
0 zomnie    僵尸进程
0.0 us   进程占用cpu的百分比(用户进程)
0.0 sy   内核进程   (硬件)
0.0 ni   优先级的进程占用cpu的百分比
100.0 id   空闲的进程
0.0  wa  大量的等待-->
0.0 hi    硬中断
0.0 si   软中断
0.0 st  虚拟机占用物理cpu的时间

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容