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

歡迎訪問 生活随笔!

生活随笔

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

windows

操作系统 —— 设备管理

發布時間:2024/7/19 windows 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 操作系统 —— 设备管理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 1. I/O 設備
    • 1.1. I/O 設備的分類
      • 1.1.1. 按使用特性
      • 1.1.2. 按傳輸速率
      • 1.1.3. 按信息交換的單位
  • 2. I/O 控制器
    • 2.1. 機械部件 vs 電子部件
    • 2.2. I/O 控制器的功能
    • 2.3. I/O 控制器的組成
  • 3. I/O 控制方式
    • 3.1. 程序直接控制方式
    • 3.2. 中斷驅動方式
    • 3.3. DMA方式
    • 3.4. 通道控制方式
  • 4. I/O 軟件層次結構
  • 5. I/O 核心子系統
    • 5.1. 假脫機技術(SPOOLing技術)
      • 5.1.1. 脫機技術
      • 5.1.2. 假脫機技術
  • 6. 設備的分配與回收
    • 6.1. 安全分配 vs 不安全分配
    • 6.2. 靜態分配 vs 動態分配
    • 6.3. 設備分配管理中的數據結構
      • 6.3.1. 設備控制表(DCT)
      • 6.3.2. 控制器控制表(COCT)
      • 6.3.3. 系統設備表(SDT)
    • 6.4. 設備分配的步驟
  • 7. 緩沖區管理
    • 7.1. 緩沖區的作用
    • 7.2. 單緩沖
    • 7.3. 雙緩沖
    • 7.4. 循環緩沖區
    • 7.5. 緩沖池

1. I/O 設備

I/O ” 就是“ 輸入/輸出 ”(lnput/Output)

I/O 設備就是可以將數據輸入到計算機,或者可以接收計算機輸出數據的外部設備,屬于計算機中的硬件部件

UNIX系統將外部設備抽象為一種特殊的文件, 用戶可以使用與文件操作相同的方式對外部設備進行操作。

Write:向外部設備寫出數據。

Read:向外部設備讀入數據。

1.1. I/O 設備的分類

1.1.1. 按使用特性

  • 人機交互類外設:鼠標、鍵盤、打印機等。—— 用于人機交互 —— 數據傳輸速度慢
  • 存儲設備:移動硬盤、光盤等。 —— 用于數據存儲 —— 數據傳輸速度快
  • 網絡通信設備:調制解調器等。 —— 用于網絡通信 —— 數據傳輸速度介于上面兩者之間

1.1.2. 按傳輸速率

  • 低速設備:鼠標、鍵盤等 —— 傳輸速率為每秒幾個到幾百字節。
  • 中速設備:如激光打印機等 —— 傳輸速率為每秒數千至上萬個字節。
  • 高速設備:如磁盤等 —— 傳輸速率為每秒數千字至千兆字節。

1.1.3. 按信息交換的單位

  • 塊設備:如磁盤等 ―― 數據傳輸的基本單位是 “ 塊” 。—— 傳輸速率較高,可尋址,即對它可隨機地讀/寫任一塊。
  • 字符設備:鼠標、鍵盤等 ―― 數據傳輸的基本單位是字符。—— 傳輸速率較慢,不可尋址,在輸入/輸出時常采用中斷驅動方式。

2. I/O 控制器

2.1. 機械部件 vs 電子部件

  • l/O 設備的機械部件主要用來執行具體 l/O 操作。

如我們看得見摸得著的鼠標/鍵盤的按鈕;顯示器的LED屏;移動硬盤的磁臂、磁盤盤面。

  • l/O 設備的電子部件通常是一塊插入主板擴充槽的印刷電路板。

CPU 無法直接控制 I/O 設備的機械部件,因此 I/O 設備還要有一個電子部件作為 CPU 和 I/O 設備機械部分之間的 “中介”, 用于實現CPU對設備的控制。

這個電子部件就是 I/O 控制器,又稱設備控制器。

CPU可控制 I/O 控制器,又由 I/O 控制器來控制設備的機械部件。

2.2. I/O 控制器的功能

1、接受和識別 CPU 發出的命令

? 如 CPU 發來的 read/write 命令,I/O 控制器中會有相應的控制寄存器來存放命令和參數。

2、向 CPU 報告設備的狀態

? I/O 控制器中會有相應的狀態寄存器,用于記錄 I/O 設備的當前狀態。如:1表示空閑,0表示忙碌。

3、數據交換

