進程和線程區別

來源:互聯網
上載者:User

標籤:暫停   pcb   中斷   程式碼片段   提高   可見   地址   單位   寄存器   

 

彙集很多部落格於一體的,大概就這些

 

1.調度

在傳統的作業系統中,擁有資源的基本單位和獨立調度、指派的基本單位都是進程。而在引入線程的作業系統中,則把線程作為調度和指派的基本單位。而把進程作 為資源擁有的基本單位,使傳統進程的兩個屬性分開,線程便能輕裝運行,從而可顯著地提高系統的並發程度。

在同一進程中,線程的切換不會引起進程的切換,在 由一個進程中的線程切換到另一個進程中的線程時,將會引起進程的切換。

2.並發性

在引入線程的作業系統中,不僅進程之間可以並發執行,而且在一個進程中的多個線程之間,亦可並發執行,因而使作業系統具有更好的並發性,從而能更有效地使 用系統資源和提高系統輸送量。提高輸送量

3.擁有資源

不論是傳統的作業系統,還是設有線程的作業系統,進程都是擁有資源的一個獨立單位,它可以擁有自己的資源。一般地說,線程自己不擁有系統資源(也有一點必 不可少的資源),但它可以訪問其隸屬進程的資源。亦即,一個進程的程式碼片段、資料區段以及系統資源,如已開啟的檔案、I/O裝置等,可供問一進程的其它所有線 程共用。

4.系統開銷

由於在建立或撤消進程時,系統都要為之分配或回收資源,如記憶體空間、I/o裝置等。因此,作業系統所付出的開銷將顯著地大於在建立或撤消線程時的開銷。類 似地,在進行進程切換時,涉及到整個當前進程CPU環境的儲存以及新被調度啟動並執行進程的CPU環境的設定。而線程切換隻須儲存和設定少量寄存器的內容,並 不涉及儲存空間管理方面的操作。可見,進程切換的開銷也遠大於線程切換的開銷。此外,由於同一進程中的多個線程具有相同的地址空間,致使它們之間的同步和通訊的實現,也變得比較容易。在有的系統中,線程的切換、同步和通訊都無須

5:宏觀狀態

進程的執行過程是線狀的,儘管中間會發生中斷或暫停,但該進程所擁有的資源只為該線狀執行過程服務。一旦發生進程環境切換,這些資源都是要被保護起來的。這是進程宏觀上的執行過程。而進程又可有單線程進程與多線程進程兩種。我們知道,進程有 一個進程式控制制塊 PCB ,相關程式段 和 該程式段對其進行操作的資料結構集 這三部分,單線程進程的執行過程在宏觀上是線性,微觀上也只有單一的執行過程;而多線程進程在宏觀上的執行過程同樣為線性,但微觀上卻可以有多個執行操作(線程),如不同程式碼片段以及相關的資料結構集。線程的改變只代表了 CPU 執行過程的改變,而沒有發生進程所擁有的資源變化。出了 CPU 之外,電腦內的軟硬體資源的分配與線程無關,線程只能共用它所屬進程的資源。

6:PCB,TCB

 與進程式控制製表和 PCB 相似,每個線程也有自己的線程式控制製表 TCB ,而這個 TCB 中所儲存的線程狀態資訊則要比 PCB 表少得多,這些資訊主要是相關指標用堆棧(系統棧和使用者棧),寄存器中的狀態資料。

 

 

進程和線程區別

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.