linux程式管理子系統簡要分析
Linux程式管理:
程式與程式:
程式:存放在磁碟上的一系列程式碼和資料的可執行映像,是一個靜止的實體。
程式:是一個執行中的程式,它是動態的實體
程式四要素:
1. 有一段程式供其執行,這段程式不一定是某個程式所專有,可以與其他程式共用
2. 有程式專用的核心空間堆疊
3. 在核心中有一個task_struct資料結構,即通常所說的“程式控制塊”。有了這個資料結構,程式才能成為核心排程的一個的一個基本單位接收核心的排程。
4. 有獨立的使用者空間
Linux程式狀態
1. TASK_RUNNING
程式正在被CPU執行,或者已經準備就緒,隨時可以執行,當一個程式剛被建立時,就處於TASK_RUNNING狀態。
2. TASK_INTERRUPTIBLE
處於等待中的程式,待等待條件為真時被喚醒,也可以被訊號或者中斷喚醒。
3. TASK_UNINTERRUPTIBLE
處於等待中的執行緒,待資源有效時喚醒,但不可以由其它程式通過訊號或中斷喚醒。
4. TASK_KILLABLE
Linux2.6新引入的程式睡眠狀態,原理類似於TASK_UNINTERRUPTIBLE,但是可以被致命訊號SIGKILL喚醒。
5. TASK_TRACED
正處於被除錯狀態的程式
6. TASK_DEAD
程式退出時(呼叫do_exit)所處的狀態
Linux程式描述
在Linux核心程式碼中,執行緒、程式都使用結構task_struct(sched.h)來表示,它包含了大量描述程式/執行緒的資訊,其中比較重要的有:
pid_t pid;//程式號
long state;//程式狀態
int prio;//程式優先順序
Linux程式排程:
排程的概念:從就緒的程式中選出最合適的一個來執行。
1. 排程策略
SCHED_NORMAL(SCHED_OTHER):普通的分時程式
SCHED_FIFO:先入先出的實時程式
SCHED_RR:時間片輪轉的實時程式
SCHED_BATCH:批處理程式
SCHED_IDLE:只在系統空閒時才能夠被排程執行的程式
2. 排程時機
什麼時候發生排程?即shedule()函式什麼時候被呼叫。
排程時機----主動式
在核心中直接呼叫schedule().當程式需要等待資源等而暫時停止執行時,會把自己的狀態置於掛起(睡眠),並主動請求排程,讓出CPU。
範例:
1. current->state = TASK_INTERRUPTIBLE;
2. schedule();
排程時機---被動式
被動式排程又名:搶佔式排程。分為:使用者態搶佔和核心態搶佔。
使用者態搶佔:
核心態搶佔:
排程時機---搶佔計數
3. 排程步驟
Schedule函式工作流程如下:
1>. 清理當前執行中的程式
2>.選擇下一個要執行的程式
3>.設定新程式的執行環境
4>.程式上下文切換
相關文章
- 告警處理子系統(SNET)
- 簡要分析Hacking Team 遠端控制系統
- 利用linux系統命令分析PHP程式LinuxPHP
- Linux作業系統——簡單程式同步Linux作業系統
- Linux核心分析--系統呼叫實現程式碼分析(轉)Linux
- 磁碟原理簡要分析
- Linux系統和核心初始化過程簡要介紹(轉)Linux
- Linux 系統簡介Linux
- 雲伺服器linux系統的程式簡介伺服器Linux
- Linux系統管理——Linux簡介Linux
- 為什麼要學習Linux系統?Linux
- 《Linux系統程式設計訓練營》9_Linux 程式層次分析Linux程式設計
- linux常用系統分析命令Linux
- 伺服器系統簡單分析伺服器
- Linux作業系統程式管理的分析與應用Linux作業系統
- Android Hal層簡要分析Android
- Access Animation破解的簡要分析
- 物件導向程式設計 約瑟夫問題簡要分析物件程式設計
- 兩種Oracle應用程式開發介面之簡要分析Oracle
- 系統移民須知:Linux作業系統安裝要點(轉)Linux作業系統
- 一、Linux系統的簡介Linux
- linux檔案系統簡析Linux
- Linux檔案系統簡介Linux
- Linux系統分割槽簡介Linux
- Linux系統管理簡介(轉)Linux
- 為什麼要遠端連線Linux系統?linux作業系統入門Linux作業系統
- Linux系統程式底層debug除錯及程式原理分析利器Linux除錯
- Linux ubi子系統原理分析Linux
- Linux系統呼叫過程分析Linux
- 簡述linux系統中軟體包管理系統Linux
- 複雜性系統的戰略分析要點 -Dave
- Linux作業系統的許可權程式碼分析【轉】Linux作業系統
- 簡單郵件系統程式
- Multidex(分包)實現簡要分析IDE
- spycop5.5簡要註冊分析
- 夢想CMS(lmxcms)1.4 簡要分析
- Linux作業系統分析 | 深入理解系統呼叫Linux作業系統
- 重點人員預警管控系統開發,情報研判分析系統開發