【Linux 内核】进程管理 ( Linux 中进程的 CPU 资源调度 | 进程生命周期 | 创建状态 | 就绪状态 | 执行状态 | 阻塞状态 | 终止状态 | 进程生命周期之间的转换 )
文章目錄
- 一、Linux 中進程的 CPU 資源調(diào)度
- 二、進程生命周期
- 三、進程生命周期之間的轉(zhuǎn)換
一、Linux 中進程的 CPU 資源調(diào)度
Linux 操作系統(tǒng) 是 多任務系統(tǒng) , 可以 同時運行多個進程 ;
CPU 資源被分成若干 時間片 , 每個進程分不同的時間 , 使用 CPU 時間片 , 這是 分時復用機制 ;
為 進程 分配 CPU 時間片 的機制 , 稱為 " 進程調(diào)度策略 " ;
二、進程生命周期
進程 在 創(chuàng)建 , 以及 " CPU 時間片 " 調(diào)度 , 終止 時 , 會處于不同的狀態(tài) , 這些狀態(tài)就是 進程的生命周期 :
- 創(chuàng)建狀態(tài) : 進程 剛被創(chuàng)建時 , 處于創(chuàng)建狀態(tài) ;
- 就緒狀態(tài) : 進程 已經(jīng) 獲取了 相關資源 , 以及 運行條件準備就緒 ;
- 執(zhí)行狀態(tài) : CPU 時間片被分配給了該進程 , 正在 CPU 中執(zhí)行該進程 ;
- 阻塞狀態(tài) : 等待被分配 CPU 時間片的過程 中 , 處于該狀態(tài) ;
- 終止狀態(tài) : 進程 終止后的狀態(tài) ;
三、進程生命周期之間的轉(zhuǎn)換
創(chuàng)建狀態(tài) : Linux 中 , 調(diào)用 fork() 函數(shù) , 創(chuàng)建進程 , 此時進入 " 創(chuàng)建狀態(tài) " ;
創(chuàng)建狀態(tài) -> 就緒狀態(tài) : 創(chuàng)建狀態(tài) 中 , 等待 進程運行的 資源準備完畢后 , 會進入 " 就緒狀態(tài) " ;
就緒狀態(tài) -> 執(zhí)行狀態(tài) : 就緒狀態(tài)時 , " 進程調(diào)度策略 " 為進程調(diào)度 " CPU 時間片 " , 進程一旦 獲取到 CPU 時間片使用權(quán) , 就立刻進入 " 執(zhí)行狀態(tài) " , 開始執(zhí)行后續(xù)指令 ;
執(zhí)行狀態(tài) -> 就緒狀態(tài) : 如果當前 進程 處于 執(zhí)行狀態(tài) , 正在執(zhí)行 , 此時如果有一個 優(yōu)先級高 的進程要執(zhí)行 , 此時會搶占 CPU , 本進程就會重新進入 " 就緒狀態(tài) " ;
執(zhí)行狀態(tài) -> 阻塞狀態(tài) : 如果當前 進程 處于 執(zhí)行狀態(tài) , 正在執(zhí)行 , 如果此時 進入 休眠等待隊列 , 或者 等待資源 , 此時會進入到 " 阻塞狀態(tài) " ;
阻塞狀態(tài) -> 就緒狀態(tài) : 處于 " 阻塞狀態(tài) " 的進程 , 如果被 從休眠中喚醒 , 或者 等待的資源分配到位 , 此時就會進入到 " 就緒狀態(tài) " , 等待 CPU 時間片調(diào)度執(zhí)行 ;
執(zhí)行狀態(tài) -> 終止狀態(tài) : 進程 退出 , 或者被殺死 , 就會進入 " 終止狀態(tài) " ;
總結(jié)
以上是生活随笔為你收集整理的【Linux 内核】进程管理 ( Linux 中进程的 CPU 资源调度 | 进程生命周期 | 创建状态 | 就绪状态 | 执行状态 | 阻塞状态 | 终止状态 | 进程生命周期之间的转换 )的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Linux 内核】进程管理 ( 进程特
- 下一篇: 【Linux 内核】进程管理 ( Lin