Linux中TASK RUNNING狀態的程序鍊錶

2021-06-04 21:33:37 字數 610 閱讀 4852

早先的linux版本把所有處於task_running狀態的程序組織在乙個叫做執行佇列(runqueue)的鍊錶中,由於維持鍊錶中的程序按優先順序排序的開銷過大,因此,早期的除錯程式需掃瞄整個佇列以選擇「最佳」的可執行程式。

linux2.6實現的執行佇列有所不同。為了實現在固定的時間內選出「最佳」的可執行程式,核心將可執行程序的優先順序劃分為0-139,並為此建立了140個可執行程序鍊錶,用以組織處於task_running狀態的程序,每個程序優先權對應乙個不同的鍊錶。此外,在多處理器系統中,每個cpu都有它自己的執行佇列。

linux2.6實現的執行佇列結構如下: 型別

字段描述

intnr_active

鍊錶中程序描述符的數量

unsigned long[5]

bitmap

優先權位圖:當且僅當某個優先權的程序鍊錶不為空時設定相應的位標誌

struct list_head[140]

queue

140個優先權佇列的頭結點

程序描述符的結構都包含乙個list_head型別的tasks欄位,這個型別的prev和next欄位分別指向前面和後面的task_struct元素,實現雙向鍊錶。

Linux中許可權

當你在linux下用命令ll 或者ls la的時候會看到這些字眼,這些字眼表示為不同使用者組的許可權 r read就是讀許可權 數字4表示 w write就是寫許可權 數字2表示 x excute就是執行許可權 數字1表示 讀 寫 執行三項許可權可以用數字表示,就是r 4,w 2,x 1。所以,rw...

Linux中控制代碼

1.控制代碼就是乙個識別符號,只要獲得物件的控制代碼,我們就可以對物件進行任意的操作。2.控制代碼不一定是指標。作業系統用控制代碼可以找到一塊記憶體,這個控制代碼可能是識別符號,例如map的key,也可能是指標,看作業系統怎麼處理的了。fd算是在某種程度上替代控制代碼吧 linux 有相應機制,但沒...

Linux中的時鐘概念Linux中的時鐘概念

linux的時鐘中斷中涉及至二個全域性變數乙個是xtime,另乙個則是jiffies。有乙個與時間有關的時鐘 實時時鐘 rtc 這是乙個硬體時鐘,用來持久存放系統時間,系統關閉後靠主機板上的微型電池保持計時。系統啟動時,核心 通過讀取rtc來初始化wall time,並存放在xtime變數中,即xt...