作業系統 程序與執行緒

2021-09-24 18:15:43 字數 754 閱讀 8943

為什麼會有程序?

以前的計算機效能較差,作業系統只支援單任務,也就是一次只能執行乙個任務,當這個任務執行完成之後,才能執行下乙個任務,例如msdos。當該任務進行io時,cpu會處於空閒狀態。

隨著計算機效能增強,出現了多工作業系統,作業系統可以將多個任務同時載入到記憶體中,併發執行。當某個任務進行io時,作業系統將該任務掛起,切換到其他需要執行任務(通過cpu中斷技術實現)。

因此,為了方便描述乙個任務,便有了程序的概念,乙個程序表示乙個任務。os中用來描述程序的資料結構是pcb(process control block)。乙個pcb物件對應著乙個程序。

linux中的pcb是task_struct,是乙個c結構體。

為什麼引入執行緒?

隨著多核心cpu的誕生,每個cpu的核心有各自的cache,多個核心可以並行地執行多個任務,與之前的單核心cpu(不考慮超執行緒技術)相比,多個核心可以真正實現多個任務同時執行,而並不是並**流執行。

而程序是指乙個程式的一次順序執行,顯然無法充分利用多個核心。那可以不可以將乙個程序內的不相關的任務放在不同的核心上去執行呢?例如,乙個桌面程式的gui和實際的業務邏輯可以在不同的核心上執行,即使業務邏輯所在的核心使用率100%,介面所在核心卻不受影響,即不會出現介面無法響應的情況。

這裡為了描述乙個程序內的多個並行執行的任務,就提出了執行緒的概念。那麼執行緒就是cpu最小的排程單位,而程序是資源分配的最小單位。相應地,作業系統中描述執行緒的資料結構是tcb(thread control block)。

作業系統 程序與執行緒

程序 作業系統結構的基礎,是乙個正在執行的程式 計算機中正在執行的程式例項 可以分配給處理器並由處理器執行的乙個實體 由單一順序的執行顯示,乙個當前狀態和一組相關的系統資源所描述的活動單元。程序切換 從正在執行的程序中收回處理器,然後再使待執行程序來占用處理器。這裡所說的從某個程序收回處理器,實質上...

作業系統 程序與執行緒

1 排程 在傳統的作業系統中,擁有資源的基本單位和獨立排程 分派的基本單位都是程序。而引入執行緒的作業系統,則把執行緒作為排程和分派的基本單位,而程序作為資源擁有的基本單位。2 併發性 在引入執行緒的作業系統中,程序之間可併發執行,在乙個程序中的多個執行緒亦可併發執行。3 擁有資源 程序都可以擁有資...

作業系統 程序與執行緒

程序的概念 順序執行的特點 1.順序性 2.封閉性 3.可重現性 併發執行的特點 1.增強計算機處理能力和提高資源利用率 2.失去了封閉性和可重再現性 3.共享系統資源產生相互制約的關係 程序的定義 1.程序是程式的一次執行 2.程序是乙個程式與其使用的資料在處理機上執行的過程 3.程序是具有獨立功...