文章目录

  • 一、Linux 中进程的 CPU 资源调度
  • 二、进程生命周期
  • 三、进程生命周期之间的转换

一、Linux 中进程的 CPU 资源调度


Linux 操作系统 是 多任务系统 , 可以 同时运行多个进程 ;

CPU 资源被分成若干 时间片 , 每个进程分不同的时间 , 使用 CPU 时间片 , 这是 分时复用机制 ;

为 进程 分配 CPU 时间片 的机制 , 称为 " 进程调度策略 " ;

二、进程生命周期


进程 在 创建 , 以及 " CPU 时间片 " 调度 , 终止 时 , 会处于不同的状态 , 这些状态就是 进程的生命周期 :

  • 创建状态 : 进程 刚被创建时 , 处于创建状态 ;
  • 就绪状态 : 进程 已经 获取了 相关资源 , 以及 运行条件准备就绪 ;
  • 执行状态 : CPU 时间片被分配给了该进程 , 正在 CPU 中执行该进程 ;
  • 阻塞状态 : 等待被分配 CPU 时间片的过程 中 , 处于该状态 ;
  • 终止状态 : 进程 终止后的状态 ;

三、进程生命周期之间的转换


创建状态 : Linux 中 , 调用 fork() 函数 , 创建进程 , 此时进入 " 创建状态 " ;

创建状态 -> 就绪状态 : 创建状态 中 , 等待 进程运行的 资源准备完毕后 , 会进入 " 就绪状态 " ;

就绪状态 -> 执行状态 : 就绪状态时 , " 进程调度策略 " 为进程调度 " CPU 时间片 " , 进程一旦 获取到 CPU 时间片使用权 , 就立刻进入 " 执行状态 " , 开始执行后续指令 ;

执行状态 -> 就绪状态 : 如果当前 进程 处于 执行状态 , 正在执行 , 此时如果有一个 优先级高 的进程要执行 , 此时会抢占 CPU , 本进程就会重新进入 " 就绪状态 " ;

执行状态 -> 阻塞状态 : 如果当前 进程 处于 执行状态 , 正在执行 , 如果此时 进入 休眠等待队列 , 或者 等待资源 , 此时会进入到 " 阻塞状态 " ;

阻塞状态 -> 就绪状态 : 处于 " 阻塞状态 " 的进程 , 如果被 从休眠中唤醒 , 或者 等待的资源分配到位 , 此时就会进入到 " 就绪状态 " , 等待 CPU 时间片调度执行 ;

执行状态 -> 终止状态 : 进程 退出 , 或者被杀死 , 就会进入 " 终止状态 " ;

