您好,登錄后才能下訂單哦!
線程是進程中某一個單一順序的控制流,也被成為輕量級進程(lightweight processes)是CPU調度和分派的基本單元;進程是操作系統結構的基礎,是一個正在執行的程序,計算機中正在運行的程序實例,可以分配給處理器并由處理器執行的一個實體,由單一順序的執行顯示,一個當前狀態和一組相關的系統資源所描述的活動單元。也被稱之為重量級進程(heavyweight processes)
從調度、并發性、系統開銷、擁有資源等方面對線程和進程進行比較
調度
在傳統的操作系統中,CPU調度和分派的基本單位是進程,而在引入線程的操作系統中則把線程作為CPU調度和分 派的基本單位,進程則作為資源擁有的基本單位,從而使傳統進程的兩個屬性分開,線程便能輕裝運行,這樣可以顯著提高系統的并發性。同一進程中線程的切換不會引起進程的切換,從而避免了昂貴的系統調用,但是在由一個進程中的線程切換到另一個進程中的線程時便會引起進程的切換。
并發性
在引入線程的操作系統中,不僅進程之間可以并發執行,而且在一個進程中的多個線程之間也可以并發執行,因而使操作系統具有更好的并發性,從而能夠有效的利用系統資源和提高系統的吞吐量。例如,在一個未引入線程的單CPU操作系統中,若僅設置一個文件服務進程當它由于某種原因被封鎖時,變沒有其他的文件服務進行來提供服務,在引入了線程的操作系統中,可以在一個文件服務進程中設置多個線程,當第一個線程等待時,文件服務進程中的第二個線程可以繼續運行;當第二個線程封鎖封鎖時,第三個線程可以繼續執行從而顯著提高了文件服務的質量以及系統的吞吐量
系統開銷
無論是引入了線程的操作系統還是傳統的操作系統,進程都是擁有系統資源的一個獨立單位,他可以擁有自己的資源,一般線程自己不擁有系統資源但它可以訪問它隸屬的進程的資源。也就是說,一個進程的代碼段數據段及系統資源可供同一進程的其他所有線程使用。
擁有資源
由于在創建或撤銷進程時,系統都要為之分配或回收資源,如內存空間 I/O設備等,因此操作系統所付出的開銷將顯著的大于在創建或撤銷進程時的開銷。類似的在進程切換時,涉及到整個當前進程CPU環境的保存環境的設置以及新被調度運行的進程的CPU環境的設置,而線程的切換只需保存和設置少量寄存器的內容,并不涉及寄存器管理方面的操作。可見進程切換的開銷要遠遠大于線程切換的開銷,此外由于同一進程中的多個線程具有相同的地址空間,致使他們之間的同步和通信的實現也變得相對容易,在有的系統中線程的切換同步和通信都無需操作系統內核干預。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。