Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1642142
  • 博文数量: 409
  • 博客积分: 6240
  • 博客等级: 准将
  • 技术积分: 4908
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-01 00:04
文章分类

全部博文(409)

文章存档

2021年(1)

2019年(1)

2017年(1)

2016年(13)

2015年(22)

2013年(4)

2012年(240)

2011年(127)

分类:

2011-07-27 10:09:37

进程:
进程是程序的实例(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    调回第三个作业
阅读(715) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~