程序與執行緒

2022-06-28 19:42:09 字數 1629 閱讀 4117

對程序與執行緒有乙個巨集觀上的了解:

程序,是併發執行的程式在執行過程中分配和管理資源的基本單位,是乙個動態概念,竟爭計算機系統資源的基本單位。每乙個程序都有乙個自己的位址空間,即程序空間或(虛空間)。程序空間的大小 只與處理機的位數有關,乙個 16 位長處理機的程序空間大小為 216 ,而 32 位處理機的程序空間大小為 232 。程序至少有 5 種基本狀態,它們是:初始態,執行態,等待狀態,就緒狀態,終止狀態。

執行緒,在網路或多使用者環境下,乙個伺服器通常需要接收大量且不確定數量使用者的併發請求,為每乙個請求都建立乙個程序顯然是行不通的,——無論是從系統資源開銷方面或是響應使用者請求的效率方面來看。因此,作業系統中線程的概念便被引進了。執行緒,是程序的一部分,乙個沒有執行緒的程序可以被看作是單執行緒的。執行緒有時又被稱為輕權程序或輕量級程序,也是 cpu 排程的乙個基本單位。

程序是作業系統進行資源分配的基本單位。

程序控制塊 (process control block, pcb) 描述程序的基本資訊和執行狀態,所謂的建立程序和撤銷程序,都是指對 pcb 的操作。

乙個執行緒中可以有多個執行緒,是獨立排程的基本單位。同乙個程序中的多個執行緒之間可以併發執行,它們共享程序資源。

① 擁有資源:程序是資源分配的基本單位,但是執行緒不擁有資源,執行緒可以訪問率屬程序的資源。

② 排程:執行緒是獨立排程的基本單位,在同一程序中,執行緒的切換不會引起程序切換,從乙個程序內的執行緒切換到另乙個程序中的執行緒時,會引起程序切換。

③ 系統開銷:由於建立或撤銷程序時,系統都要為之分配或**資源,如記憶體空間、i/o 裝置等,因此作業系統所付出的開銷遠大於建立或撤銷執行緒時的開銷。類似地,在進行程序切換時,涉及當前執行程序 cpu 環境的儲存及新排程程序 cpu 環境的設定。而執行緒切換時只需儲存和設定少量暫存器內容,開銷很小。此外,由於同一程序內的多個執行緒共享程序的位址空間,因此,這些執行緒之間的同步與通訊非常容易實現,甚至無需作業系統的干預。

④ 通訊方面:程序間通訊 (ipc) 需要程序同步和互斥手段的輔助,以保證資料的一致性,而執行緒間可以通過直接讀/寫程序資料段(如全域性變數)來進行通訊。

舉例:qq 和 瀏覽器是兩個程序,瀏覽器程序裡面有很多執行緒,例如 http 請求執行緒、事件響應執行緒、渲染執行緒等等,執行緒的併發執行使得在瀏覽器中點選乙個新鏈結從而發起 http 請求時,瀏覽器還可以響應使用者的其它事件。

1. 執行緒的執行特性。

執行緒只有 3 個基本狀態:就緒,執行,阻塞

執行緒存在 5 種基本操作來切換執行緒的狀態:派生,阻塞,啟用,排程,結束

2. 程序通訊。

單機系統中程序通訊有 4 種形式:主從式,會話式,訊息或郵箱機制,共享儲存區方式。

主從式典型例子:終端控制程序和終端程序。

會話式典型例子:使用者程序與磁碟管理程序之間的通訊。

程序與執行緒

程序 process 管理單元,管理分配應用程式的資料,的記憶體空間.執行緒 thread 執行單元,執行緒負責執行乙個預先編排好的 段,執行 棧是基於執行緒的.乙個應用程式啟動的時候,程序自動建立,並且會預設建立主線程,主線程負責執行main 方法.thread t new thread new ...

程序與執行緒

程序 是擁有資源的實體,包括 1。乙個程序有乙個虛擬位址空間,不同程序位於不同的 虛擬位址空間中。程序之間若要通訊,必須通過作業系統 的功能呼叫 ipc 2。程序擁有其他資源,例如開啟的檔案和i o裝置。程序結束時,作業系統會自動釋放該程序擁有的所有資源。例如,如果 open乙個檔案而不close它...

程序與執行緒

程序包括 1 私有的虛位址空間 2 可執行程式 與資料 3 開啟系統資源列表控制代碼 4 安全訪問標誌 5 程序id 6 至少有乙個執行執行緒 執行緒包括 1 一組cpu暫存器狀態 2 兩個堆疊 系統態與使用者態 3 tls 執行緒區域性儲存區 4 執行緒id 5 安全特性 因此程序是不活潑的,它從...