Linux程序管理

2022-08-22 07:21:11 字數 1939 閱讀 9326

1、作業系統基礎

呼叫:kernel通過給應用程式提供system call的方式來提供硬體資源;

注意:應用程式也包括庫檔案;

庫檔案是執行在ring0上一段程式**,不對客戶直接提**用;

中斷、儲存現場

2、程序執行原理(乙個程序和多個程序)

乙個程序:首先我們需要把硬碟中的程式**載入到記憶體(複製),再將這段程式放到cpu上運算,此時,這段程式就會呼叫(同時也會自動生成)很多的程序;由這些程序來完成程式鎖指定的問題。

在這個過程中:我們就需要去解決資料輸入與輸出,還有儲存的問題!

(不討論多核、cpu多執行緒的情況)

多個程序:在電腦中一般都是存在多個程序的,為cpu卻只有乙個,我們使用time space的方式來給程序分配固定時間,來執行,某個程序只有在輪到自己執行的時候才會被放到cpu上去執行,時間一到,就會自動被踢下來,cpu則會執行下乙個程序;

問題:1、程序誰先誰後的問題?

程序優先順序

2、如果程序沒有執行完就被踢下來怎麼辦?

程序的資料儲存

3、程序造反了怎麼辦?

4、程序正常結束了怎麼辦?

3、程序優先順序

0-139

0-99 實時程序,越大越優先

100-139 非實時程序,越小越優先

【特性:普通使用者可以轉讓自己的優先順序】

nice值 定義普通程序的優先順序,-19-20

輪了一圈以後怎麼辦?

在我們記憶體上,會提供乙個空間;這個空間會專門用來存放執行過後的程序;

當所有的程序執行完成一遍之後,這個空間,就會和原有空間對調;再提供給cpu讀取;

一直輪換,直到程序執行完成;

4、程序資料怎麼辦?

程序的資料儲存--task strut

1、程式資料

2、輸入資料輸出資料(執行到一半留下的資料)

3、程序原資料

tast struct 資料結構體:它定義了程序資料的儲存格式;我們將程序資料以及程序元資料儲存於taststruct中,這種結構下,方便cpu快速儲存與讀取;

實體地址空間--線性位址空間

程序在執行後的一些資料通過線性位址對應的實體地址,儲存到記憶體(頁框page);mmu(記憶體管理單元)就是用來將不連續的實體地址轉換為連續的線性位址;

這些分開的頁框的資料有兩種組織形式:1、鏈表型資料 2、雙向型資料

5、程序造反了怎麼辦?

linux結構下程序也是樹形結構--pstree

核心不會去直接管理;一般所有的程序都由上一級程序管理--父子程序概念;

最大的程序--init,有許可權去管理所有的程序;

正常情況:

1、如何生成子程序

寫實複製;

父程序在需要完成一項工作的時候自己無法完成,則需要生成對應的子程序來完成這項工作,並且把自己的記憶體空間中的資料複製乙份交給子程序,用來儲存子程序所執行資料;--這個過程就叫做寫實複製。

2、子程序完成任務以後,如何關閉

子程序任務完成,功成身退,交出所有占用的資源;再由父程序關閉子程序,這個週期就結束了。

6、程序的通訊原理

1、主機內的程序通訊

single訊號通訊

共享記憶體

管道形式

2、主機間的程序通訊

streams -- rpc

socket

7、程序型別

守護程序 -- 維護系統的正常執行

普通程序 -- 提**用

另外一種分類方式:根據占用資源的不同

占用cpu多程序 -- 後台執行程序

占用記憶體多的程序 -- 前台要顯示程序

8、程序的狀態

程序和程式比較起來,程序是有生命週期的,他會死去

1、running 執行狀態

2、sleeping 睡眠狀態

3、stop 停止狀態

4、zombie 僵死狀態

5、中斷

LINUX程序管理

1.程序是什麼?乙個程序就是出於執行期的程式,包括 可執行程式 段 開啟的檔案,掛起的訊號,核心內部資料,處理器狀態,位址空間,乙個或多個執行執行緒,當然還包括用來存放全域性變數的資料段,等等.2.什麼是執行緒?它和程序的關係是什麼樣的?執行緒在linux中具體是怎麼樣實現的?是在程序中活動的物件,...

linux程序管理

程序的監控 使用ps aux 檢視當前所有程序。可以使用top檢視當前程序自動更新列表,在top中m 按記憶體大小排列,p 按cpu佔用率排列 終止和管理程序 程序之間通過訊號來進行通訊 top和kill都用於向程序傳送訊號。kill l顯示訊號編號表。kill 9 pid kill pid 向pi...

Linux 程序管理

1.linux程序管理工具,包括ps pgrep top kill killall pkill 等 常用 ps aux 或lax輸出的解釋 user 程序的屬主 pid 程序的id ppid 父程序 cpu 程序占用的cpu百分比 mem 占用記憶體的百分比 ni 程序的nice值,數值大,表示較少...