? I/O 控制器中會設置相應的數據寄存器

? 輸出時,數據寄存器用于暫存CPU發來的數據,之后再由控制器傳送設備。

? 輸入時,數據寄存器用于暫存設備發來的數據,之后CPU從數據寄存器中取走數據。

4、地址識別

? 類似于內存的地址,為了區分設備控制器中的各個寄存器,也需要給各個寄存器設置一個特定的“地址”。

? I/O 控制器通過 CPU 提供的 “ 地址 ” 來判斷 CPU 要讀/寫的是哪個寄存器。

2.3. I/O 控制器的組成

1、 CPU與控制器的接口:用于實現 CPU 與控制器之間的通信,CPU 通過控制線發出命令,通過地址線指明要操作的設備,通過數據線來取出輸入數據,或放入輸出數據。

2、 I/O邏輯:負責接收和識別 CPU 的各種命令, 并負責對設備發出命令。

3、 控制器與設備的接口:用于實現控制器與設備之間的通信。

值得注意的小細節:

① 一個 I/O 控制器可能會對應多個設備;

② 數據寄存器、控制寄存器、狀態寄存器可能有多個(如:每個控制/狀態寄存器對應一個具體的設備),且這些寄存器都要有相應的地址,才能方便CPU操作。有的計算機會讓這些寄存器占用內存地址的一部分,稱為內存映像 I/O;另一些計算機則采用 I/O 專用地址,即寄存器獨立編址

3. I/O 控制方式

即用什么樣的方式來控制 I/O 設備的數據讀/寫。

3.1. 程序直接控制方式

通過 輪詢 實現,以讀操作為例。

數據傳送的單位:每次讀/寫一個

數據的流向

? 讀操作(數據輸入):I/O 設備 → CPU → 內存

? 寫操作(數據輸出):內存 → CPU → I/O 設備

每個字的讀/寫都需要CPU的幫助。

優點:實現簡單。在讀/寫指令之后,加上實現循環檢查的一系列指令即可。(因此才稱為“程序直接控制方式”)

缺點:CPU 和 I/O 設備只能I/O串行工作,CPU 需要一直輪詢檢查,長期處于"忙等"狀態,CPU 利用率低。

3.2. 中斷驅動方式

引入中斷機制

由于 I/O 設備速度很慢,因此在 CPU 發出讀/寫命令后,可將等待 I/O 的進程阻塞,先切換到別的進程執行。當 I/O 完成后,控制器會向 CPU 發出一個中斷信號,CPU檢測到中斷信號后,會保存當前進程的運行環境信息,轉去執行中斷處理程序處理該中斷。

處理中斷的過程中,CPU從 I/O 控制器讀一個字的數據傳送到 CPU 寄存器,再寫入主存。接著,CPU恢復等待 I/O 的進程(或其他進程)的運行環境,然后繼續執行。

注意:

① CPU 會在每個指令周期的末尾檢查中斷;

② 中斷處理過程中需要保存、恢復進程的運行環境,這個過程是需要一定時間開銷的。可見,如果中斷發生的頻率太高,也會降低系統性能。

CPU干預的頻率

每次 I/O 操作開始之前、完成之后需要 CPU 介入。

等待 I/O 完成的過程中 CPU 可以切換到別的進程執行。

數據傳送的單位:每次讀/寫一個

數據的流向

? 讀操作(數據輸入):I/O 設備 → CPU → 內存

? 寫操作(數據輸出):內存 → CPU → I/O 設備

優點:與 “ 程序直接控制方式 ” 相比,在“中斷驅動方式”中,I/O 控制器會通過中斷信號主動報告I/O 已完成,CPU不再需要不停地輪詢。CPU 和 I/O 設備可并行工作,CPU利用率得到明顯提升。

缺點:每個字在 I/O 設備與內存之間的傳輸,都需要經過 CPU。而頻繁的中斷處理會消耗較多的CPU時間。

3.3. DMA方式

DMA方式(Direct Memory Access,直接存儲器存取)。

主要用于塊設備的 I/O 控制,相對于 “中斷驅動方式 ” 有這樣幾個改進:

數據的傳送單位是 “ 塊 ”。不再是一個字、一個字的傳送;

② 數據的流向是從設備直接放入內存,或者從內存直接到設備。不再需要 CPU 作為“快遞小哥”

