【作業系統】1.程序和執行緒
朝槿yys發表於2024-10-30
1. 程序(Process)
- 定義:程序是作業系統資源分配的基本單位,一個程序包含了程式的程式碼、資料、檔案、記憶體等資源。每個程序之間都是獨立的,擁有獨立的地址空間。
- 特性:
- 獨立性:每個程序之間是獨立的,不能直接訪問其他程序的記憶體空間。
- 資源佔用:程序會佔用較多的系統資源,例如記憶體、檔案描述符等。
- 切換開銷高:程序切換時,作業系統需要儲存當前程序的狀態並載入新的程序,開銷較大。
- 應用場景:適用於需要完全獨立執行的任務,比如多個獨立的程式(如瀏覽器、播放器)執行在各自的程序中,互不影響。
2. 執行緒(Thread)
- 定義:執行緒是作業系統排程的基本單位,屬於程序內部的一個“輕量級”執行單元。一個程序可以包含多個執行緒,多個執行緒可以共享程序的資源(如記憶體、檔案)。
- 特性:
- 共享資源:同一程序中的執行緒可以共享程序的記憶體和資源,通訊方便。
- 開銷低:執行緒的切換開銷比程序低,且多個執行緒可以並行執行,提高效率。
- 相互影響:由於資源共享,一個執行緒的異常會影響到同程序中的其他執行緒。
- 應用場景:適用於需要共享資料、並行執行的任務,比如在瀏覽器的一個頁面中開啟多個標籤頁,每個標籤頁可以是一個執行緒,共享記憶體資料。
3. 程序與執行緒的區別總結
特性 | 程序 | 執行緒 |
基本單位 |
資源分配單位 |
排程單位 |
資源獨立性 |
程序間獨立 |
執行緒共享資源 |
建立與銷燬 |
開銷較大 |
開銷較小 |
切換開銷 |
較高 |
較低 |
穩定性 |
穩定,彼此獨立 |
容易互相影響 |