操作系統(IO管理)

操作系統(IO管理)

一,IO概念

IO就是輸入/輸出(input / output)

IO設備就是可以將數據輸入到計算機,或者可以接收計算機輸出數據的外部設備,屬於計算機的硬件部件

日常生活中,最典型的IO設備就是如下幾種:

  • 鍵盤,字符輸入設備(input)
  • 顯示器,輸出設備(output)
  • 移動硬盤,既可以輸入又可以輸出的設備

在這裏插入圖片描述

IO設備分類

  • 按使用特性分類

    • 人機交互類設備(數據傳輸速度慢)
    • 存儲設備(數據傳輸速度快)
    • 網絡通信設備(數據傳輸速度介於上述兩者之間)

    在這裏插入圖片描述

  • 按照傳輸速率分類

    • 低速設備(每秒幾個到幾百字節)
    • 中速設備(每秒幾千到上萬個字節)
    • 高速設備(每秒數千到千兆字節)
  • 按信息交換的單位分類

    • 塊設備(傳輸快,可尋址)
    • 字符設備(傳輸慢,不可尋址,常採用中斷驅動方式)

二,IO控制

2.1IO控制器

CPU無法直接控制IO設備的機械部件,因此IO設備還要有一個電子部件作爲CPU和IO設備機械部件之間的中介,用於實現CPU對設備的控制,該電子部件就是IO控制器,又稱爲設備控制器,CPU控制IO控制器,IO控制器來控制IO的機械設備

IO控制器的功能

  • 接受和識別CPU發出的指令
    • IO控制器中有相應的控制寄存器來存放cpu傳來的相應的命令和參數
  • 向cpu報告設備狀態
    • IO控制器中有相應的狀態寄存器來記錄當前IO設備的狀態
  • 數據交換
    • IO控制器中有相應的數據寄存器
      • 輸出時,數據寄存器用於暫存CPU發來的數據,之後再由控制器傳送設備
      • 輸入時,數據寄存器用於暫存設備發來的數據,之後cpu從數據寄存器中取走數據
  • 地址識別
    • 爲了區分設備控制器中的各個寄存器,也要給各個寄存器設置一個特定的地址,IO控制器通過CPU提供的地址來判斷cpu要讀/寫哪個寄存器

IO控制器的組成

在這裏插入圖片描述

上文中有說過要給寄存器編地址來區分設備控制器中的各個寄存器

編址方式:

  • 內存映像IO(控制器中的寄存器和內存統一編制)

    在這裏插入圖片描述

  • 寄存器獨立編址(控制器中寄存器獨立編制)

在這裏插入圖片描述

2.2IO控制方式

2.2.1程序直接控制方式

完成一次讀操作流程

  • CPU向控制器發出讀指令,設備啓動,並且報告自身狀態
  • CPU輪詢檢查狀態控制器中的寄存器,當狀態寄存器中設備狀態變爲已經就緒時,就準備從設備中讀入數據
  • 設備在準備好數據後傳給數據寄存器
  • CPU從數據寄存器中讀入數據到cpu寄存器
  • CPU把CPU寄存器中的數據放入內存
  • 判斷是否還要繼續讀入數據,還需要讀入則cpu繼續發出讀指令

在這裏插入圖片描述

cpu干預頻率

CPU干預的頻率很頻繁,IO操作開始之前,完成之後都需要CPU介入,並且在等待IO完成的過程中CPU需要不斷的輪詢檢查設備狀態

數據傳送單位

數據的傳送單位是一個字

數據的流向

  • 讀操作(數據輸入):IO設備 -》 CPU -》內存
  • 寫操作(數據輸出):內存 -》CPU -》IO設備

每個字的讀寫都需要cpu的幫助

主要缺點和主要優點

  • 優點:實現簡單
  • 缺點:cpu利用率低,cpu和IO設備只能串行工作

2.2.2中斷驅動方式

完成一次讀操作流程

引入中斷機制,由於IO設備速度很慢,因此在CPU發出讀寫命令後,可將等待IO的進程阻塞,先切換到別的進程執行(CPU去做別的事情)當IO完成後,IO控制器給CPU發出一箇中斷信號,CPU檢測到中斷信號後,會保存當前進程的上下文環境,切換去執行中斷處理程序處理該中斷,處理中斷過程中,CPU從IO控制器讀一個字到cpu的寄存器,然後在放入內存,接着,CPU恢復等待IO的進程的上下文,然後繼續執行

其實就是相當於,CPU在發出了讀命令給IO控制器後就阻塞當前等待IO的進程,讓IO設備器自己完成IO,等到設備將數據放到IO控制器的數據寄存器後,IO控制器向CPU發出中斷,讓cpu來取數據放入內存

在這裏插入圖片描述

cpu干預頻率

每次IO操作開始之前,完成之後都需要CPU介入

等待IO完成的過程中CPU可以切換到別的進程執行

數據傳送單位

數據的傳送單位是一個字

數據的流向

  • 讀操作(數據輸入):IO設備 -》 CPU -》內存
  • 寫操作(數據輸出):內存 -》CPU -》IO設備

主要缺點和主要優點

  • 優點:與程序直接控制方式相比,在中斷驅動方式中,IO控制器會通過中斷信號主動報告IO完成,CPU不需要不停的輪詢,cpu可以和IO設備並行工作,CPU利用率得到提升
  • 缺點,頻繁的中斷處理會消耗比較多的CPU時間

2.2.3DMA方式

DMA(直接存儲器存取)

  • 數據傳送單位時塊,不再試一個字,一個字的傳送
  • 數據流向:設備直接到內存或內存直接到設備

在這裏插入圖片描述

  • DR(數據寄存器):暫存從設備到內存,或從內存到設備的數據
  • MAR(內存地址寄存器):在輸入時,MAR表示數據應放到內存的什麼位置,輸出時,MAR表示要輸出的數據放在內存的什麼位置
  • DC(數據計數器):表示剩餘要讀/寫的字節數
  • CR(命令/狀態寄存器):用於存放CPU發出來的IO命令,或設備的狀態信息

在這裏插入圖片描述

  • CPU指明此次要進行的操作,比如讀操作,並說明要讀入多少數據,數據要存放在內存的什麼位置,數據在外部設備上的地址

  • 控制器會根據CPU提出的要求完成數據的讀寫工作,整塊數據的傳輸完成後,才向CPU發出中斷信後

  • dma可以直接和內存交互

cpu干預頻率

盡在傳送一個或多個數據塊的開始和結束時,才需要cpu干預

主要缺點和主要優點

  • 優點:數據傳輸效率提高,cpu和IO設備的並行性提到提升
  • 缺點:CPU每發出一條IO指令,只能讀寫一個或多個連續的數據塊,如果要讀寫多個離散存儲的數據塊,或者要將數據分別寫到不同的內存區域,CPU要發出多條IO指令。處理多次中斷才能完成

2.2.4通道控制方式

通道,獨立於CPU的專門負責輸入輸出控制的處理機,他控制設備與內存直接進行數據交換,有自己的通道指令,這些指令由CPU啓動,並在操作結束時向CPU發送中斷信號。

通道控制方式實現了CPU,通道和IO設備三者的並行操作,從而更加有效的提高整個系統的資源利用率,當CPU要完成一組讀操作時,只需要向IO通道發出一條IO指令,指出其所要執行的通道程序的內存地址和要訪問的IO設備,通道收到該指令後,通過執行通道程序便可以完成CPU指定的IO任務,可見 通道只是在 I/O 操作的起始和結束時向 CPU 發出 I/O 中斷申請,相對於之前的控制方式進一步減少了 CPU 的干預程度。

在這裏插入圖片描述

在這裏插入圖片描述

cpu干預頻率

通道只是在 I/O 操作的起始和結束時向 CPU 發出 I/O 中斷申請,相對於之前的控制方式進一步減少了 CPU 的干預程度。

數據傳送單位

三,IO核心子系統

在這裏插入圖片描述

IO核心子系統主要做的就是IO調度,設備保護,設備分配和回收,緩衝區管理(緩衝和高速緩存)

3.1緩衝區管理

如果是字符型設備,則每輸出完一個字符就要想CPU發出一次中斷信號

在這裏插入圖片描述

使用緩衝區之後,IO設備往緩衝區發送字符數據,等到緩衝區滿了在發往CPU

在這裏插入圖片描述

緩衝區的作用:

  • 緩和CPU和IO設備之間速度不匹配的矛盾
  • 減少對CPU的中斷頻率,放寬對CPU中斷相應時間的限制
  • 解決數據粒度不匹配的問題
  • 提高CPU與IO設備之間的並行性

單緩衝

操作系統會在主存中爲其分配一個緩衝區,當緩衝區數據非空時,不能往緩衝區衝入數據,只能從緩衝區把數據傳出

雙緩衝

操作系統會在主存中爲其分配兩個緩衝區

使用單/雙緩衝在通信時的區別

兩臺機器之間通信時,可以配置緩衝區用於數據的發送和接收

在這裏插入圖片描述

任意時刻,設置單緩衝的兩臺機器只能實現數據的單向傳輸

如果設置兩個緩衝區的話就可以實現數據的雙向通信

在這裏插入圖片描述

循環緩衝區

很多大小相等的緩衝區鏈接成一個循環隊列

在這裏插入圖片描述

緩衝池

在這裏插入圖片描述

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