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

linux進程包含哪三個部分

Mar 02, 2023 am 10:47 AM
linux

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

vscode需要什麼電腦配置 vscode需要什麼電腦配置 Apr 15, 2025 pm 09:48 PM

VS Code 系統要求:操作系統:Windows 10 及以上、macOS 10.12 及以上、Linux 發行版處理器:最低 1.6 GHz,推薦 2.0 GHz 及以上內存:最低 512 MB,推薦 4 GB 及以上存儲空間:最低 250 MB,推薦 1 GB 及以上其他要求:穩定網絡連接,Xorg/Wayland(Linux)

Linux體系結構:揭示5個基本組件 Linux體系結構:揭示5個基本組件 Apr 20, 2025 am 12:04 AM

Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

notepad怎麼運行java代碼 notepad怎麼運行java代碼 Apr 16, 2025 pm 07:39 PM

雖然 Notepad 無法直接運行 Java 代碼,但可以通過借助其他工具實現:使用命令行編譯器 (javac) 編譯代碼,生成字節碼文件 (filename.class)。使用 Java 解釋器 (java) 解釋字節碼,執行代碼並輸出結果。

vscode 無法安裝擴展 vscode 無法安裝擴展 Apr 15, 2025 pm 07:18 PM

VS Code擴展安裝失敗的原因可能包括:網絡不穩定、權限不足、系統兼容性問題、VS Code版本過舊、殺毒軟件或防火牆干擾。通過檢查網絡連接、權限、日誌文件、更新VS Code、禁用安全軟件以及重啟VS Code或計算機,可以逐步排查和解決問題。

vscode終端使用教程 vscode終端使用教程 Apr 15, 2025 pm 10:09 PM

vscode 內置終端是一個開發工具,允許在編輯器內運行命令和腳本,以簡化開發流程。如何使用 vscode 終端:通過快捷鍵 (Ctrl/Cmd ) 打開終端。輸入命令或運行腳本。使用熱鍵 (如 Ctrl L 清除終端)。更改工作目錄 (如 cd 命令)。高級功能包括調試模式、代碼片段自動補全和交互式命令歷史。

git怎麼查看倉庫地址 git怎麼查看倉庫地址 Apr 17, 2025 pm 01:54 PM

要查看 Git 倉庫地址,請執行以下步驟:1. 打開命令行並導航到倉庫目錄;2. 運行 "git remote -v" 命令;3. 查看輸出中的倉庫名稱及其相應的地址。

vscode在哪寫代碼 vscode在哪寫代碼 Apr 15, 2025 pm 09:54 PM

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

vscode 可以用於 mac 嗎 vscode 可以用於 mac 嗎 Apr 15, 2025 pm 07:36 PM

VS Code 可以在 Mac 上使用。它具有強大的擴展功能、Git 集成、終端和調試器,同時還提供了豐富的設置選項。但是,對於特別大型項目或專業性較強的開發,VS Code 可能會有性能或功能限制。

See all articles