③ 僅在傳送一個或多個數據塊的開始和結束時,才需要CPU干預。

  • DR (Data Register,數據寄存器):暫存從設備到內存,或從內存到設備的數據。

  • MAR (Memory Address Register,內存地址寄存器):在輸入時,MAR表示數據應放到內存中的什么位置;輸出時MAR表示要輸出的數據放在內存中的什么位置。

  • DC(Data Counter,數據計數器):表示剩余要讀/寫的字節數。

  • CR (Command Register,命令/狀態寄存器):用于存放 CPU 發來的 I/O 命令,或設備的狀態信息。

CPU干預的頻率:僅在傳送一個或多個數據塊的開始和結束時,才需要CPU干預。

數據傳送的單位:每次讀/寫一個或多個塊

  • 每次讀寫的只能是連續的多個塊,且這些塊讀入內存后在內存中也必須是連續的

數據的流向

讀操作(數據輸入): I/O 設備 → 內存

寫操作(數據輸出):內存 → I/O 設備

優點:數據傳輸以“塊”為單位,CPU 介入頻率進一步降低。數據的傳輸不再需要先經過 CPU 再寫入內存,數據傳輸效率進一步增加。CPU 和 I/O 設備的并行性得到提升。

缺點:CPU 每發出一條 I/O 指令,只能讀/寫一個或多個連續的數據塊。如果要讀/寫多個離散存儲的數據塊,或者要將數據分別寫到不同的內存區域時,CPU要分別發出多條 I/O 指令,進行多次中斷處理才能完成。

3.4. 通道控制方式

通道:一種硬件,可以理解為是 “ 弱雞版的 CPU ”。通常可以識別并執行一系列的通道指令。

與 CPU 相比,通道可以執行的指令很單一,并且通道程序是放在主機內存中的,也就是說通道與CPU 共享內存

CPU 干預的頻率:極低,通道會根據 CPU 的指示執行相應的通道程序,只有完成一組數據塊的讀/寫后才需要發出中斷信號,請求 CPU 干預。

數據傳送的單位:每次讀/寫一組數據塊。

數據的流向〈在通道的控制下進行)

讀操作(數據輸入):I/O 設備 → 內存

寫操作(數據輸出):內存 → I/O 設備

優點:CPU、通道、I/O 設備可并行工作,資源利用率很高。

缺點:實現復雜,需要專門的通道硬件支持。

4. I/O 軟件層次結構

  • 越上面的層次越接近用戶,越下面的層次越接近硬件。
  • 每一層會利用下層提供的服務,實現某些功能,并屏蔽實現的具體細節,向高層提供服務(封裝思想)。

用戶層軟件:實現與用戶交互的接口,向上提供方便易用的庫函數。

設備獨立性軟件

① 向上層提供統一的調用接口(如read/write系統調用);

② 設備的保護;

③ 差錯處理;

④ 設備的分配與回收;

⑤ 數據緩沖區管理;

⑥ 建立邏輯設備名到物理設備名的映射關系;根據設備類型選擇調用相應的驅動程序……

設備驅動程序:設置設備寄存器、檢查設備狀態。

中斷處理程序:進行中斷處理。

硬件:執行 I/O 操作,有機械部分、電子部分組成。

5. I/O 核心子系統

I/O 核心子系統要實現的功能其實就是中間三層要實現的功能。

I/O 調度:用某種算法確定一個好的順序來處理各個 I/O 請求。(比如磁盤調度)

設備保護

操作系統需要實現文件保護功能,不同的用戶對各個文件有不同的訪問權限。

在 UNIX 系統中,設備被看做是一種特殊的文件,每個設備也會有對應的FCB。

當用戶請求訪問某個設備時,系統根據FCB中記錄的信息來判斷該用戶是否有相應的訪問權限,以此實現“設備保護”的功能。

5.1. 假脫機技術(SPOOLing技術)

5.1.1. 脫機技術

5.1.2. 假脫機技術

“假脫機技術”,又稱“SPOOLing 技術”,用軟件的方式模擬脫機技術。SPOOLing 系統的組成如下:

打印機是一種 " 獨占式設備 ",但是可以用SPOOLing技術改造成 " 共享設備 "。

6. 設備的分配與回收

6.1. 安全分配 vs 不安全分配

從進程運行的安全性上考慮,設備分配有兩種方式:

1、安全分配方式:為進程分配一個設備后就將進程阻塞,本次 I/O 完成后才將進程喚醒。

一個時段內每個進程只能使用一個設備

優點:破壞了 “ 請求和保持 ” 條件,不會死鎖。

