一、i/o管理的基本概念
1.計算機外部裝置
計算機系統中除cpu和內儲存外所有的裝置和裝置稱為計算機外部裝置(外圍裝置、i/o裝置)。包括:
a.儲存裝置(以塊為單位儲存資訊,又稱為塊裝置);
b.i/o裝置(用於向計算機輸入和輸出資訊的裝置);
c.通訊裝置(負責計算機之間的資訊傳輸)。
2.裝置管理的目標
a.提高裝置利用率:合理分配裝置、提高裝置與cpu、各外部裝置之間的並行性。
b.便於使用者使用:統
一、獨立於裝置。
3.i/o管理功能
a.狀態跟蹤:裝置控制塊是存放裝置管理和控制資訊的資料結構,動態記錄各種裝置的狀態。
b.定製裝置分配策略:確定使用裝置的使用者、起始時間、使用時間。
c.裝置分配與**:作業級--靜態分配、程序級--動態分配。
d.裝置控制:實施裝置驅動和中斷處理的工作。
4.裝置獨立性
a.獨立性概念:邏輯裝置名、物理裝置名、裝置無關性。
b.實現:高階語言、批處理系統及互動系統各有不同:
如高階語言軟通道實現:fd = open("/dev/lp", mode)。
c.優點:便於程式設計、提高系統資源利用率、提高系統可擴充套件性和可適應性。
d.裝置控制塊(dcb):存放裝置的硬體特性、連線和使用情況的資料結構。內容如下:
二、緩衝技術
1.緩衝的用途
處理資料流的生產者與消費者間的速度差異、協調傳輸資料大小不一致的裝置。
2.緩衝的概念
緩衝是用來在兩種不同速度的裝置之間傳輸資訊時平滑傳輸過程的常用手段。
3.實現
a.緩衝器:用來暫存資料的硬體裝置,容量小,速度快。
b.軟體緩衝區:i/o操作期間,臨時存放i/o資料的一塊主存區域。
4.常用的緩衝技術
雙緩衝、環形緩衝、緩衝池。
5.unix系統的緩衝區管理
a.目的:加快系統響應,增強系統吞吐量、減少對磁碟的i/o操作次數。
b.思路:預先快取、延遲傳送。
c.資料結構:如下圖:其中狀態標誌位有如下狀態:busy、**e、delwr、write、read、wait。
d.unix緩衝管理演算法:lru演算法。
三、裝置分配技術
1.分配原則
a.靜態分配:作業執行時,系統若能滿足該作業要求的裝置,則將其要求的裝置全部分配給它。作業執行完成後,釋放占用的所有裝置。優點:沒有死鎖,缺點:裝置利用率低。
b.動態分配:作業執行過程中,需要使用裝置時,向系統申請,系統根據相應的分配原則進行分配。優點:裝置利用率高,缺點:有出現死鎖的可能。
2.分配演算法
先來先服務、優先順序高者優先。
3.分配的安全性
共享裝置不會出現死鎖,獨佔裝置若採用動態分配可能造成死鎖。
4.三種分配方式
獨享分配、共享分配、虛擬分配。
四、裝置控制
1.輸入/輸出控制方法
主要包括:迴圈測試i/o方式、i/o中斷方式、dma方式、通道方式。
2.i/o子系統
a.在應用層為使用者提供i/o應用介面:對裝置的控制和操作則由核心i/o子系統實施。
b.每個通訊裝置型別都通過一組標準函式(及介面)來訪問:具體的差別被i/o子系統中的核心模組(裝置驅動程式)所封裝。
c.i/o子系統功能:解釋使用者i/o命令、裝置驅動、中斷處理。其中,裝置驅動滿足以下條件:每類裝置都有裝置驅動程式,且在系統初始時為每類裝置驅動建立一程序,並在空閒i/o請求佇列上睡眠。當應用程式呼叫相關裝置時,驅動程式驅動裝置執行。
d.控制i/o核心模組的方式:分兩種:以裝置處理程序的方式(有請求則程序被喚醒,無則睡眠)、將裝置與檔案一樣對待(使用檔案系統的系統呼叫命令進行裝置讀寫)。
3.i/o過程
doio(ldev, mode, amount, addr)
a.將邏輯裝置轉換為物理裝置
b.合法性檢查
c.形成請求塊,傳送訊息給對應的裝置處理程序
d.請求關係圖
五、linux裝置管理
1.linux系統裝置分類
a.字元裝置:以字元流的方式被有序訪問的裝置,並以位元組為單位進行資料處理。
b.塊裝置:能隨機訪問固定大小資料的裝置,如硬碟、快閃儲存器等,以塊為單位進行處理,大隊採用緩衝技術。
2.裝置檔案及標識
a.裝置檔案
b.主、次裝置號:
主裝置號:具有相同主裝置號的所有裝置共享相同的檔案操作集合;
次裝置號:標識主裝置號相同的一組裝置中的乙個特定裝置。
3.linux系統裝置管理特點
a.外部裝置看作檔案,有檔案系統統一處理
b.系統裝置配置改變靈活、方便
c.使用塊裝置緩衝技術,提高塊裝置訪問操作的速度
4.用於塊裝置處理的資料結構
a.bio結構:描述塊裝置i/o操作的操作符,以片段為單位的鍊錶形式來組織塊i/o操作。
b.裝置佇列和請求描述符
5.i/o排程程式
a.職責:管理塊裝置請求佇列,延遲啟用塊裝置驅動程式。同時對佇列中的請求進行排序,以減少磁碟定址時間。
b.合併與排序:合併:將兩個或多個i/o請求結合為乙個,減少系統開銷和磁碟定址時間;排序:將裝置請求佇列按磁碟扇區增長的方向排序,使磁頭可以按其前進方向上移動。
輸入 輸出管理(I O
i o裝置管理是作業系統設計中最凌亂也最具挑戰性的部分。由於它包含了很多領域的不同裝置以及與裝置相關的應用程式,因此很難有乙個通用且一致的設計方案。所以在理解裝置管理之前,應該先了解具體的i o裝置型別。計算機系統中的i o裝置按使用特性可分為以下型別 1 人機互動類外部裝置 用於同計算機使用者之間...
linux下輸入輸出管理
1.系統中輸入輸出的管理 1.理解系統的輸入輸出 2.管理輸入輸出的符號 輸出重定向 重定向正確輸出 2 重定向錯誤輸出 重定向所有輸出 注意 重定向會覆蓋原檔案內容 示例 注意 以下實驗必須在student使用者下完成 find etc name passwd file 定向正確輸出到file f...
vim及輸入輸出管理
一 vim三種工作模式 命令模式 插入模式 退出模式 二 命令模式下的各類操作 1.配置vim工作方式 1 臨時設定 命令模式是vim開啟檔案後預設進入的模式,這個模式中不能插入字元,但是可以設定vim的工作方式 set nu 新增行號 set nonu 取消編號 set cursorline 下劃...