1. 程式人生 > >【操作系統】線程

【操作系統】線程

一次 創建線程 系統 內核 缺點 歷程 區分 切換 執行

前言: 進程的概念包括了兩個不同的特點:1.資源全部權;2.調度/運行能力; 既然這兩個特點是獨立的。那麽操作系統應該可以獨立地處理它們,這就引出了線程的概念。為區分這兩個特點,我們把分派的單位稱為線程或者輕量級進程。而把擁有資源全部權的單位通常仍稱為進程。


線程的概念: 指操作系統在單個進程內支持多個並發運行路徑的能力。


線程的長處: 1.在進程中創建線程比直接創建進程快; 2.終止線程比終止進程快; 3.同一個進程內線程切換比進程切換快; 4.線程提高不同運行程序的通信效率。(進程通信須要內核的介入。而進程內多個線程之間共享內存和文件。無需調用內核)
:進程掛起操作涉及把一個進程的地址空間換出內存來為其它進程的地址空間騰出位置,由於一個進程中全部線程共享同一地址空間,所以它們都會同一時候被掛起。


線程分類: 1.用戶級線程: 在一個純粹的用戶級線程軟件中,有關線程管理的全部工作都由應用程序完畢,內核意識不到線程的存在。不論什麽應用程序都能夠通過使用線程庫被設計成多線程程序。線程庫是用於用戶級線程管理的一個歷程包,它包括用於創建和銷毀線程的代碼、在線程間傳遞消息和數據的代碼、調度線程運行的代碼。以及保存和恢復線程上下文的代碼。

長處: 1.線程切換用不著內核態特權; 2.調度能夠是應用程序相關的;
3.用戶級線程能夠在不論什麽操作系統中執行。不須要對底層內核改動以支持用戶級線程 缺點: 1.用戶級線程運行系統調用時,不僅這個線程會被堵塞。進程中全部線程均堵塞。 2.內核一次僅僅把一個進程分配給處理器。因此一次進程中僅僅有一個線程能夠運行。 2.內核級線程: 純粹內核級線程中,有關線程管理的全部工作由內核完畢,應用程序部分沒有進行線程管理的代碼。缺點是一個線程傳送到還有一線程時,須要內核的狀態轉換。

























【操作系統】線程