由於筆者要準備參加研究生考試複試,而操作系統這門課程又是複試考試中的一門課程,因此參考筆者報考學校的ppt,特此記錄一下自己的學習過程,下面正文開始了:
引言
- 設備的概念
一個計算機系統就是由大量的設備構成的,例如:CPU,磁盤,顯卡,顯示器,鼠標,鍵盤等。這些設備的特點和功能各不相同。在這些設備中,有一類是作爲計算機系統與外界交互的工具使用的,他具體負責計算機與外部的輸入輸出工作,我們稱這類設備爲外部設備,簡稱外設。本片文章主要研究的是操作系統中對這類設備的管理策略。 - 設備管理的目標
- 提高設備的利用率,就是提高CPU與I/O設備之間的並行操作
- 爲用戶提供方便統一的界面
- 方便:是指用戶能獨立於具體設備的複雜物理特性之外而方便地使用設備
- 統一:是指對不同地設備儘量使用統一的操作方式
I/O系統概述
- I/O系統的定義
計算機負責管理I/O的機構稱爲I/O系統(硬件和軟件的組合) - I/O系統的結構
a. 單總線結構
b. 多總線結構
c. 具有通道系統的I/O系統
- I/O系統的控制方式
- 程序控制I/O(直接控制)
- 優點:簡單
- 缺點:CPU的大部分時間都用於對硬件進行測試,效率低下
- 中斷驅動I/O
- 優點:在外設進行數據處理時,CPU不必等待,可以繼續執行該程序或其他程序。提高了CPU的利用率。中斷技術使得CPU和外設之間的並行工作成爲可能。
- 缺點:數據仍然需要通過CPU進行傳輸,由於CPU每次處理的數據量較少,因此這種方式只適於數據傳輸率較低的設備
- 直接存儲訪問I/O
優點:CPU只需干預I/O操作的開始和結束,而其中的數據讀寫無需CPU控制,適於高速設備。 - 通道控制方式I/O
優點:解決了I/O操作的獨立性和各部件工作的並行性。通道把中央處理機從繁瑣的輸入輸出操作中解放出來。採用通道技術後,不僅能實現CPU和通道的並行操作,而且通道與通道之間也能實現並行操作,各通道上的外圍設備也能實現並行操作,從而可達到提高整個系統的效率的根本目的
- 程序控制I/O(直接控制)
- I/O設備的分類
- 按數據組織分類
- 塊設備(Block Device):指以數據塊爲單位來組織和傳送數據信息的設備。屬於有結構設備。塊設備的基本特徵是:
- 傳輸速率較高,通常每秒鐘爲幾兆位
- 它是可尋址的,即可隨機地讀/寫任意一塊
- 磁盤設備的I/O採用DMA方式
- 字符設備(Character Device):指以單個字符爲單位來傳送數據信息的設備。這類設備一般用於數據的輸入和輸出(交互式終端、打印機)。它屬於無結構設備。字符設備的基本特徵是:
- 傳輸效率較低
- 不可尋址,即不能指定輸入時的源地址或輸出時的目標地址
- 字符設備的I/O常採用中斷驅動方式
- 塊設備(Block Device):指以數據塊爲單位來組織和傳送數據信息的設備。屬於有結構設備。塊設備的基本特徵是:
- 按數據傳輸率分類
- 低速設備:指傳輸速率爲每秒鐘幾個字節到數百個字節的設備。典型的設備有鍵盤、鼠標、語音的輸入等。
- 中速設備:指傳輸速率在每秒鐘數千個字節至數十千個字節的設備。典型的設備有行式打印機、激光打印機等
- 高速設備:指傳輸速率在數百千個字節至數兆字節的設備。典型的設備有磁帶設備、磁盤設備、光盤設備等。
- 從資源分配的角度分類
- 獨佔設備:指一段時間內只允許一個用戶(進程)訪問的設備,大多是低速的I/O設備,如用戶終端、打印機等屬於這類設備。因爲獨佔設備屬於臨界資源,所以多個併發進程必須互斥地進行訪問
- 共享設備:指在一段時間內允許多個進程同時訪問的設備,典型的共享設備是磁盤,共享設備不僅可以獲得良好的設備利用率,而且是實現文件系統和數據庫系統的物質基礎。
- 虛擬設備:指通過虛擬技術將一臺獨佔設備變換爲若干個用戶(進程)共享的邏輯設備。一般可以利用假脫機技術(SPOOLing技術)實現虛擬設備
- 按數據組織分類
I/O軟件的組成
- I/O軟件的組成部分
- I/O交通管制程序
負責各I/O設備之間的協調工作 - I/O調度程序
負責設備的分配和調度 - I/O設備處理程序
負責每類設備的具體操作
- I/O交通管制程序
- I/O軟件的設計目標
- 設備獨立性(device independence)
- 統一命名
- I/O軟件的結構
- 中斷處理程序
- 中斷機制原理:
- 設置中斷的目的:解決高速處理設備和低速輸入輸出設備之間的矛盾,提高系統工作效率
- 中斷機制原理:
- 設備驅動程序
- 設備驅動程序是直接同硬件打交道的軟件模塊。一般而言,設備驅動程序的任務爲:接受來自與設備無關的上層軟件的抽象請求,進行與設備相關的處理。
- 具體來說,其功能主要有:
- 控制和監督各I/O控制器的正確執行,並進行必要的錯誤處理
- 處理和設備相關的操作,如排隊、掛起、喚醒等。
- 緩衝區管理
- 進行一些較爲底層的和具體設備相關的處理工作
- 設備驅動程序的特點
與I/O設備的硬件結構密切聯繫,是操作系統底層中唯一知道各種輸入輸出設備的控制器細節及其用途的成分。 - 設備驅動程序的結構
- 由於驅動程序和硬件結構有着密切的聯繫,因此不同的硬件其驅動程序的結構也不同
- 但是對於略有差異的同一類設備,爲了方便使用,系統往往會提供一個通用的設備驅動程序。當然爲了追求更好的性能,用戶可以使用廠家提供的專門爲該設備編寫的設備驅動程序。
- 與設備無關的系統軟件
- 是建立在設備驅動程序之上的,與具體設備無關的I/O功能的集合
- 功能:
- 統一命名:將設備的符號映射到相應的設備驅動程序上,對外提供統一的命名方式。
- 設備保護:對設備進行必要的保護,防止無授權的應用或用戶的非法使用
- 提供與設備無關的邏輯塊:屏蔽底層各種I/O設備空間大小、處理速度和傳輸速率的差異,只向上層提供大小統一的邏輯塊尺寸。
- 緩衝管理
- 存儲設備的塊分配:查找一個存儲設備的空閒塊並進行分配
- 獨佔設備的分配和釋放
- 出錯處理:一般來說I/O錯誤有兩種:
- 操作故障:由驅動程序處理
- 非操作故障:如磁盤受損而不能再讀,由與設備無關的軟件處理,並向上層返回出錯信息
- 用戶空間的I/O軟件
常見的主要有:I/O系統調用、SPOOLING系統:構成虛擬設備 - I/O系統的層次結構與每層的主要功能
具有通道的設備管理
- 通道
- 通道的類型
a. 字節多路通道(Byte Multiplexor Channel)
b. 數組選擇通道(Block Selector Channel)
c. 數組多路通道(Block Multiplexor Channel) - 字節多路通道
可以獲得較好的通道利用率 - 數組選擇通道
可以獲得較好的數據傳輸速率 - 數組多路通道
既具有很高的數據傳輸速率,又能獲得令人滿意的通道利用率 - 術語:
- 通道命令:通道又稱爲I/O處理機,具有自己的指令系統,常常把I/O處理機的指令稱爲通道指令
- 通道程序:用通道命令編寫的程序稱通道程序,通道通過執行通道程序控制I/O設備運行
- 通道地址字:用來存放通道程序首地址的內存單元稱通道地址字
- 通道狀態字:是通道向操作系統報告工作情況的狀態彙集
- 通道的工作原理
下面的是筆者的微信公衆號,歡迎關注,會持續更新c++、python、tensorflow、機器學習、深度學習等系列文章