一.进程管理命令
1.什么是进程?
- 程序:是完成特定任务的一系列数据+指令的集合(钢琴琴谱,磁盘上,程序=数据+指令)
- 进程:正在执行的程序(根据琴谱弹奏的过程,运行在内存上)
进程(process):是计算机上一端程序的执行过程,是操作系统进行资源分配的基本单位,但是进程并不仅仅是局限于一段可执行的代码段,通常进程还需要包含其他的资源,例如打开的文件,挂起的信号,处理器的状态等等。
简而言之,进程就是正在执行的程序代码的实时显示结果。
2.PCB
操作系统需要高效的管理我们的进程,所以为了方便控制进程的运行,将进程的管理和控制放到了一个数据结构,这个结构体就是我们所说的PCB进程控制块(proces control block),每一个进程均有一个PCB,在创建进程时,PCB首先创建,伴随着进程运行的全过程,当进程结束时,PCB才消退。
PCB记录了操作系统所需的,用于描述进程的当前运行情况以及控制进程运行的全部信息。
3.进程在内存中怎么管理?
- 执行程序时,先创建PCB,再加载进程实体。
- 进程结束时,先释放进程实体,最后释放PCB。
- 僵死进程:进程实体释放了,但是PCB未能正常释放。
4.进程查看命令
4.1 ps
默认显示当前终端有关的进程信息
- -e 显示系统中所有的进程系统(-A)
- -f 显示更多的进程属性信息(全格式)
- -L 显示进程中线程ID
- UID:用户id
- PID:进程id
- PPID:父进程id
- C:CPU占用率
- STIME: (start time)进程创建时间
- TTY:当前终端号
- TIME:进程运行时间
- CMD:当前进程执行的命令
4.2 pstree
以树状图的形式显示进程之间的关系
4.3 kill
结束或者挂起一个进程
- -9(SIGKILL) 强制结束一个进程
- -STOP 挂起进程(挂起:主动将进程执行暂停,CPU则不再给这个进程分配资源)
4.3.1 前后台
- 将进程放到前台运行:路径+ 可执行文件名
- 将进程放到前台运行:路径+ 可执行文件名 + &
在前台运行的进程,会一直占用终端,导致终端接收不到其他命令,这个时候只能另起一个终端,但是在后台运行的进程,不会占用终端,可以执行其他操作,另一个好处就是不会被ctrl+c(误触)终止。
- ctrl + d 停止输入
- ctrl + c 结束进程
- ctrl + z 挂起进程
4.3.2 演示结束进程
5.pkill
用来结束一组同名的进程(CMD一样)
演示如下:
总结:
- kill PID //结束一个进程
- kill -9 PID //强制结束一个进程
- kill -STOP PID //挂起一个进程
- pkill CMD //结束CMD相同一批进程
6.jobs
显示当前终端的任务,后台执行的或者挂起的任务
7.fg
将后台运行的任务或者挂起的任务放到前台
将后台运行的任务放到前台:
将挂起的进程放到前台:
8.bg
将挂起的进程唤醒到后台去运行:
9.top
用来查看系统资源使用情况(动态变化的),类似windows上的任务管理器
- top命令执行后,按f进入到top的解释页面
- 前面带*的,说明已经显示
按f后,示例如下: