如何在核心空間實現執行緒?


核心是作業系統的一部分。它藉助內置於核心的裝置直接與計算機硬體互動。

核心的功能

核心的功能如下:

  • 記憶體管理

  • 控制對計算機的訪問。

  • 維護檔案系統。

  • 處理中斷

  • 處理錯誤

  • 執行輸入和輸出服務。

  • 核心為使用者分配計算機資源。

  • 核心是Unix作業系統架構中最重要的部分。

通常,程式以兩種模式執行,如下所示:

  • 使用者模式:無法訪問任何硬體資源,只能執行使用者操作。

  • 核心模式:可以訪問硬體資源,例如RAM、印表機。

計算機中的處理器根據在處理器上執行的程式碼型別在兩種模式之間切換。

在使用者模式下執行的程序無法訪問為作業系統保留的虛擬地址。當作業系統執行使用者應用程式(例如處理文字編輯器)時,系統處於使用者模式。

當應用程式請求作業系統的幫助或發生中斷或系統呼叫時,就會發生從使用者模式到核心模式的轉換。在使用者模式下,模式位通常設定為1。

當程式需要任何硬體資源時,它需要呼叫核心。透過系統呼叫,程式將切換到核心。這將在核心模式下與硬體資源一起發生。硬體資源的工作編譯完成後,它將再次返回使用者模式。只有在需要硬體時,它才會進入核心模式。

以下是核心的結構:

在核心空間實現執行緒

現在,讓我們看看如何在核心空間實現執行緒。

步驟1:核心透過維護系統中的執行緒表來管理執行緒,以跟蹤所有執行緒。

步驟2:每當執行緒想要建立一個新執行緒或銷燬一個現有執行緒時,它都會進行核心呼叫。它不會透過更新核心執行緒表來進行建立或銷燬操作。

步驟3:此表儲存每個執行緒的暫存器、狀態和其他資訊,並維護傳統的程序表以跟蹤程序。

下面是顯示在核心空間中實現執行緒的影像:

優點

在核心空間中實現執行緒的優點如下:

  • 核心完全瞭解所有執行緒,排程程式決定將更多時間分配給具有大量執行緒的程序,而不是具有少量執行緒的程序。

  • 核心級執行緒非常適合經常阻塞的應用程式。

缺點

在核心空間中實現執行緒的缺點如下:

  • 這些型別的執行緒速度慢且效率低。因為執行緒操作的速度比使用者級執行緒慢數百倍。

  • 由於核心將管理和排程執行緒以及程序,因此它需要為每個執行緒提供一個完整的執行緒控制塊來維護有關執行緒的資訊。這會導致明顯的開銷並增加核心的複雜性。

更新於:2021年11月30日

瀏覽量:1K+

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.