淺談進程&線程

學習過操做系統(下面簡稱OS)的都清楚,計算機計算的核心是CPU,操做系統是計算機資源的管理者 同事也是軟硬件之間的接口。爲了實現程序的併發,而引入了進程的概念。
在傳統OS中,進程是個很重要的概念,它是系統可以獨立分配資源、接受調度和運行的基本單位。進程使得程序可以併發執行,且得以控制。數據結構

進程

進程是是計算機中具備必定獨立功能程序在某數據集合上的一次動態執行過程,是系統進行資源分配和調度的基本單位。併發

進程是一個「執行中的程序」,是程序的實體,有本身獨立的地址空間。進程通常有程序段、數據段及進程控制塊構成,即進程實體。異步

進程實體:程序段、數據段和PCB(Process Control Block)。性能

PCB:進程控制塊,它是OS中核心的一種數據結構,它存放了OS全部進程的相關信息和描述。OS根據PCB對併發進程進行控制和管理。學習

定義ui

進程是進程實體的運行過程,是系統進行資源分配和調度的一個獨立單位。spa

特徵操作系統

結構性:進程實體是由程序段、數據段和PCB三部分組成不少時候說的進程指的是進程實體。
動態行:進程實質是進程實體的一次執行過程「它由建立而產生,由調度而執行,由撤銷而消亡」。
併發性:多個進程實體同駐內存,在一段時間內能同時運行
獨立性:它是系統分配資源和調度的基本單位。
異步性:進程實體異步方式運行,進程按各自獨立、不可預知速度向前推動。線程

狀態3d

下圖顯示了主要的進程的狀態及各個狀態之間的轉換。這裏不作過多說明,具體可自行查閱資料。

 

 

進程在建立、撤銷和切換,系統都會爲之付出較大的時空開銷,用以分配或回收各類資源、建立或回收PCB以及處理CPU環境狀態等。

所以OS中,進程數量不能太多 ,切換也不能太頻繁,從而限制了OS的併發性能。特別是多處理機系統發展中,線程能更好的提升程序的併發性,充分發揮了多處理機的優越性。

線程

線程就是在上述條件下,OS引入的概念,有效改善了多處理機系統的性能。
線程也被稱做輕型進程,以線程做爲調度和分派的基本單位。

進程與線程的區別

  • 調度

引入線程前,進程是系統進行資源分配和調度的一個獨立單位。
引入線程後,線程做爲系統調度和分派的基本單位,進程做爲資源擁有者基本單位
即,線程基本不擁有資源。同一進程中不一樣線程切換不會引發進程切換(進程中線程切換到另外一進程中線程 會引發進程切換)。

  • 併發

進程間能夠併發,同一進程間多個線程也能夠併發。

  • 資源

線程基本不擁有資源(也有一點必不可少的資源,線程控制塊TCB、用於指示被執行指令序列的程序計數器,保留局部變量、少數狀態參數和返回地址 等的一組寄存器和堆棧),但它能夠訪問所隸屬的進程的全部資源,即進程的代碼段、數據段以及系統資源(如打開的文件、I/O設備)。

  • 開銷

進程的建立、終止和切換都會產生較大時空開銷(如前面線程引言所述),而線程只需設置少許寄存器便可,代價遠低於進程

進程和線程區別的簡單圖表對比

進程(Process) 線程(Thread)
重量級 輕量級
進程間通訊較慢(不一樣內存地址)            同進程中線程間通訊較快(共享內存地址)
切換代價大 切換代價低
獨立的代碼、數據、資源   

同進程中不一樣線程共享隸屬進程的代碼、

數據和資源

進程是獨立的 線程依賴進程,是進程的子集
資源擁有者基本單位 系統調度和分派的基本單位

 

 

 

 

 

 

 

 

 

 

 

 線程在進程中的簡單示意圖

同一進程中多個線程也是併發的。線程共享隸屬進程的代碼、數據和資源。

 


1.進程/線程的相關知識點來自於《計算機操做系統》
2.題外:PCB,這裏是指進程控制塊。
但在手機主板過程當中也常常提到的PCB是:(Printed Circuit Board)印製電路板,又稱印刷線路板,是重要的電子部件,是電子元器件的支撐體,是電子元器件電氣鏈接的載體。它是採用電子印刷術製做的。

3.若有不對或不足,歡迎指正。
 

--------------------

相關文章
相關標籤/搜索