缺點:對于一個進程來說,CPU 和 I/O 設備只能串行工作。

2、不安全分配方式:進程發出 I/O 請求后,系統為其分配 I/O 設備,進程可繼續執行,之后還可以發出新的 I/O 請求。只有某個 I/O 請求得不到滿足時才將進程阻塞。

一個進程可以同時使用多個設備

優點:進程的計算任務和 I/O 任務可以并行處理,使進程迅速推進。

缺點:有可能發生死鎖(死鎖避免、死鎖的檢測和解除)。

6.2. 靜態分配 vs 動態分配

靜態分配:進程運行前為其分配全部所需資源,運行結束后歸還資源。

動態分配:進程運行過程中動態申請設備資源

6.3. 設備分配管理中的數據結構

設備、控制器、通道之間的關系

一個通道可控制多個設備控制器,每個設備控制器可控制多個設備。

6.3.1. 設備控制表(DCT)

系統為每個設備配置一張DCT,用于記錄設備情況。

6.3.2. 控制器控制表(COCT)

每個設備控制器都會對應一張COCT。操作系統根據COCT的信息對控制器進行操作和管理。

6.3.3. 系統設備表(SDT)

記錄了系統中全部設備的情況,每個設備對應一個表目。

6.4. 設備分配的步驟

① 根據進程請求的物理設備名查找SDT。(注:物理設備名是進程請求分配設備時提供的參數)

② 根據SDT找到DCT,若設備忙碌則將進程PCB掛到設備等待隊列中,不忙碌則將設備分配給進程。

③ 根據DCT找到COCT,若控制器忙碌則將進程PCB掛到控制器等待隊列中,不忙碌則將控制器分配給進程。

④ 根據COCT找到CHCT,若通道忙碌則將進程PCB掛到通道等待隊列中,不忙碌則將通道分配給進程。

缺點

① 用戶編程時必須使用 “ 物理設備名 ”,底層細節對用戶不透明,不方便編程。

② 若換了一個物理設備,則程序無法運行。

③ 若進程請求的物理設備正在忙碌,則即使系統中還有同類型的設備,進程也必須阻塞等待。

改進方法

建立邏輯設備名與物理設備名的映射機制,用戶編程時只需提供邏輯設備名。

7. 緩沖區管理

緩沖區是一個存儲區域,可以由專門的硬件寄存器組成,也可以利用內存作為緩沖區。

使用硬件作為緩沖區的成本較高,容量較小, 一般僅用在對速度要求非常高的場合。

比如聯想寄存器 ( 快表 ) 就是硬件作為緩沖區。

一般情況下, 更多的是利用內存作為緩沖區

7.1. 緩沖區的作用

7.2. 單緩沖

假設某用戶進程請求某種塊設備讀入若干塊的數據。若采用單緩沖的策略,操作系統會在主存中為其分配一個緩沖區(若題目中沒有特別說明,一個緩沖區的大小就是一個塊)。

當緩沖區數據非空時,不能往緩沖區沖入數據,只能從緩沖區把數據傳出;

當緩沖區為空時,可以往緩沖區沖入數據,但必須把緩沖區充滿以后,才能從緩沖區把數據傳出。

7.3. 雙緩沖

假設某用戶進程請求某種塊設備讀入若干塊的數據。若采用雙緩沖的策略,操作系統會在主存中為其分配兩個緩沖區(若題目中沒有特別說明,一個緩沖區的大小就是一個塊)。

7.4. 循環緩沖區

將多個大小相等的緩沖區鏈接成一個循環隊列。
注:以下圖示中,橙色表示已充滿數據的緩沖區,綠色表示空緩沖區。

7.5. 緩沖池

緩沖池由系統中共用的緩沖區組成。

這些緩沖區按使用狀況可以分為:

1、空緩沖隊列

2、裝滿輸入數據的緩沖隊列(輸入隊列)

3、裝滿輸出數據的緩沖隊列(輸出隊列)。

根據一個緩沖區在實際運算中扮演的功能不同,又設置了四種工作緩沖區:

1、用于收容輸入數據的工作緩沖區(hin)

2、用于提取輸入數據的工作緩沖區(sin)

3、用于收容輸出數據的工作級沖區( hout)

4、用于提取輸出數據的工作緩沖區(sout)。

總結

以上是生活随笔為你收集整理的操作系统 —— 设备管理的全部內容,希望文章能夠幫你解決所遇到的問題。

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