Linux系統 程序相關的概念

2022-07-12 05:51:07 字數 1374 閱讀 1194

1.程式和程序

程式:是編譯好的二進位制檔案, 存放在磁碟上, 占用的是磁碟空間, 是乙個靜態的概念。

程序:乙個啟動的程式,程序占用的是系統資源,如:物理記憶體,cpu,終端等,是乙個動態的概念。

程式——>劇本

程序——>戲(舞台,演員,燈光,道具...)

同乙個劇本可在多個舞台上演出,所以同乙個程式可以在多個終端執行,但是是不同的程序,有各自的程序pid。

2.併發和並行

併發:cpu在乙個時間段內同時執行多個程式。

如:若將cpu的1s時間分成1000個時間片,每個時間片無條件讓出cpu使用權,所以cpu的併發為1000。

並行:cpu在同一時刻同時執行多個程式。(需要多核cpu)

3.程序控制塊pcb

每個程序在核心中都有乙個程序控制塊來維護程序相關的資訊,linux核心的程序控制塊的本質是乙個task_struct結構體。

每個程序都有乙個程序id,也就是pid,這是程序唯一的id,相當於人的身份證,在c語言中用pid_t型別來表示。

程序的狀態有:就緒、執行、掛起、停止等狀態。

程序切換時需要儲存和恢復一些cpu暫存器。因為是根據時間片來輪流執行的,需要儲存狀態。

描述虛擬位址空間的資訊。

描述控制終端的資訊。

當前工作目錄:getcwd -pwd

umask掩碼。

檔案描述符表,包含很多指向file結構體的指標。

和訊號相關的資訊。

使用者id和組id。

會話和程序組。

程序可以使用的資源上限:ulimit -a

以上總結:乙個程式在啟動之後就成為了乙個程序,作業系統在程式啟動之後,會給程序分配乙個虛擬位址空間,linux系統32位分配4g,其中,0-3g為使用者區,3-4g為核心區。作業系統在核心區為每個程序維護乙個程序控制塊來維護程序相關的資訊,linux核心的程序控制塊本質是乙個task_struct結構體。

4.程序狀態(面試題)

程序基本狀態有5種。分別為初始態,就緒態,執行態,掛起態和終止態。初始態為程序準備階段,常和就緒態結合來看。

處於就緒態的程序,有執行資格,但是沒有cpu的時間片,沒有獲得cpu,但是處於掛起態的程序,既沒有執行資格,也沒有cpu的時間片。

從掛起態不能直接回到執行態,必須回到就緒態,只有就緒態才能夠回到執行態。

我們關心的就是執行態!

程序相關概念

1.程式與程序 程式是指編譯好的二進位制檔案,在磁碟上,不占用系統資源 cpu 記憶體 開啟的裝置 程序是活躍的程式,占用系統資源,在記憶體中執行 程式執行起來會產生乙個程序 程式就好比是劇本,而程序就是按照劇本演的戲 舞台 演員 道具等就相當於系統資源 同乙個劇本可以在多個地方同時上演,同乙個程式...

Linux系統 程序概念初識

所有的裝置都是圍繞儲存器工作的 cpu 控制器 運算器 1.cpu不會直接從輸入裝置獲取資料進行處理,而是先把資料放到儲存器中,cpu從儲存器中獲取資料處理。2.cpu不會直接將資料交給輸出裝置進行輸出,而是先把資料報道儲存器中,控制輸出裝置從儲存器中獲取資料輸出 2.1什麼是作業系統?2.2什麼是...

LINUX系統程序相關的API

在linux系統下可以用ps指令來檢視系統的程序 在實際工作中經常使用 ps aux gep 程式名,就可以檢視目標程式的程序。也可以用top指令檢視,相當於windows系統下的任務管理器。每個程序都有自己的程序 用getpid函式可以獲取當前經常的程序號 include include incl...