Linux进程与线程

1、进程

  • 可执行程序的运行态
  • 操作系统调度的基本单位
  • 线程容器
  • 进程本身包含指令、数据等资源

2、 线程

  • 进程中被执行的最小单元
  • cpu 调度的基本单位
  • 线程带有指令、数据等资源

image

3、 进程的生命周期

  • 如执行sleep 100或者执行一个python脚本
  • 创建:created sleep 100 ./demo.py
  • 准备:ready
  • 运行:running
  • 等待:waiting
  • 终止:terminated kill killall

image

4、 常用进程管理命令

  • ps 进程列表快照
  • top 交互式进程观测
  • kill killall 结束进程
  • fg 进程切换到前台(前台进程:界面上进行交互的进程,与shell、桌面等是有交互的)
  • bg 进程切换到后台(后台进程:系统本身脱离了当前的运行、可以操控的界面,如脱离了shell、界面等)
  • ctrl z 挂起进程

5、 ps 命令

  • unix 风格参数 ps -ef
  • bsd 风格参数 ps aux
  • gnu 风格参数 ps --pid pidlist
#获得所有进程列表
#UID        PID  PPID
#C STIME TTY
#TIME CMD
ps -ef
#获得所有进程列表,并提供更多可用数据
#USER       PID
#%CPU %MEM    VSZ   RSS TTY      STAT START
#TIME COMMAND
ps aux
#自定义输出指标
ps -o pid,ppid,psr,thcount,tid,cmd -M

6、 Linux 进程运行情况

7、 MAC 进程运行情况

8、 进程状态

  • D uninterruptible sleep (usually IO)
  • R running or runnable (on run queue)
  • S interruptible sleep (waiting for an event to complete)
  • T stopped by job control signal
  • t stopped by debugger during the tracing
  • W paging (not valid since the 2.6.xx kernel)
  • X dead (should never be seen)
  • Z defunct (“zombie”) process, terminated but not reaped by its parent

image