作業系統概念(十一) I O系統

2021-10-01 14:41:44 字數 2177 閱讀 5055

寫在前面:這一章似乎並不是很重要。當然,坐等打臉

os核心通過裝置驅動程式(模組)與i/o子系統鏈結,驅動為i/o子系統提供了統一裝置訪問介面,與系統呼叫api為應用程式與os之間提供了統一的標準介面一樣。

1、使i/o裝置可用統一的標準對待

2、塊與字元裝置:包括磁碟驅動器、鍵盤、滑鼠、序列口,記憶體對映檔案訪問是建立在塊裝置驅動程式之上的。記憶體對映介面不是提供read和write操作,而是提供通過記憶體中的位元組陣列來訪問磁碟儲存。

3、網路裝置:絕大多數作業系統所提供的網路i/o介面也不同於磁碟的read-write-seek介面。許多os所提供的是網路套接字介面。

4、時鐘與定時器:需要提供以下三個基本函式:

①獲取當前時間

②獲取已經逝去的時間

③設定定時器以在t時觸發操作x

5、阻塞與非阻塞i/o:

①阻塞:程序懸掛直到i/o完成為止,容易使用與理解,對某些需求難以滿足

②非阻塞:i/o呼叫立刻返回,使用者介面,資料複製(緩衝i/o),通過多執行緒實現,立刻返回讀或寫的位元組數

③非同步:程序與i/o同時執行,難以使用,當i/o完成時,i/o系統傳送訊號通知程序

6、非阻塞與非同步系統呼叫的差別是非阻塞read呼叫會馬上返回,其所讀取的資料可以等於或少於所要求的,或為零。非同步read呼叫所要求的傳輸應完整地執行,其具體執行可以是將來某個特定時間。

1、i/o排程:os通過為每個裝置維護乙個請求佇列實現排程,也可以通過緩衝,高速緩衝,假離線實現

1、用來儲存在兩裝置之間或在裝置和應用程式之間所傳輸資料的記憶體區域。

2、採用緩衝的三個理由:

①處理裝置速度的差異。如數據機的速度與硬碟的速度的差異。

②處理裝置傳輸大小的差異。如計算機網路中,緩衝常常用來處理訊息的分段和重組。

③維護應用程式的「拷貝語義」

1、是可以保留資料拷貝的高速記憶體。

2、緩衝只是保留資料僅有的乙個現存拷貝,而根據定義快取記憶體只是提供了乙個駐留在其他地方的資料的乙個高速拷貝。

3、快取記憶體和緩衝是兩個不同的功能,但有時一塊記憶體區域也可以同時用於兩個目的。

1、假離線:用來儲存裝置輸出的緩衝,這些裝置如印表機不能接收交叉的資料流。

2、裝置預留:提供裝置的互斥訪問

3、預留:為某程序保留該裝置的使用權,在該程序獲得執行之前,其他申請該裝置的程序將得不到使用權。

1、os可以對短暫出錯進行彌補

2、當i/o請求失敗後,多數返回乙個錯誤號或錯誤碼

3、系統錯誤日誌儲存問題的詳細報告

1、核心需要儲存留i/o元件使用的狀態資訊,包括開啟檔案表,網路連線,字元裝置狀態等

2、許多複雜的資料結構用來跟蹤緩衝,記憶體分配,及「髒」塊

3、某些os用物件導向的方法和訊息傳遞的方法來實現i/o

1、檔案和目錄的命名空間的管理

2、檔案和目錄的訪問控制

3、操作控制(例如,modem不能使用seek)

4、檔案系統空間分配

5、裝置分配

6、緩衝、快取記憶體和假離線

7、i/o排程

8、裝置狀態監控、錯誤處理、失敗恢復

9、裝置驅動程式的配置和初始化

1、從磁碟讀檔案到程序的過程:

①找到包含檔案的裝置

②將檔名轉換成裝置實現

③從磁碟上讀資料至緩衝區

④通知程序資料可用

⑤將控制返回給程序

2、i/o請求的生命週期:

①請求i/o呼叫系統呼叫

②系統呼叫判斷是否可以滿足請求,如果可以轉到③,如果不可以轉到④

③可以滿足i/o請求的時候,核心子系統傳輸資料到晉城,返回完成或者錯誤**,轉到⑤

④不可滿足i/o請求的時候,核心子系統向裝置驅動傳送請求,如果合適則阻塞程序,轉到⑥

⑤核心子系統完成i/o請求後,從系統呼叫返回,i/o完成,輸入資料可用,或者輸出完畢,終止

⑥如果程序已經被阻塞,則裝置驅動器傳送請求,向控制器傳送命令,裝置控制器阻塞直到被中斷,轉到⑦

⑦裝置控制器命令監視裝置,直到裝置i/o完成,進行中斷,轉到⑧

⑧中斷處理程式會接收到裝置產生的中斷,如果輸入則儲存資料到裝置驅動器緩衝區,傳送訊號來阻塞裝置驅動器,轉到⑨

⑨裝置驅動器會決定哪個i/o完成,向i/o子系統指示狀態轉換,轉到③

如圖:

作業系統(十一)

段模式的評價和實際採用情況 1 記憶體利用率 關於空閒空間利用率的情況 1 和可變分割槽相比,仍存在外部碎片。但是程度大大減少,仍存在內部碎片的程度大了一些,但總的來說空間的利用率比可變分割槽高。2 於頁式相比,同樣是不連續,但是不連續程度沒有頁式的高,顯然那沒有頁式的管理效果好。雖然段模式的內部碎...

作業系統 作業系統的概念

3 作業系統的目標和功能 作業系統用做擴充機器 計算機系統自上而下可區分為 從作業系統的角度 計算機系統的概述 在計算機中的cpu 記憶體 輸入 輸出裝置等硬體,提供了基本的計算機資源 應用程式等規定了按何種方式來使用這些資源來為使用者服務 作業系統控制和協調各使用者程式對硬體的分配和呼叫。所以作業...

作業系統IO模型

目前io模型主要經歷了以下五種 1 阻塞io 2 非阻塞io 3 io復用 select和poll 4 訊號驅動io sigio 5 非同步io aio 核心空間和使用者空間 由於作業系統都包括核心空間和使用者空間 或者說核心態和使用者態 核心空間主要存放的是核心 和資料,是供系統程序使用的空間。而...