--------------------------什么是进程---------------------------------------
谈到进程,首先要说的就是程序
程序就是一个可以执行的文件,那么进程就是一个正在执行的程序
--------------------------进程环境------------------------------------------
每个进程都有自己的进程环境。
可以通过echo $$ 指令查看进程
---------------进程的开启和退出-------------------------------------------------
所有的进程都是由其他的进程打开的
---这种关系称之为父子关系
每一个进程又有两种方式结束:
1.程序在执行结束后终止
2.程序被其他进程发出的信号终止
--------------对于父子关系------------------------------------------------------------
bash就是打开一个bash子进程,因为是由8245进程启动的,所以退出后回到8245,类似于一个树形结构的父子关系就是这样
----------------------查看进程-------------------------------------------------------------------
ps 指令可以用来展示进程状态信息
常用的后缀有如下几个:
1. -a 显示所有用户的所有进程
2. -x 显示无控制终端的进程
3. -u 按用户名和启动时间的顺序显示进程
4. -l 长格式输出
pstree 指令可以用来树形地显示进程
USER: 进程所属于的用户
PID: 进程号
%CPU: cpu的占用率
%MEM:内存的占用率
VSZ:虚拟内存占用的量
RSS:占用内存的大小
TTY:终端的次要装置号码
STAT:进程的状态
START:进程启动的时间
TIME:进程消耗cpu的时间
COMMAND:命令的名称和参数
------------------常见的进程状态------------------------------------------------------------------------
D 无法终止的休眠状态
R 正在运行,在可中断队列中
S 处于休眠静止状态
X 消灭进程
< 高优先级进程
N 低优先级进程
-----------------下面对进程的控制-----------------------------------------------------------------------
进程控制的方式有两种:
1.从打开该进程的shell,通过job number控制
2.从系统的任何一处,通过PID控制
对一个正在运行的程序我们可以通过传递信号执行以下操作:
1.终止一个进程
2.杀死一个进程
3.暂停/重启一个进程
进程的执行方式又有两种:
1.在前台执行
那么前台执行的概念是什么呢?
前台进程就是用户使用的有终端控制的进程
直接执行程序,默认的就是前台执行,可以对暂停的程序通过fg恢复前台运行
2.在后台执行
后台执行的程序又叫作守护进程,它独立于控制终端,并且周期性的执行某个任务或等待某个事件后执行
在程序执行时 在文件名后面加上&符号
也可以对暂停的进程用bg命令恢复执行
-----------jobs control-----------------------------------------------
展示当前进程下的jobs
恢复前台运行时, 要在任务号前加%
kill , bg 也同理
------------------杀死进程------------------------------------------------------------
几个常用的功能后缀:
---------------------管理进程的优先级----------------------------------------------------------------
进程通过优先级来统筹
进程对CPU资源分配就是指进程的优先权(priority)。优先权高的进程有优先执行权利。配置进程优先权对多任务环境的linux很有用,可以改善系统性能。还可以把进程运行到指定的CPU上,这样一来,把不重要的进程安排到某个CPU,可以大大改善系统整体性能。
而调节进程优先级的两个常用的指令就是nice 和 renice:
UID:执行者的身份
PID:这个进程的代号
PPID:父进程的代号
PRI:代表进程的优先级,值越小越早执行
NI:代表这个进程的nice值
其他的还好理解,nice值是干什么的呢?
其实就是对优先值的一个修正值
命令格式如下:
1.可以在运行开始运行时就存在nice值,也就是以一个用户提前定义的优先级启动程序
nice <-n> <value> <filename>
2.通过renice指令可以修改正在执行的程序的优先级
renice <new_priority> <PID>
还有几个比较有用的功能后缀:
-p 修改一个程序的优先值
-g 修改一个群组的优先值
-u 修改一个用户内程序的优先级
----------------完整的进程管理器------------------------------------------------------------------------
比如top。。。不做细致的讲解了