task struct結構體成員詳解

2021-09-25 12:20:28 字數 807 閱讀 1845

程序就是程式動態執行的例項,它是承擔分配系統資源的實體。我們也可以把程序當成是由一組元素組成的實體,程序的兩個基本的元素時程式**和與**相關聯的資料集合。在程序執行時,都可以被表徵為一下元素:

1.識別符號:與程序相關的唯一識別符號,用來區別正在執行的程序和其他程序。

2.狀態:描述程序的狀態,因為程序有掛起,阻塞,執行等好幾個狀態,所以都有個識別符號來記錄程序的執行狀態。

3.優先順序:如果有好幾個程序正在執行,就涉及到程序被執行的先後順序的問題,這和程序優先順序這個識別符號有關。

4.程式計數器:程式中即將被執行的下一條指令的位址。

5.記憶體指標:程式**和程序相關資料的指標。

6.上下文資料:程序執行時處理器的暫存器中的資料。

7.i/o狀態資訊:包括顯示的i/o請求,分配給程序的i/o裝置和被程序使用的檔案列表等。

狀態 描述

task_running 表示程序正在執行或者處於準備執行的狀態

task_interruptible 程序因為等待某些條件處於阻塞(掛起的狀態),一旦等待的條件成立,程序便會從該狀態轉化成就緒狀態

task_uninterruptible 意思與task_interruptible類似,但是我們傳遞任意訊號等不能喚醒他們,只有它所等待的資源可用的時候,他才會被喚醒。

task_stopped 程序被停止執行

task_traced 程序被debugger等程序所監視。

exit_zombie 程序的執行被終止,但是其父程序還沒有使用wait()等系統呼叫來獲知它的終止資訊,此時程序成為殭屍程序

exit_dead 程序被殺死,即程序的最終狀態。

結構體互為成員

我定義了兩個型別 typedef stuct aaa,paaa typedef struct bbb,pbbb 這樣兩個型別怎麼宣告?struct aaa struct bbb typedef aaa paaa typedef bbb pbbb struct aaa struct bbb 至少有乙個...

結構體成員的引用

有下面幾個結構體 struct 是個結構標籤 struct x struct y 20 z 或者typedef struct 是個型別名 x y 20 z struct complex struct complex comp 結構體成員直接訪問 comp.sa 4 c 結構體成員的間接訪問 當擁有乙...

termios結構體各成員

termios結構體內容 成員 描述 c cflag 控制模式標誌 c lflag 本地模式標誌 c iflag 輸入模式標誌 c oflag 輸出模式標誌 c line line discipline c cc nccs 控制字元 c ispeed 輸入波特率 c ospeed 輸出波特率 在te...