【作業系統】1.程序和執行緒

朝槿yys發表於2024-10-30

1. 程序(Process)

  • 定義:程序是作業系統資源分配的基本單位,一個程序包含了程式的程式碼、資料、檔案、記憶體等資源。每個程序之間都是獨立的,擁有獨立的地址空間。
  • 特性
    • 獨立性:每個程序之間是獨立的,不能直接訪問其他程序的記憶體空間。
    • 資源佔用:程序會佔用較多的系統資源,例如記憶體、檔案描述符等。
    • 切換開銷高:程序切換時,作業系統需要儲存當前程序的狀態並載入新的程序,開銷較大。
  • 應用場景:適用於需要完全獨立執行的任務,比如多個獨立的程式(如瀏覽器、播放器)執行在各自的程序中,互不影響。

2. 執行緒(Thread)

  • 定義:執行緒是作業系統排程的基本單位,屬於程序內部的一個“輕量級”執行單元。一個程序可以包含多個執行緒,多個執行緒可以共享程序的資源(如記憶體、檔案)。
  • 特性
    • 共享資源:同一程序中的執行緒可以共享程序的記憶體和資源,通訊方便。
    • 開銷低:執行緒的切換開銷比程序低,且多個執行緒可以並行執行,提高效率。
    • 相互影響:由於資源共享,一個執行緒的異常會影響到同程序中的其他執行緒。
  • 應用場景:適用於需要共享資料、並行執行的任務,比如在瀏覽器的一個頁面中開啟多個標籤頁,每個標籤頁可以是一個執行緒,共享記憶體資料。

3. 程序與執行緒的區別總結

特性程序執行緒
基本單位 資源分配單位 排程單位
資源獨立性 程序間獨立 執行緒共享資源
建立與銷燬 開銷較大 開銷較小
切換開銷 較高 較低
穩定性 穩定,彼此獨立 容易互相影響

相關文章