日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

『操作系统』 进程的描述与控制 Part4 线程

發布時間:2023/12/15 windows 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 『操作系统』 进程的描述与控制 Part4 线程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 2.8 線程及其實現
    • 1.線程的概念
      • 練習題
    • 2.線程的實現及控制
      • 例題
      • 練習題

2.8 線程及其實現

1.線程的基本概念
2.線程的實現及控制

引入進程 的目的:
使多個程序能并發執行,提高資源利用率和系統吞吐量。
引入線程 的目的:
應用的需要/ 開銷的考慮/ 性能的提升

開銷的考慮

(1)進程相關的操作:

  • 創建進程
  • 撤消進程
  • 進程通信
  • 進程切換
    → 時間/空間開銷大,限制了并發度的提高。

(2)線程的開銷小

  • 創建一個新線程花費時間少(撤銷亦如此)
  • 兩個線程切換花費時間少
  • 線程之間相互通信無須調用內核(同一進程內的線程共享內存和文件)

性能的提升

  • 多個線程,有的計算,有的I/O,進一步提高并發度。
  • 充分利用多處理器的優勢。

1.線程的概念

在同一進程增加了多個執行序列(線程)

(1)線程:進程中的一個運行實體,是CPU的調度單位,有時將線程稱為輕量級進程
進程與線程

  • 進程是資源分配單位
  • 線程是CPU執行單位
    多線程優點
  • 切換速度快(地址空間不變)
  • 系統開銷小
  • 通訊容易(共享數據空間)


    (2)線程模型
    每個線程擁有自己的棧:局部變量、返回地址
    (3)線程控制塊
  • TCB(Thread control block)
    標志線程存在的數據結構, 其中包含對線程管理需要的全部信息.
  • 內容
    線程標識、線程狀態
    調度參數、現場(通用寄存器,PC,SP)
  • 存放位置
    用戶級線程:目態空間
    核心級線程:管態空間

(4)線程的屬性:并發性、共享性、動態性

  • 輕型實體:只有一點必不可少的、能保證獨立運行的資源
  • CPU調度的基本單位
  • 可并發執行
  • 共享進程資源

(5)線程的優點

  • 快速切換;
  • 易于通信;
  • 并行度高;
  • 節省內存;
  • 減少管理開銷。

(6)線程的基本狀態

  • 執行狀態
  • 就緒狀態
  • 阻塞狀態

(7)線程的創建和終止

  • 線程的創建
    利用線程創建函數(或系統調用);
    創建成功后,返回一個線程標識符。

  • 線程的終止方式
    自愿退出
    被其它線程強行終止

(8)線程與進程的比較

  • 線程:作為CPU調度單位。
    線程只擁有必不可少的資源,如:線程狀態、寄存器上下文和棧
    同樣具有就緒、阻塞和執行三種基本狀態
  • 進程:其它資源分配單位(存儲器、文件、IO等)。
  • 調度:線程作為CPU調度的基本單位,而進程只作為其它資源分配單位。
  • 并發性:進程之間可以并發,且一個進程的多個線程之間亦可并發。
  • 擁有資源:進程間相互獨立,同一進程的各線程間共享資源。某進程內的線程在其它進程不可見。
  • 系統開銷:線程上下文切換比進程上下文切換要快得多。

練習題

1. 線程機制中,一個進程可以對應多個線程,一個線程也可以對應若干個進程。
解答: 錯!
一個進程可以擁有若干個線程,線程從屬于該進程,同一進程內所有線程共享該進程的地址空間,而不同進程之間的地址空間是完全獨立的,如果一個線程可以對應若干個進程,那么也就意味著不同進程之間的地址空間可以共享,這顯然是不合適的。

2.線程的實現及控制

  • 用戶級線程——User-level thread
  • 核心級線程——Kernel-level thread
  • 混合線程——Hybrid approach

(1)用戶級線程和內核支持線程

  • 內核支持線程,它們是依賴于內核的,即無論是用戶進程中的線程,還是系統進程中的線程,它們的創建、撤消、切換都由內核實現。
  • 用戶級線程,對于這種線程的創建、撤消、和切換,都不用系統調用來實現。內核并不知道用戶級線程的存在。

(2)核心級線程

  • 所有線程管理由核心完成
  • 沒有線程庫,但核心提供API
  • 核心維護進程和線程的上下文
  • 線程之間的切換需要核心支持
  • 以線程為基礎進行調度

    當一個線程想去創建一個新線程或撤消已存在的線程時,它發出一個內核調用,完成創建和回收工作。
    實現方法:
  • 基于系統調用
  • 創建、撤銷、狀態轉換由操作系統完成

優點:

  • 對多處理器,核心可以同時調度同一進程的多個線程
  • 某線程阻塞,其它線程仍可執行

