作業系統 Linux下的程式
Linux的程式
Linux程式的兩種執行模式
- 在Linux裡,一個程式既可以執行使用者程式,又可以執行作業系統程式。當程式執行使用者程式時,稱其為處於“使用者模式”;當程式執行時出現了系統呼叫或中斷事件,轉而去執行作業系統核心的程式時,稱其為處於“核心模式”。
- 在Linux裡處理機就具有兩種執行狀態:核心態和使用者態。
Linux下程式概念及特徵
(1)、在Linux裡,把程式定義為“程式執行的一個例項”
(2)、程式一方面競爭並佔用系統資源(比如裝置和記憶體),向系統提出各種請求服務;程式另一方面是基本的排程單位,任何時刻只有一個程式在CPU上執行。
Linux程式實體的組成
Linux中,每個程式就是一個任務(task),一般具有以下四個部分:
(1)程式控制塊(在Linux裡,也稱為程式描述符。)。
(2)程式專用的系統堆疊空間;
(3)供程式執行的程式段(在Linux裡,稱為正文段);
(4) 程式專用的資料段和使用者堆疊空間
Linux的程式控制塊——程式描述符
在Linux中,程式的程式描述符是一個結構型別的資料結構:task_struct。
程式描述符組成內容
- 程式標識(pid);
- 程式狀態(state);
- 程式排程資訊,包括排程策略(policy)、優先順序別(priority和rt_priority)、時間片(counter)等;
- 接收的訊號(*sig);
- 程式家族關係;
- 程式佇列指標;
- CPU的現場保護區;
- 與檔案系統有關的資訊。
Linux的程式狀態
Linux的程式可以有五種不同的狀態
程式狀態
- 可執行狀態
- 可中斷狀態
- 不可中斷狀態
- 暫停狀態
- 僵死狀態
程式的建立與撤銷
- Linux中的每個程式,都有一個建立、排程執行、撤銷死亡的生命期。 Linux系統中的各個程式,相互之間構成了一個樹型的程式族系。
Linux的程式排程
Linux的程式排程型別
- 在Linux中,程式排程被分為實時程式排程和非實時程式排程兩種。
Linux程式描述符中與排程有關的欄位
- Linux程式描述符中,有四個欄位與程式排程有關,它們是:policy、priority、rt_priority和counter。
Linux的三種程式排程策略
- Linux程式描述符中的policy欄位,可以取三個值:SCHED_FIFO、SCHED_RR以及SCHED_OTHER。
(1)SCHED_FIFO——實時程式的先進先出排程策略
(2)SCHED_RR——實時程式的輪轉排程
(3)SCHED_OTHER——非實時程式的輪轉排程
Linux的等待佇列
Linux程式間的通訊—訊息佇列
- 訊息佇列是程式間的一種非同步通訊方法。所謂“非同步”,即傳送訊息的程式在訊息發出之後,不必等待接收程式做出反應,就可以去做其他的事情了。
"訊息"的資料結構
Linux中的每個訊息,由兩個部分組成:訊息頭和訊息緩衝區。
訊息佇列的資料結構
Linux訊息佇列是struct msqid_ds型的資料結構。
訊息佇列表的資料結構
程式間藉助訊息佇列來傳遞資料,因此係統中可以建立多個訊息佇列。Linux是通過“訊息佇列表”來管理所有訊息佇列的。
有關訊息佇列的系統呼叫
- 建立一個新的訊息佇列:newque( )
- 刪除一個訊息佇列:freeque( )
- 向一個訊息佇列傳送一條訊息:msgsnd( )
- 從一個訊息佇列中接收一條訊息:msgrcv( )
相關文章
- 【Linux】Linux作業系統 程式管理Linux作業系統
- 深入理解Linux作業系統下的守護程式(轉)Linux作業系統
- 深入理解Linux作業系統下的守護程式(1)Linux作業系統
- 深入理解Linux作業系統下的守護程式(2)Linux作業系統
- 作業系統2—作業系統概論(下)作業系統
- Linux作業系統——簡單程式同步Linux作業系統
- 紅旗Linux作業系統下載(轉)Linux作業系統
- Linux 作業系統Linux作業系統
- Linux作業系統Linux作業系統
- Linux作業系統 程式之間的通訊Linux作業系統
- 【linux】Linux作業系統Linux作業系統
- Linux作業系統之Shell程式設計Linux作業系統程式設計
- 在linux作業系統下安裝vmware toolsLinux作業系統
- Linux作業系統程式管理的分析與應用Linux作業系統
- Linux作業系統下Xwindow的語言選擇(轉)Linux作業系統
- Linux作業系統概述Linux作業系統
- 作業系統與Linux作業系統Linux
- 作業系統-程式管理作業系統
- 【作業系統之程式】作業系統
- 獲取windows 作業系統下的硬體或作業系統資訊等Windows作業系統
- 作業系統是什麼?Linux是什麼作業系統?作業系統Linux
- linux作業系統下c語言程式設計入門(1)(轉)Linux作業系統C語言程式設計
- linux作業系統下c語言程式設計入門(2)(轉)Linux作業系統C語言程式設計
- 理解linux/unix作業系統守護程式(轉)Linux作業系統
- Linux作業系統下Shell病毒詳細介紹Linux作業系統
- Linux作業系統的許可權程式碼分析【轉】Linux作業系統
- 作業系統系列----程式與程式 程式的描述作業系統
- Linux 作業系統!開篇!!!Linux作業系統
- 科普帖:Linux作業系統Linux作業系統
- Linux作業系統基礎Linux作業系統
- Linux作業系統 paste命令Linux作業系統AST
- LINUX作業系統runuser用法Linux作業系統
- 桌面 Linux 作業系統不死Linux作業系統
- linux作業系統介紹Linux作業系統
- 黑客專用的 Linux 作業系統-黑客Linux作業系統
- 配置安全的Linux作業系統(轉)Linux作業系統
- 【Linux】Linux作業系統 配置sudoLinux作業系統
- 作業系統篇-程式管理作業系統