【Linux 内核】进程管理 ( Linux 中进程的 CPU 资源调度 | 进程生命周期 | 创建状态 | 就绪状态 | 执行状态 | 阻塞状态 | 终止状态 | 进程生命周期之间的转换 )相关推荐

  1. 【Linux 内核 内存管理】物理分配页 ⑦ ( __alloc_pages_slowpath 慢速路径调用函数源码分析 | 判断页阶数 | 读取 mems_allowed | 分配标志位转换 )

    文章目录 一.__alloc_pages_slowpath 慢速路径调用函数 二.判断页阶数 三.读取进程 mems_allowed 成员 四.分配标志位转换 五.__alloc_pages_slow ...

  2. linux内核 电池管理,Linux电源管理(9)_wakelocks

    Linux电源管理(9)_wakelocks 作者:wowo 发布于:2014-9-14 23:17 分类:电源管理子系统 1. 前言 wakelocks是一个有故事的功能. wakelocks最初出 ...

  3. linux内核时钟管理,Linux时钟管理透彻分析

    Linux时钟管理透彻分析.硬件资源越来越庞大和复杂,内核的另一个挑战就是要便捷的管理这些资源.同时,面对如此之多的平台不同的CPU,管理机制需要统一适用,这就需要对资源的管理抽象到更加通用的层次.C ...

  4. Linux 驱动开发 三十五:Linux 内核时钟管理

    参考: linux时间管理,时钟中断,系统节拍_u010936265的博客-CSDN博客_系统节拍时钟中断 Linux内核时钟系统和定时器实现_anonymalias的专栏-CSDN博客_linux内 ...

  5. 【Linux 内核 内存管理】物理分配页 ⑧ ( __alloc_pages_slowpath 慢速路径调用函数源码分析 | 获取首选内存区域 | 异步回收内存页 | 最低水线也分配 | 直接分配 )

    文章目录 一.获取首选内存区域 二.异步回收内存页 三.最低水线也分配 四.直接分配内存 在 [Linux 内核 内存管理]物理分配页 ② ( __alloc_pages_nodemask 函数参数分 ...

  6. linux管理进程ps命令,ps命令进程管理-linux

    <ps命令进程管理-linux>由会员分享,可在线阅读,更多相关<ps命令进程管理-linux(4页珍藏版)>请在技术文库上搜索. 1.要对系统中进程进行监测控制,查看状态,内 ...

  7. 【Linux 内核 内存管理】内存管理架构 ④ ( 内存分配系统调用过程 | 用户层 malloc free | 系统调用层 brk mmap | 内核层 kmalloc | 内存管理流程 )

    文章目录 一.内存分配系统调用过程 ( 用户层 | 系统调用 | 内核层 ) 二.内存管理流程 一.内存分配系统调用过程 ( 用户层 | 系统调用 | 内核层 ) " 堆内存 " ...

  8. 【Linux 内核 内存管理】内存管理架构 ② ( 用户空间内存管理 | malloc | ptmalloc | 内核空间内存管理 | sys_brk | sys_mmap | sys_munmap)

    文章目录 一.用户空间内存管理 ( malloc / free / ptmalloc / jemalloc / tcmalloc ) 二.内核空间内存管理 1.内核内存管理系统调用 ( sys_brk ...

  9. 【Linux 内核 内存管理】内存管理架构 ① ( 内存管理架构组成 | 用户空间 | 内核空间 | MMU 硬件 | Linux 内核架构层次 | Linux 系统调用接口 )

    文章目录 一.内存管理架构组成 ( 用户空间 | 内核空间 | MMU 硬件 ) 二.Linux 内核架构层次 三.Linux 系统调用接口 一.内存管理架构组成 ( 用户空间 | 内核空间 | MM ...

最新文章

  1. MySQL 用 limit 为什么会影响性能?
  2. div.php织梦自定义表判断不能为空,织梦自定义表单字段为必填项的教程
  3. hibernate小记
  4. 编程时千万要记下一切!
  5. Centos系统python2.x升级python3.x
  6. deferred对象
  7. Eclipse 中 工程 引用 其他 工程的 配置方法。
  8. 计算机03年word做母亲节贺卡,怎样制作母亲节贺卡
  9. javasript | 鼠标经过表格行变色
  10. 【Android】@GuardedBy注解
  11. 北斗系统基础知识2(北斗一代定位原理详述)
  12. 渗透过程中日志信息分析示例
  13. sass、scss、和css的关系
  14. Android系统如何修改默认打开程序
  15. fiddler下载及安装
  16. 菜鸟教程 MarkDown语法
  17. 出现ERROR The server quit without updating PID file
  18. 24.线程系列- google提供的一些好用的并发工具类
  19. android 测试神器 BugTags
  20. Beautiful Soup的使用例子

热门文章

  1. 《C++STL基础及应用》读书笔记
  2. Android网络编程
  3. Programming Pearls: Chatper3 Problem6 [Form letter generator]
  4. 黑马在线教育项目---15-16、datatables插件
  5. export data by MS-SQL
  6. sass 插值语句的使用
  7. 【C/C++开发】C++实现简单的线程池
  8. noip2016 小结(ac两题+学习总结)
  9. LCD Backlight circuit
  10. 洛谷P2412 查单词 [trie树 RMQ]