您好,登錄后才能下訂單哦!
今天小編給大家分享一下linux進程包括哪些部分的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
linux進程的三個部分:1、進程控制塊,使一個在多道程序環境下不能獨立運行的程序(包含數據),成為一個能獨立運行的基本單位,一個能與其它進程并發執行的進程;2、程序段,是進程中能被進程調度程序在CPU上執行的程序代碼段;3、數據段,是一個進程的數據段,可以是進程對應的程序加工處理的原始數據,也可以是程序執行后產生的中間或最終數據。
進程(Process)是計算機中的程序關于某數據集合上的一次運行活動,是系統進行資源分配的基本單位,是操作系統結構的基礎。
簡而言之就是程序的一次執行過程。
進程是正在運行的程序的實例,也就是一個正在執行的任務。
進程是有生命周期的,隨著程序的運行而創建,隨著程序的結束而終止。
進程是分配資源的最小單位,只要創建了一個進程,就分配了[0-3G]的用戶空間。
只要用戶執行了一個程序,內核就會創建一個task_struct(PCB)結構體,這個結構體就代表當前的進程。
在進程內部維護了自己的一套文件描述符和緩沖區。只要進程執行結束,那么它的所有的資源都會被操作系統回收。
時間片輪詢實現并發
動態性:進程的實質是程序在多道程序系統中的一次執行過程,進程是動態產生,動態消亡的。
并發性:任何進程都可以同其他進程一起并發執行
獨立性:進程是一個能獨立運行的基本單位,同時也是系統分配資源和調度的獨立單位;
異步性:由于進程間的相互制約,使進程具有執行的間斷性,即進程按各自獨立的、不可預知的速度向前推進
多個不同的進程可以包含相同的程序:一個程序在不同的數據集里就構成不同的進程,能得到不同的結果;但是執行過程中,程序不能發生改變。
進程的組成包含三個部分:進程控制塊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進程包括哪些部分”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。