进程:
进程是程序的实例(instance)
进程是执行的独立单位,分派资源的独立单位
进程优先级:每个进程都有相应的优先级,优先级决定它何时运行和接收多少 CPU 时间
0-15 级是普通优先级(若优先级相同则采用时间片轮转运行)
16-31 级是实时优先级 (相同优先级进程的运行不按照时间片
轮转,而是先运行的进程就先控制 CPU,如果它不主动放弃
控制,同级或低优先级的进程就无法运行)
1.静态优先级:100-139, nice值-20到19 对应10-139
nice(优雅):愿意把自己的优先级降低。
把nice值调为5,高于0,很优雅的把机会让
了别人,作为普通用户只能优雅别人,即
把nice值调高,降低自己的优先级,而root则可以
随意优雅。
2.动态优先级:0-99,实时优先级
启动一个进程后,nice值默认都是0
进程中的常用命令
1.ps (process)
查看进程
跟终端相关的进程:ps x
跟终端无关的进程:ps a
选项:
-e 显示与终端相关和无关的进程
a 与终端无关的进程
x 与终端相关的进程,通常与a一起使用,显示较完整的信息
-f 更为完整的信息
-F 显示完整信息
-u(u) 显示进程是由哪个用户发起的
-o 自己定义显示哪些字段 eg:ps -eo pid,%cpc,comm
ps axu (常用)
使用该命令各个显示项表示的意义为:
USER 该进程属于哪个用户账号
PID 进程号
%CPU 该进程使用的cpu百分比
%MEM 该进程使用的内存百分比
VSZ 占虚拟内存大小
RSS 占物理内存大小
TTY 该进程在哪个终端上运行,若与终端无关,则显示?
STAT 该进程的当前状态,主要有
R:运行态,就绪态
S:可唤醒的睡眠
T:该进程当前正在检测或停止
Z:僵尸态 该进程已终止,但其父进程却无法正常终止他,造成“僵尸”
进程的状态。
(一个进程死了,应该由父进程收尸,如果父进程先死了,子进程
还活着,当子进程死的时候就无法释放内存了,就成僵尸进程了)
D:不可终端的睡眠
START 该进程被触发启动的时间
TIME 该进程实际使用cpu运行的时间
COMMAND 该进程的实际命令
ps axjf 显示父子关系
ps -ef
ps -eF
<:高优先级
N:低优先级
+:此进程属于一个前台进程组
l:多线程进程
s:会话领头进程
sleep ,running,runnable 三者之间的转换图
进程和线程的区别:
内核空间和用户空间的区别:(只有内核空间的程序才能操作硬件)
内核空间和用户空间打交道的方法:
1).系统调用
2).中断
进程间通信:IPC
共享内存机制:
信号:
2.kill
1)管理后台作业kill:
kill -l 列出当前kill能使用的信号
-1 重读一次参数的设置文件
-2 等同于Ctrl+c
-9 突然让一个进程死掉
-15 让一个进程正常的死掉
-18 让停止的进程继续运行 (bg)
-19 让运行的进程停下来歇会儿 (ctrl+z)
kill -n (常用)如何向另外一个进程发送信号,后跟另一个进程的进程号
jobs 查看当前所有作业
eg:kill -9 %1 将作业1突然kill掉(强行)
kill -KILL(常用)
2)kill进程:
kill 进程号 (只能后跟进程号,把某个进程kill掉默认发送的是15信号)
eg:kill 2288
killall 进程名 (killall后跟进程名)
pkill SIGNAL pattern
3.top命令 (常用)(每隔5秒刷新一次进程信息)
-b 和 -n 一起使用 表示工作在bash模式下并设置截取几次
top -b -n 2 (显示两次并退出)
4.pidof 查看某个进程的进程号
5.free 查看内存信息
free -m 以兆为单位显示内存信息
6.pstree显示进程树
7.vmstat 查看关于内存的使用信息
后面可以加数字
eg:vmstat 3 (每个三秒显示一次)
作业控制:
完成一个特定任务的一组进程
工作机制:
前台 发起命令后如果尚未完成就一直占用shell
eg: cp -r /etc /tmp/abc
后台 发起命令后释放shell
eg: cp -r /etc /tmp/abc &
nohup cp -r /etc /tmp/cba & (表示不但把此作业送到后台,而且让其与终端无关)
ctrl+z 把命令送到后台去(在后台处于停止状态)
& 把命令送到后台(在后台处于running状态)
fg 把后台的作业重新调到前台
bg 作业号 把命令处于后台并在后台运行 eg:bg %2
jobs 查看当前处在后台的所有作业,第一列为作业号
fg 3 调回第三个作业
阅读(1511) | 评论(0) | 转发(3) |