Linux程序狀態

2021-06-17 22:19:45 字數 884 閱讀 1140

在linux中,常見的程序狀態有以下幾種:

task_running            0

程序正在執行或者等待被排程執行

task_interruptible      1

程序由於等待某個系統資源或者某個事件而處於掛起(睡眠)狀態。對其傳送訊號(signal),可以將其喚醒(進入task_running狀態)。

task_uninterruptible    2

程序由於等待某個系統資源或者某個事件而處於掛起(睡眠)狀態。在此狀態下,訊號無法將其喚醒。

task_stopped            132

程序暫停執行。在程序收到以下訊號時,被置於此種狀態:sigstop,sigtstp,sigttin以及sigttou。

task_traced             136

程序執行被偵錯程式(debugger)打斷。

exit_zombie             16

程序已終止執行,但父程序還沒有呼叫wait系統呼叫。do_exit已經被呼叫,因此該程序所申請的資源都已經被釋放。

exit_dead               32

程序(描述符)可以隨時被核心銷毀。

只有處於task_running狀態的程序才會被放入執行佇列(每處理器乙個)。當程序被掛起時,將被放入某個等待佇列(e.g. by prepare_to_wait)並從執行佇列移除(by deactivate_task called by schedule),以便條件滿足時將其喚醒。喚醒時,程序重又被加入執行佇列(by activate_task)並從等待佇列移除(e.g. by finish_wait)。

understanding the linux kernel, 3rd edition

核心的等待佇列

linux 程序 狀態

程序在執行過程中會根據環境來改變state。linux程序有以下狀態 running 程序處於執行 它是系統的當前程序 或者準備執行狀態 它在等待系統將cpu分配給它 waiting 程序在等待乙個事件或者資源。linux將等待程序分成兩類 可中斷與不可中斷。可中斷等待程序可以被訊號中斷 不可中斷等...

linux程序狀態

1.r task running,正在執行或者處於就緒狀態 很多作業系統教科書將正在cpu上執行的程序定義為running狀態 而將可執行但是尚未被排程執行的程序定義為ready狀態,這兩種狀態在linux下統一為 task running狀態。例子 ps aux 會看到ps這個程式命令的執行狀態是...

Linux程序狀態

2 程序狀態 s state o 程序正在處理器執行,這個狀態從來木見過.s 休眠狀態 sleeping r 等待執行 runable r running or runnable on run queue 程序處於執行或就緒狀態 i 空閒狀態 idle z 殭屍狀態 zombie t 跟蹤狀態 tr...