日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

進程有哪些狀態(tài)?細說進程的狀態(tài)

學益得智能硬件 ? 來源:學益得智能硬件 ? 2023-07-25 17:06 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

進程有哪些狀態(tài)?這個問題在面試的時候出現的概率也比較高。

如果你學過操作系統(tǒng)這門課,那一定看過這張圖:

30bdeef2-2aca-11ee-a368-dac502259ad0.png ?

運行、就緒、阻塞指的就是進程的三種狀態(tài)。 要想搞懂這三種狀態(tài),還得從操作系統(tǒng)的進程調度說起。

假設CPU是單核的,單核的CPU一次只能處理一件事情,但是在操作系統(tǒng)上往往有多個任務需要執(zhí)行。

于是操作系統(tǒng)就會輪流讓任務占用CPU,比如先讓第一個進程占用CPU,運行個5ms,然后把它放一邊去,再讓第二個進程占用CPU,也運行個幾毫秒。

因為輪轉的速度特別快,所以在正常人看來,這些進程好像是在同時執(zhí)行。

有了這個背景,再來看進程的狀態(tài)就會比較容易。

所謂運行,就是進程占用CPU正在執(zhí)行的狀態(tài)。

所謂就緒,就是萬事俱備,等待被操作系統(tǒng)調度的狀態(tài)。

最后還有一種阻塞,比如程序在運行的時候,遇到了類似scanf這樣阻塞的函數,需要等待用戶從鍵盤輸入,這個時候即使讓他占用CPU運行,也是浪費時間,干脆就讓它進入阻塞的狀態(tài),直到條件滿足,也就是有用戶輸入了數據,再讓它回到就緒的狀態(tài),等待被操作系統(tǒng)調用。

再來看下Linux下進程的狀態(tài)。

31731d54-2aca-11ee-a368-dac502259ad0.png ?

這個分的就更細了,結合代碼來說明。

int main()
{
    while (1);
}
先來個死循環(huán),運行起來,此時它是R的狀態(tài),表示正在運行,加號表示前臺運行。

31ede228-2aca-11ee-a368-dac502259ad0.png ?

