行程(Process)是系統進行資源分配與調度的基本單位。
進程也是搶佔處理機的調度單位,它擁有一個完整的虛擬位址空間。 (建議學習:web前端視訊教學)
當行程有排程時,不同的行程有不同的虛擬位址,而同一進程內不同執行緒的不同執行緒時,不同的進程擁有不同的虛擬位址,而同一進程內不同執行緒的不同執行緒共享同一地址空間。
與進程相對應,執行緒與資源分配無關,它屬於某一個進程,並與進程內的其他執行緒一起共享進程的資源。
執行緒只由相關堆疊(系統堆疊或使用者堆疊)暫存器和執行緒控製表TCB組成。暫存器可被用來儲存線程內的局部變量,但不能儲存其他線程的相關變數。
通常在一個行程中可以包含若干個執行緒,它們可以利用行程所擁有的資源。在引進執行緒的作業系統中,通常都是把行程當作分配資源的基本單位,而把執行緒當作獨立運作和獨立調度的基本單位。由於執行緒比進程更小,基本上不擁有系統資源;
故對它的調度所付出的開銷就會小得多,能更有效率的提高系統內多個程式間並發執行的程度,從而顯著提高系統資源的利用率和吞吐量。因而近年來推出的通用作業系統都引入了線程,以便進一步提高系統的並發性,並把它視為現代作業系統的一個重要指標。
執行緒的實體包括程式、資料和TCB。執行緒是動態概念,它的動態特性由執行緒控制區塊TCB(Thread Control Block)來描述。
TCB包含以下資訊:
(1)執行緒狀態。
(2)當執行緒不執行時,被儲存的現場資源。
(3)一組執行堆疊。
(4)存放每個執行緒的局部變數主存區。
(5)存取同一個行程中的主記憶體和其它資源。
用於指示被執行指令序列的程式計數器、保留局部變數、少數狀態參數和返回位址等的一組暫存器和堆疊。
以上是在作業系統中,什麼是資源分配最小單位的詳細內容。更多資訊請關注PHP中文網其他相關文章!