缺點:

  • 應用程序線程在用戶態運行,而線程調度和管理在內核實現,在同一進程中,控制權從一個線程傳送到另一個線程時需要用戶態-內核態-用戶態的模式切換,系統開銷較大。
  • 調度算法不能靈活控制

(3)用戶級線程

運行時系統:用于管理和控制線程的函數集合。
(4)線程庫
提供線程運行管理系統:

  • 創建、撤消線程
  • 在線程之間傳遞消息和數據
  • 調度線程執行
  • 保護和恢復線程上下文

用戶級的線程庫能在不支持線程的操作系統中實現線程

  • 切換效率高
  • 允許每一個進程有自已定制的調度算法

實現方法:

  • 基于library函數,系統不可見
  • 線程創建、撤銷、狀態轉換在目態完成
  • TCB在用戶空間,每個進程一個系統棧

優點:

  • 不依賴于操作系統,調度靈活
  • 切換無須從目態到管態,速度快
  • ULT可運行在任何操作系統上(只需要線程庫),可以在一個不支持線程的OS上實現

缺點:

  • 核心只將處理器分配給進程,在多處理機中同一進程中多個線程不能真正并行
  • 一個線程進入系統受阻,進程中其它線程不能執行

例題

1. 設進程A擁有1個用戶級線程,進程B擁有100個用戶級線程,則在系統調度時各占用幾個時間片?
:1個
2. 設進程A擁有1個內核級線程,進程B擁有100個內核級線程,則在系統調度時各占用幾個時間片?
:A:1個;B:100個

用戶級線程與核心級線程的比較

(5)混合線程

  • 在混合式線程系統中,內核支持KLT多線程的建立、調度和管理;
  • 同時,也提供線程庫,允許用戶應用程序建立、調度和管理ULT;
  • 一個應用程序的多個ULT映射成一些KLT,程序員可按應用需要和機器配置調整KLT數目,以達到較好效果;
  • 混合式中,一個應用中的多個線程能同時在多處理器上并行運行,且阻塞一個線程時并不需要封鎖整個進程。如果設計得當,混合式多線程機制能夠結合了兩者優點,舍去缺點。

練習題

1. 在以下描述中,(C)并不是多線程系統的特長。
A. 利用線程并行地執行矩陣的乘法運算
B. Web服務器利用線程響應HTTP請求
C. 鍵盤驅動程序為每一個正在運行的應用配備一個線程,用以響應該應用的鍵盤輸入
D. 基于GUI的調試程序用不同的線程分別處理用戶輸入、計算和跟蹤等操作

2. 同一進程中的多個線程有哪些成分是共用的,哪些成分是私用的?
答: 線程的公有成分包括:
代碼區、數據區、動態堆空間。
線程的私有成分包括:
線程控制塊;
一個執行棧;
運行時動態分給線程的寄存器。

3. [2012考研試題 31]下列關于進程和線程的敘述中,正確的是(A)
A.不管系統是否支持線程,進程都是資源分配的基本單位
B.線程是資源分配的基本單位,進程是調度的基本單位
C.系統級線程和用戶級線程的切換都需要內核的支持
D.同一進程中的各個線程擁有各自不同的地址空間

4. 在支持多線程的系統中,進程P創建的若干線程不嗯呢該共享的事(D)
A.進程的代碼段
B.進程P中打開的文件
C.進程P的全局變量
D.進程P中某線程的棧指針

5. 下列對線程的描述中,(B)是錯誤的。
A.不同的線程可執行相同的程序
B.線程是資源分配單位
C.線程是調度和執行單位
D.同一進程中的線程可共享該進程的主存空間

6. 以下說法中哪個是正確的?(C)
A.線程是進程中可獨立執行的子任務,一個進程可以包含一個或多個線程,一個線程可以屬于一個或多個進程。
B.線程又稱為輕型進程,因為線程都比進程小。
C.多線程技術具有明顯的優越性,如速度快、通信簡便、并行性高等。
D.由于線程不作為資源分配單位,線程之間可以無約束地并行執行。

**7.**進程與線程的根本區別是(C)
A.進程要占用一個進程控制塊,開銷較大,而線程無此開銷
B.進程會增加死鎖的機會,而線程有效避免了這一問題
C. 進程是資源分配單位,而線程是調度和執行的單位
D. 進程是調度和執行的單位,而線程是資源分配單位

8. 用戶級線程執行時,同一進程不同線程的切換不需要內核支持。
答: 正確

9. 在支持線程的操作系統中,同一個進程中的各個線程共享該進程的用戶棧。
答: 錯誤

總結

以上是生活随笔為你收集整理的『操作系统』 进程的描述与控制 Part4 线程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。