代碼稍微修改一下,加上printf輸出。
int main()
{
    while (1)
    {
printf("
");
    }
    
    return 0;
}
此時變成了S狀態(tài),就是睡眠狀態(tài)。

320b0fc4-2aca-11ee-a368-dac502259ad0.png ?

那么問題就來了,程序正在運行,為什么就是睡眠狀態(tài)?

因為printf需要訪問外設,比CPU速度慢很多,程序大部分時間都在等待輸出,并不是在等待被調度,所以并不屬于運行狀態(tài)。

還有一種睡眠狀態(tài)叫D,Disk sleep,也叫深度睡眠。

32243b34-2aca-11ee-a368-dac502259ad0.png ?

服務器壓力過大時,操作系統(tǒng)會殺掉一些進程,如果是D狀態(tài),操作系統(tǒng)無法干預,比如dd這個命令,進程就是D狀態(tài)。

還有一種T狀態(tài)也比較常見,一個正在運行的程序,如果按下ctrl z,就會進入暫停狀態(tài)。

3240162e-2aca-11ee-a368-dac502259ad0.png ? 32627386-2aca-11ee-a368-dac502259ad0.png ?




審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • Linux系統(tǒng)

    關注

    4

    文章

    617

    瀏覽量

    30176
  • 狀態(tài)機
    +關注

    關注

    2

    文章

    501

    瀏覽量

    29352
  • LINUX內核
    +關注

    關注

    1

    文章

    321

    瀏覽量

    23306
  • printf函數
    +關注

    關注

    0

    文章

    31

    瀏覽量

    6316

原文標題:細說進程的狀態(tài)

文章出處:【微信號:學益得智能硬件,微信公眾號:學益得智能硬件】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    Linux系統(tǒng)下進程的幾種狀態(tài)介紹

    文章對 Linux 系統(tǒng)下進程的幾種狀態(tài)進行介紹,并對系統(tǒng)出現大量僵尸進程和不可中斷進程的場景進行分析,使用常用的幾種工具進行問題分析定位。
    發(fā)表于 11-24 16:15 ?1.5w次閱讀
    Linux系統(tǒng)下<b class='flag-5'>進程</b>的幾種<b class='flag-5'>狀態(tài)</b>介紹

    飛凌嵌入式ElfBoard-進程進程狀態(tài)

    在Linux系統(tǒng)中,進程狀態(tài)對于系統(tǒng)調度、資源分配和管理非常重要,因為它表示了進程當前的執(zhí)行狀況和資源使用情況。在Linux 系統(tǒng)中使用ps -aux 命令可觀察到進程的當前
    發(fā)表于 03-27 09:12

    【Linux學習雜談】之進程狀態(tài)

    本帖最后由 michael_llh 于 2016-9-27 00:37 編輯 進程的5種狀態(tài):1.就緒態(tài) 就緒態(tài)就是說進程已經準備好了去運行了,只要CPU有空閑的時間就可以運行2.運行態(tài)
    發(fā)表于 09-27 00:36

    linux系統(tǒng)進程存在狀態(tài)及管理

    linux系統(tǒng)進程存在狀態(tài)及管理詳解
    發(fā)表于 05-21 06:28

    進程類型及三種狀態(tài)

    進程類型進程的三種狀態(tài)
    發(fā)表于 04-02 07:06

    進程與程序何不同

    著文件、靜態(tài)和可以復制。進程是暫時的,程序使長久的:進程是個狀態(tài)變化的過程,程序可長久保存。進程與程序組成不同:進程的組成包括程序、數據和
    發(fā)表于 11-08 08:27

    進程是什么?進程與程序的區(qū)別在哪

    進程是什么?進程與程序的區(qū)別在哪?進程狀態(tài)哪幾種?
    發(fā)表于 12-23 06:27

    進程幾種狀態(tài)

    文章目錄操作系統(tǒng)進程和線程什么是進程?什么是線程?進程和線程什么區(qū)別?何時使用多進程,何時使用多線程?
    發(fā)表于 12-24 07:16

    Linux進程管理

    Linux進程管理 本章主要介紹進程的概念、狀態(tài)、構成以及Linux進程的相關知識。 掌握進程的概念 掌握
    發(fā)表于 04-28 14:57 ?0次下載

    Linux 進程狀態(tài)淺析

    盡管進程狀態(tài)好幾種,但是進程狀態(tài)的變遷卻只有兩個方向——從TASK_RUNNING狀態(tài)變?yōu)榉荰
    發(fā)表于 04-02 14:40 ?471次閱讀

    進程的三種基本狀態(tài)進程控制塊(PCB)

    一個進程在運行期間,不斷地從一種狀態(tài)轉換到另一種狀態(tài),它可以多次處于就緒狀態(tài)和執(zhí)行狀態(tài),也可以多次處于阻塞
    的頭像 發(fā)表于 01-15 10:36 ?1.6w次閱讀
    <b class='flag-5'>進程</b>的三種基本<b class='flag-5'>狀態(tài)</b>及<b class='flag-5'>進程</b>控制塊(PCB)

    經典雙進程狀態(tài)機的FPGA實現(含testbeach)

    經典雙進程狀態(tài)機的FPGA實現(含testbeach)(肇慶理士電源技術有限公司圖片)-該文檔為經典雙進程狀態(tài)機的FPGA實現(含testbeach)總結文檔,是一份很不錯的參考資料,
    發(fā)表于 08-31 13:26 ?3次下載
    經典雙<b class='flag-5'>進程</b><b class='flag-5'>狀態(tài)</b>機的FPGA實現(含testbeach)

    Linux如何以暫停狀態(tài)啟動新進程

    “請教一個Bash的問題:有沒有什么辦法讓一個新開的進程,一開始就處于暫停狀態(tài),直到我輸入fg?”
    的頭像 發(fā)表于 04-15 12:25 ?2795次閱讀

    進程進入等待狀態(tài)哪幾種方式

    進程進入等待狀態(tài)的方式多種,下面將詳細介紹。 一、阻塞等待狀態(tài) 阻塞等待狀態(tài)是指進程由于某些原
    的頭像 發(fā)表于 11-17 11:19 ?4107次閱讀

    Linux進程狀態(tài)詳解

    進程狀態(tài)是task_struct內的一個整數;進行:進程在調度隊列中,進程狀態(tài)都是running,阻塞:等待某種設備或者資源就緒。
    的頭像 發(fā)表于 04-01 09:46 ?1296次閱讀
    Linux<b class='flag-5'>進程</b><b class='flag-5'>狀態(tài)</b>詳解
    永安市| 台山市| 洛宁县| 皮山县| 内江市| 体育| 望江县| 牙克石市| 东宁县| 华亭县| 阿克苏市| 大关县| 盐池县| 遂平县| 库尔勒市| 绥江县| 顺昌县| 奉节县| 连山| 朝阳市| 双柏县| 抚远县| 城口县| 中西区| 平昌县| 那曲县| 北海市| 民和| 乐昌市| 淅川县| 中西区| 通江县| 娄底市| 安吉县| 孝义市| 特克斯县| 龙门县| 苏尼特右旗| 沾益县| 铜山县| 醴陵市|