Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Linux 程式、行程、執行緒三大核心概念差異圖解

編輯:Linux 系統常見問題解答

1. 程式 vs 行程

維度程式行程
本質靜態檔案(磁碟上可執行檔)動態執行實體(記憶體中)
生命週期永久存在有限,建立→執行→終止
資源無擁有獨立虛擬記憶體、檔案描述符、CPU 時間片
對應關係一個程式可對應多個行程一個行程對應一個程式

2. Linux 行程操作

建立流程

  1. 複製父行程環境
  2. 核心建立 task_struct
  3. 插入行程鏈表
  4. 分配資源(記憶體、檔案描述符)
  5. 複製父行程記憶體映射(Copy-on-Write)
  6. 管理檔案描述符表
  7. 通知父行程(SIGCHLD)

終止五種方式

  1. return 自 main
  2. exit()(刷新 I/O 緩衝)
  3. _exit()(直接系統呼叫)
  4. abort()(產生核心傾印)
  5. 信號終止(SIGKILL, SIGTERM 等)

終止時核心回收所有資源。

行程間通訊 (IPC)

  • 管道: 半雙工,父子/親緣行程,類似檔案讀寫
  • 共享記憶體: 多行程映射同一物理頁,最快,需自行同步
  • 訊息佇列: 核心維護鏈表,異步,附帶型別標識

行程同步

  • 訊號
  • 信號量(最主要)

3. 行程 vs 執行緒

總結:執行緒 ⊂ 行程 ⊂ 程式。多執行緒適合高共享資料場景;多行程適合隔離、安全需求高場景。

Copyright © Windows教程網 All Rights Reserved
特性行程執行緒
資源擁有獨立虛擬空間、檔案表共享行程資源(記憶體、檔案、信號處理)
排程單位是是(輕量級行程)
切換開銷大(切換頁表、快取)小(共用頁表)
通訊需 IPC直接讀寫全域變數
控制結構PCBTCB(較精簡)