操作系統原理學習(第四周)_線程

4-1 線程的引入

1.線程的概念

①進程具有兩個基本屬性:

  • 是一個擁有資源的獨立單位,可獨立分配虛地址空間、主存和其他
  • 又是一個可獨立調度和分派的基本單位

這使得進程成爲併發執行的基本單位

②問題:由於進程是一個資源的擁有者,因而在創建、撤銷、切換調度時,系統需要付出較大的時空開銷,故進程的數目不宜過多,進程的切換頻率不宜過高,限制了併發程度。

③方法:將進程的兩個基本屬性分開

對於擁有資源的基本單位,不對其進行頻繁切換,對於調度的基本單位,不作爲擁有資源的單位,“輕裝上陣”

④以內線程以小的開銷來提高進程內的併發程度。

 

2.線程的引入

①在引入線程以前,進程是資源分配單位和CPU調度單位。引入線程以後,線程作爲CPU的調度單位,而進程只作爲資源分配單位。

②線程的特點:

  • 只擁有必不可少的資源,如:線程狀態、程序計數器、寄存器上下文和棧
  • 同樣具有就緒、阻塞和執行三種基本狀態
  • 與同屬於一個進程的其他進程共享擁有的全部資源
  • 可併發執行

 

3.線程的優點

減小併發執行的時間和空間開銷(線程的創建、退出和調度),因此容許在系統中建立更多的線程來提高併發程度

  • 線程的創建時間比進程短
  • 線程的終止時間比進程短
  • 同進程內線程切換時間比進程短
  • 進程內的線程共享文件和文件資源,可直接進行不通過內核的通信

 

4.線程 Thread

①線程是CPU運用的基本單元,包括程序計數器、寄存器集和棧空間

②一個進程可以有多個線程,一個線程與它的對等線程共享代碼段、數據段、操作系統資源,總體作爲一個任務

③傳統的或重型的進程等價於只有一個線程的任務。

④單線程進程和多線程進程,進程內的多線程共享代碼段、數據段和文件資源,各自有自己的寄存器、棧。

 

5.進程和線程的比較

①併發性:引入進程的OS中,不僅進程間可以併發執行,在一個進程中的多個線程也可以併發執行,使OS有更好地併發性,提高資源利用率和系統的吞吐量。

②擁有資源:進程是擁有資源的獨立單位,線程只有一些必不可少的資源。

③系統開銷:OS創建或撤銷進程的開銷明顯大於創建或撤銷線程的開銷。

④地址空間和其他資源:進程間相互獨立,同一進程內的各線程共享。

⑤通信:線程間可直接讀寫數據段來進行通信——需要進程同步和互斥手段的輔助,保證數據的一致性。

⑥調度:線程上下文切換比進程上下文切換快得多。

 

6.引入線程的好處

①響應度高:一個多線程應用在執行中,即使其中一個線程阻塞,其他的線程還看繼續進行,從而提高響應速度。

②資源共享:同一個進程的多個線程共享該進程的內存等資源。

③經濟性:創建和切換線程開銷低於進程。

④MP體系結構的運用:多線程更適用於多處理結構。

 

4-2 用戶線程和內核線程

1.內核線程

①由內核支持,在內核空間執行線程創建、調度和管理。

②內核級線程時,線程才真正是CPU調度的基本單元。

③內核線程依賴於OS核心

  • 內核維護進程和線程的上下文信息
  • 線程切換由內核完成
  • 一個線程發生系統調用而阻塞,不會影響其他線程的運行
  • 時間片分配給線程,多線程的進程獲得更多的CPU時間

 

2.用戶線程

①由用戶程序庫進程管理的線程,無需內核支持,以進程爲單位被OS調度。

②用戶線程不依賴於OS核心,由線程庫調度,無需用戶態/核心態切換,速度特別快

  • 由用戶程序完成
  • 內核不瞭解用戶程序的存在
  • 用戶線程切換不需要內核特權
  • 缺點:若內核爲單線程控制,一個用戶線程發生系統調用而紫色,則整個進程阻塞。時間片分配給進程,多線程則每個線程就慢。
  •  

3.用戶線程和內核線程的比較

①調度方式:內核線程的調度和切換與進程相似,用戶線程的調度不需要OS的支持。

②調度單位:用戶程序的調度以進程爲單位,在採用時間片輪轉調度算法時,每個進程分配相同的時間片。

 

4-3 多線程模型

用戶線程要映射到內核線程上執行

1.多對一

①多個用戶線程映射待同一個內核線程

②用於不支持內核線程的系統中

③任一時刻只有一個線程可以訪問內核(併發性低)

④用戶線程發起系統調用而阻塞,則整個進程阻塞

 

2.一對一

①每個用戶級線程映像進一個內核線程

②提供更好的併發性,一個線程阻塞是運行另一個線程運行

③每創建一個用戶線程需創建一個相應的內核線程,帶來額外開銷,許多系統限制應用中線程數目。

 

3.多對多

不限制用於的線程數,多個線程可併發

 

4.兩級模型

在多對多的基礎上發展兩級模型,多對多+一對一,運行一個用戶線程綁定到內核線程。

 

本文知識以及圖片來源:慕課_操作系統原理_田麗華

網址:https://www.icourse163.org/learn/XJTU-1003409001?tid=1206408203#/learn/content

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章