首頁  >  文章  >  運維  >  linux進程包含哪三個部分

linux進程包含哪三個部分

青灯夜游
青灯夜游原創
2023-03-02 10:47:592484瀏覽

linux進程的三個部分:1、進程控制區塊,使一個在多道程式環境下無法獨立運作的程式(包含資料),成為一個能獨立運作的基本單位,一個能與其它進程並發執行的進程;2、程序段,是進程中能被進程調度程序在CPU上執行的程式碼段;3、資料段,是一個進程的資料段,可以是進程對應的程式加工處理的原始數據,也可以是程式執行後產生的中間或最終數據。

linux進程包含哪三個部分

本教學操作環境:linux7.3系統、Dell G3電腦。

一、進程的定義

行程(Process)是電腦中的程式關於某資料集合上的執行活動,是系統進行資源分配的基本單位,是作業系統結構的基礎。

簡而言之就是程式的一次執行過程
進程是正在執行的程式的實例,也就是一個正在執行的任務。
進程是有生命週期的,隨著程式的運作而創建,隨著程式的結束而終止。
進程是分配資源的最小單位,只要建立了一個進程,就分配了[0-3G]的用戶空間。
只要使用者執行了一個程序,核心就會建立一個task_struct(PCB)結構體,這個結構體就代表目前的進程。
在進程內部維護了自己的一套檔案描述符和緩衝區。只要進程執行結束,那麼它的所有的資源都會被作業系統回收。

linux進程包含哪三個部分

時間片輪詢實作並發

linux進程包含哪三個部分

二、進程的特徵

  • 動態性:進程的實質是程式在多道程式系統中的一次執行過程,進程是動態產生,動態消亡的。

  • 並發性:任何進程都可以與其他進程一起並發執行

  • 獨立性:進程是一個能獨立運作的基本單位,同時也是系統分配資源和調度的獨立單位;

  • 異步性:由於進程間的相互制約,使進程具有執行的間斷性,即進程按各自獨立的、不可預測的速度向前推進

多個不同的進程可以包含相同的程式:一個程式在不同的資料集裡就構成不同的進程,能得到不同的結果;但是執行過程中,程式不能改變。

三、進程的組成及其作用

程式的組成包含三個部分:進程控制區塊PCB(task_struct),資料段,程序段。

進程控制塊:使一個在多道程式環境下無法獨立運作的程式(包含資料),成為一個能獨立運作的基本單位,一個能與其它進程並發執行的進程。
程式段:是進程中能被進程調度程式在CPU上執行的程式碼區段。
資料段:一個行程的資料段,可以是行程對應的程式加工處理的原始數據,也可以是程式執行後產生的中間或最終資料。

四、進程控制區塊

4.1 進程控制區塊定義

為了描述控制進程的運行,系統中存放進程的管理和控制資訊的資料結構稱為進程控制區塊(PCB Process Control Block),它是進程實體的一部分,是作業系統中最重要的記錄性資料結構。它是進程管理和控制的最重要的資料結構,每一個進程均有一個PCB,在創建進程時,建立PCB,伴隨進程運行的全過程,直到進程撤消而撤消。
PCB的本質是一個結構體,不同的作業系統中PCB的名字不同。 Linux中,PCB名為task_struct,PCB 是控制流程的唯一手段。
每一個進程都有一個進程描述符,這個」進程描述符」即是task_struct,在task_struct裡面保存了許多關於進程控制的資訊。

4.2 task_struct的內容

每個行程都把它的資訊放在task_struct這個資料結構裡面,而task_struct包含以下內容:

  • 標示符(pid):描述本進程的唯一標示符,用來區別其他流程。

  • 狀態:任務狀態,退出程式碼,退出訊號等。

  • 優先權:相對於其他行程的優先權(數越小,優先權越高)。

  • 程式計數器:程式中即將被執行的下一指令的位址。

  • 記憶體指針:包含程式碼和行程相關資料的指針,還有和其他行程共享的記憶體區塊的指標。

  • 上下文資料:保存上下文就是把cpu暫存器中的值存到記憶體中;恢復上下文就是把記憶體中的暫存器值恢復到cpu中去;

  • I/O狀態資訊:包含顯示的I/O請求,分配給進程的I/O裝置和正在被處理中的檔案清單。

  • 記帳資訊 :可能包含處理器時間總和,使用的時脈數總和,時間限制,記帳號等。

  • 其他資訊

#五、程式與程式與程式的差異

  • #進程是程式的一次執行過程,它是動態的,具備生命週期,在記憶體上存放。

  • 程式是靜態的,沒有生命週期。在磁碟上存放,程式就是可以可執行檔。

  • 進程更能真實地描述並發,而程式不能。

  • 進程具有創建其他進程的功能,而程式沒有。

  • 同一程式可以對應多個進程。

六、行程與執行緒的差異

通常在一個行程中可以包含若干個執行緒,它們可以利用進程所擁有的資源,在引入執行緒的作業系統中,通常都是把進程當作分配資源的基本單位,而把執行緒當作獨立運行和獨立調度的基本單位,由於執行緒比進程更小,基本上不擁有系統資源,故對它的調度所付出的開銷就會小得多,能更有效率的提高系統內多個程序間並發執行的程度。

七、進程的種類

進程的種類有三種分別是交互進程,批次進程,守護程式




互動進程:互動進程是由shell維護的,透過shell和使用者進行互動。 例如文字編輯器就是互動進程。

######批次處理程序:批次處理程序會被放到核心的一個佇列中,隨著佇列的運行而運行,它的優先權相對比較低。 ### 例如gcc編譯程式的過程。 ############守護程式:守護程式是後台運行的進程,隨著系統的啟動而啟動,隨著系統的終止而終止。 ### 例如windows上的各種服務。 ############相關推薦:《###Linux影片教學###》###

以上是linux進程包含哪三個部分的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn