72 lines
2.4 KiB
Markdown
72 lines
2.4 KiB
Markdown
## 1、进程
|
||
进程是一个具有一定独立功能的程序在一个数据及上的一次动态执行的过程。是操作系统进行资源分配的一个独立单位
|
||
**进程的基本状态**
|
||
创建状态:进程在创建时需要申请一个空白的PCB(进程控制块),向其中填写控制和管理进程的信息,完成资源分配。
|
||
就绪状态:进程已准备好,已分配到所需资源,只要分配到CPU就能够立即运行
|
||
执行状态:进程处于就绪状态被调度后,进程进入执行状态
|
||
阻塞状态:正在执行的进程由于某些事件(I/O请求,申请缓存区失败)而暂时无法运行,进程受到阻塞。满足请求时进入就绪状态等待系统调用
|
||
终止状态:进程结束,或出现错误,或系统终止,进入终止状态。无法再执行
|
||
|
||
- R (Running):进程正在运行,或在运行队列中等待运行。
|
||
- S (Sleeping):进程处于休眠状态,等待某些条件的发生(例如等待资源可用或新的输入数据)。
|
||
- D (Uninterruptible Sleep):进程在等待 I/O 完成,不能被打断。
|
||
- T (Stopped or Traced):进程被停止(例如,被调试器停止)。
|
||
- Z (Zombie):进程已经终止,但其父进程尚未获取其终止状态(称为 "僵尸进程")。
|
||
|
||
**进程类型:**
|
||
守护进程:daemon,在系统引导过程中启动的进程,和终端无关的进程
|
||
前台进程:跟终端相关,通过终端启动的进程
|
||
## 2、线程
|
||
线程是程序执行中一个单一的吮吸控制流程,是程序执行流的最小单元,是处理器调度和分派的基本单位,一个进程可以有一个或多个线程
|
||
## 3、协程
|
||
协程的调度由用户完成,资源占用小,不会带来严重的性能问题,不需要多线程的锁机制,因为只有一个小城,也不存在同时写变量冲突。
|
||
## 4、常用命令
|
||
##### 4.1 pstree
|
||
```shell
|
||
pstree
|
||
|
||
常用选项:
|
||
-p: 显示PID
|
||
-T:不显示线程,默认显示线程
|
||
-u:显示用户切换
|
||
-H:高亮显示指定进程及其前辈进程
|
||
```
|
||
##### 4.2 ps
|
||
```shell
|
||
ps
|
||
|
||
常用选项:
|
||
a:选项包括所有终端中的进程
|
||
x:选项包括不连接终端的进程
|
||
u:显示进程的所有者信息
|
||
f:显示进程数
|
||
```
|
||
##### 4.3 prtstat
|
||
```shell
|
||
prtstat -r pid
|
||
|
||
```
|
||
pidof
|
||
pgrep
|
||
top
|
||
htop
|
||
glance
|
||
pmap
|
||
vmstat
|
||
dstat
|
||
kill
|
||
pkill
|
||
job
|
||
lsof
|
||
bg
|
||
fg
|
||
kill
|
||
nohup
|
||
nethogs
|
||
free
|
||
iostat
|
||
```shell
|
||
该软件存放于sysstat包
|
||
|
||
```
|