linux进程状态转换

进程的状态

  进程状态反映进程执行过程的变化。这些状态随着进程的执行和外界条件的变化而转换。在三态模型中,进程状态分为三个基本状态,即就绪态,运行态,阻塞态。在五态模型中,进程分为新建态、就绪态,运行态,阻塞态,终止态

 

  ◼ 运行态:进程占有处理器正在运行
  ◼ 就绪态:进程具备运行条件,等待系统分配处理器以便运行。当进程已分配到除CPU以外的所有必要资源后,只要再获得CPU,便可立即执行。在一个系统中处于就绪状态的进程可能有多个,通常将它们排成一个队列,称为就绪队列   (有资源无CPU)
  ◼ 阻塞态:又称为等待(wait)态或睡眠(sleep)态,指进程不具备运行条件,正在等待某个事件的完成    (等待事件:用户交互等)              

 

  ◼ 新建态:进程刚被创建时的状态,尚未进入就绪队列
  ◼ 终止态:进程完成任务到达正常结束点,或出现无法克服的错误而异常终止,或被操作系统及有终止权的进程所终止时所处的状态。进入终止态的进程以后不再执行,但依然保留在操作系统中等待善后。一旦其他进程完成了对终止态进程的信息抽取之后,操作系统将删除该进程。              阻塞态和就绪态也可以到终止态   
     ◼ 查看进程指令:  
ps aux / ajx
  a:显示终端上的所有进程,包括其他用户的进程
  u:显示进程的详细信息
  x:显示没有控制终端的进程
  j:列出与作业控制相关的信息
多个PID组成一个 PGID     多个 PGID组成一个SID
STAT含义:

实时显示进程动态   top    

可以在使用 top 命令时加上 -d 来指定显示信息更新的时间间隔,在 top 命令执行后,可以按以下按键对显示的结果进行排序:
  ⚫ M  根据内存使用量排序
  ⚫ P  根据 CPU 占有率排序
  ⚫ T  根据进程运行时间长短排序
  ⚫ U  根据用户名来筛选进程
  ⚫ K  输入指定的 PID 杀死进程
杀死进程:    kill -l
  kill [-signal] pid
  kill –l 列出所有信号
  kill –SIGKILL 进程ID
  kill -9 进程ID        
  killall name 根据进程名杀死进程 (死循环执行程序)
生成   a.out
执行   ./a.out  &    //后台执行 可以进行指令操作

进程号相关函数:    init进程:内核进程 初始进程  

  ◼ 每个进程都由进程号来标识,其类型为 pid_t(整型)进程号的范围:0~32767。进程号总是唯一的,但可以重用。当一个进程终止后,其进程号就可以再次使用。
  ◼ 任何进程(除 init 进程)都是由另一个进程创建,该进程称为被创建进程的父进程,对应的进程号称为父进程号(PPID)
  ◼ 进程组是一个或多个进程的集合。他们之间相互关联,进程组可以接收同一终端的各种信号,关联的进程有一个进程组号(PGID)。默认情况下,当前的进程号会当做当前的进程组号。
  ◼ 进程号和进程组相关函数:
    ⚫ pid_t getpid(void);
    ⚫ pid_t getppid(void);
    ⚫ pid_t getpgid(pid_t pid);//默认获取当前  有参数即获取参数进程号的pgid

posted on   廿陆  阅读(115)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示