进程的概念
程序
就相当于一本武功秘籍,需要人去翻阅去修炼直到练成神功。
也就是执行一系列有逻辑,有顺序的指令
进程
就是相当于一本武功秘籍一层一层的往上练。也就是程序执行的一个过程。
程序与进程的区别
程序只是一系列指令的集合,是一个静止的实体,而进程不同,进程有一下特性:
1.动态性:在一次程序执行的过程中,有创建撤销等状态变化。
2.并发性:可以做到有一段时间内有多个程序在运行中。
3.独立性
4.异步性
5.结构性
并发
在一个时间段内,宏观来看有多个程序都在活动,有不紊的执行(每一 瞬间只有一个在执行,只是在一段时间有多个程序都执行过)
并行
在每一个瞬间都有多个程序在同时执行,这个必须有多个cpu才行
线程
是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。条线程指的是进程中一个单一顺序的控制流,一 个进程中可以并发多个线程,每条线程并行执行不同的任务。因为线程中几乎不包含系统资源,所以执行更快、更有效率。
Linux进程管理
linux终端下输入top
可以实时查看进程的状态动态查看进程
下面输入top指令
top是一个前台程序,有交互命令
q 退出程序
I 切换显示平均负载和启动时间的信息
P 根据CPU使用百分比大小进行排序
M 根据驻留内存大小进行排序
i 忽略闲置和僵死的进程,这是一个开关式命令
k 终止一个进程,系统提示输入PID及发送的信号值。-般终止进程用15信号,不能正常结束则使用9信号。安全模式下该命令被屏蔽。
pstree
查看当前进程的树形结构
输入pstree
man ps
可查看ps相关参数
ps -ef
静态查看进程
每一列代表的含义
UID运行进程的用户
PID进程的ID号
PPID进程的父进程的ID号,Linux中进程都是有父进程所生成的,ID为0的进程没有父进程
STIME进程开始运行的时间
TTY进程是在哪个终端上运行的
TIME进程占用CPU的时间
CMD进程的名称
kill +ID号
删除进程
kill -9 +ID号
强制删除进程
编写一个进程脚本
1.创建脚本文件
终端输入vi a.sh
脚本后缀名为.sh
2.编写脚本文件
脚本内容为休眠1000秒然后输入hello
运行脚本文件
- 运行文件时出现权限不够,查看权限发现没有可执行权限。
- 可用
chomd +x 文件名
添加可执行程序权限 - 再次查看文件权限,发现有可执行权限
- 然后执行脚本程序
输入./a.sh
执行脚本文件
这时脚本会占用我们的终端,我们可以将脚本放入后台运行。
结束脚本运行可输入CTRL+C。
输入./a.sh &
即可在后台执行脚本文件
输入ps -ef|grep a.sh
可查看进程是否存在
可以看到进程是存在的。
第二行代表我们刚刚执行的这个命令的进程