进程管理及作业控制

主要内容:
1.Linux进程管理 2.作业控制

1.进程:系统资源分派的单位,每个进程都有相应的优先级.
  进程优先级:
  1.动态优先级:0-99,实时优先级
  2.静态优先级:100-139, nice值-20到19 对应10-139
   nice(优雅):愿意把自己的优先级降低。把nice值调为5,高于0,很优雅的把机会

让了别人,作为普通用户只能优雅别人,即把nice值调高,降低自己的优先级,而root

则可以随意优雅。
 
进程管理常用命令:
1. ps : 查看进程
-e 显示所有进程
 a 表示所有跟终端'无关'的进程 
 x  表示跟终端有关的进程
 u 显示进程由哪个用户发起的
     常用组合  ps axu   ; axjf 显示进程关系
-f 显示完整信息
-F 显示额外信息
     常用组合 ps -ef
 j :jobs format,作业形式
 H 显示进程间关系
-o 自定只显示那些字段
     例: ps -eo pid,$cpu,comm
   查看 cupsd进程
   ps aux | grep cupsd
-u pgrep -u 查看某个特定用户的进程 只显示PID
-G       -G 显示某个特定组的进程
   pidof 查看某个进程的PID号
top ::实时显示进程信息
  -b : 显示几次退出
  -n : 显示几次退出
  -d : 指定间隔时间 s
 
free 查看内存信息-m 以m为单位显示大小
uptime : 系统运行时间  1分钟 ...
vmstat : 内存使用信息  例:vmstat 3 5 每三秒显示一次 只显示5次
pstree : 查看进程树

2.进程个字段意义:
PID:进程号 表示进程存储空间  task_structure
PPID: 父进程进程号
  init: 所有进程的父进程 (上帝进程) 开机启动的第一个进程 进程号1swatped 0
 
VSZ:虚拟内存集
RSC:实际内存集 内存页4k
tty :与哪个终端相关
TIME :获得CPU时间的和
START 该进程被触发启动的时间
COMMAND: 由哪个命令发起的
 inint (3) 3.表示四级别三
  加[ ] 为内核线程
  [pdflush]将内存数据同步到硬盘上
  (32bit) 内存分为两段 第一段为1G 内核空间 ; 第二段3G 用户空间
STAT: 进程状态
   R :  1.运行态 runing  2.就需态 ready 
       runing-->sleep 等待I/O--> ready< --> running
   D : 不可中断睡眠 Uninterruptible sleep ,这个进程正在完成其他的操作 如I/O
   S : 可中断睡眠 Interruptible sleep  ,无可做的工作
   T : 停止态
   Z : Zombie(僵尸态) 特殊状态 执行结束后没释放内存
      1.系统结束指令后 进程自清理 在释放内存前(父进程清理内存空间)
      2.父进程kill后 子进程在结束后 无法清理内存
      3.孤儿进程 父进程完成任务后 子进程委托给init
   < :表示高优先级进程
   N :表示低优先级进程
   + :跟某个前台进程相关,属于某个前台进程组的进程.
   s :某个会话的leader进程
   l :某个多线程的进程 
     (thread 比进程更轻量级的资源分配单位,共享内存,资源争用机制)

进程和线程的区别:
内核空间和用户空间的区别:(只有内核空间的程序才能操作硬件)
内核空间和用户空间打交道的方法:
  1).系统调用
  2).中断
进程间通信:IPC
  共享内存机制:
  信号
结束进程:
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

作业控制:
       完成一个特定任务的一组进程
工作机制:
      前台  发起命令后如果尚未完成就一直占用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 n    调回第n个作业

你可能感兴趣的:(职场,休闲,进程管理,作业控制)