天天看點

5-4-1IO核心子系統學習目标:學習内容:0.知識總覽1.I/O排程2.裝置保護3.假脫機技術(SPOOLing技術)4.裝置配置設定與回收5.緩沖區管理

學習目标:

IO排程和裝置保護不做重點學習,在前面學過

學習内容:

重點:

1、假脫機技術(SPOOLing技術)

2、裝置配置設定與回收

0.知識總覽

5-4-1IO核心子系統學習目标:學習内容:0.知識總覽1.I/O排程2.裝置保護3.假脫機技術(SPOOLing技術)4.裝置配置設定與回收5.緩沖區管理

注:上圖中中間三層為IO核心子系統。假脫機技術(SPOOLing技術)需要請求“磁盤裝置”的裝置獨立性軟體的服務,是以一般來說假脫機技術是在使用者層軟體實作的。但是408大綱又将假脫機技術歸為“I/o核心子系統”的功能,是以考試時還是以大綱為準。

1.I/O排程

I/O排程:用某種算法确定一個好的順序來處理各個I/O請求。

如:磁盤排程(先來先服務算法、最短尋道優先算法、SCAN算法、C-SCAN算法、LOOK算法、C-LOOK算法)。當多個磁盤I/O請求到來時,用某種排程算法确定滿足I/O請求的順序。

同理,列印機等裝置也可以用先來先服務算法、優先級算法、短作業優先等算法來确定I/O排程順序。

2.裝置保護

作業系統需要實作檔案保護功能,不同的使用者對各個檔案有不同的通路權限(如:隻讀、讀和寫等)。

在UNIX系統中,裝置被看做是一種特殊的檔案,每個裝置也會有對應的FCB。當使用者請求通路某個裝置時,系統根據FCB中記錄的資訊來判斷該使用者是否有相應的通路權限,以此實作“裝置保護”的功能。(參考“檔案保護”小節)

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

3.1脫機技術

脫機技術

——脫離主機的控制進行的輸入/輸出操作.

脫機技術即在批處理階段面對高速CPU和慢速的輸入輸出的情況下的一個技術。在外圍控制機的控制下,慢速輸入裝置的資料先被輸入到更快速的錄音帶上。之後主機可以從快速的錄音帶上讀入資料,進而緩解了速度沖突。

引入脫機技術後,緩解了CPU與慢速I/o裝置的速度沖突。另一方面,即使CPU在忙碌,也可以提前将資料輸入到錄音帶;即使慢速的輸出裝置正在忙碌,也可以提前将資料輸出到錄音帶。

3.2假脫機技術

5-4-1IO核心子系統學習目标:學習内容:0.知識總覽1.I/O排程2.裝置保護3.假脫機技術(SPOOLing技術)4.裝置配置設定與回收5.緩沖區管理
5-4-1IO核心子系統學習目标:學習内容:0.知識總覽1.I/O排程2.裝置保護3.假脫機技術(SPOOLing技術)4.裝置配置設定與回收5.緩沖區管理

4.裝置配置設定與回收

4.1裝置配置設定時應考慮的因素

4.1.1裝置的固有屬性

裝置的固有屬性可分為三種:獨占裝置、共享裝置、虛拟裝置。

獨占裝置

――一個時段隻能配置設定給一個程序(如列印機)

共享裝置

――可同時配置設定給多個程序使用(如磁盤),各程序往往是宏觀上同時共享使用裝置,而微觀上交替使用。

虛拟裝置

――采用SPOOLing技術将獨占裝置改造成虛拟的共享裝置,可同時配置設定給多個程序使用(如采用SPOOLing技術實作的共享列印機)

4.1.2裝置配置設定算法

4.1.3裝置配置設定中的安全性

從程序運作的安全性上考慮,裝置配置設定有兩種方式:

安全配置設定方式:

為程序配置設定一個裝置後就将程序阻塞,本次I/O完成後才将程序喚醒。一個時段内每個程序隻能使用一個裝置

優點

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

缺點

:對于一個程序來說,CPU和I/O裝置隻能串行工作

不安全配置設定方式

:程序發出I/O請求後,系統為其配置設定I/O裝置,程序可繼續執行,之後還可以發出新的I/O請求。隻有某個l/O請求得不到滿足時才将程序阻塞。一個程序可以同時使用多個裝置

優點

:程序的計算任務和/o任務可以并行處理,使程序迅速推進

缺點

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

4.2靜态配置設定和動态配置設定

靜态配置設定

:程序運作前為其配置設定全部所需資源,運作結束後歸還資源。破壞了“請求和保持”條件,不會發生死鎖

動态配置設定

:程序運作過程中動态申請裝置資源

4.3裝置配置設定管理中的資料結構

4.3.1裝置控制表(DCT,DeviceControlTable)

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

5-4-1IO核心子系統學習目标:學習内容:0.知識總覽1.I/O排程2.裝置保護3.假脫機技術(SPOOLing技術)4.裝置配置設定與回收5.緩沖區管理

4.3.2控制器控制表(COCT,Controller Control Table)

每個裝置控制器都會對應一張COCT。作業系統根據COCT的資訊對控制器進行操作和管理。

5-4-1IO核心子系統學習目标:學習内容:0.知識總覽1.I/O排程2.裝置保護3.假脫機技術(SPOOLing技術)4.裝置配置設定與回收5.緩沖區管理

4.3.3通道控制表(CHCT,Channel Control Table))

每個通道都會對應一張CHCT。作業系統根據CHCT的資訊對通道進行操作和管理。

5-4-1IO核心子系統學習目标:學習内容:0.知識總覽1.I/O排程2.裝置保護3.假脫機技術(SPOOLing技術)4.裝置配置設定與回收5.緩沖區管理

4.3.4系統裝置表(SDTSystem Device Table)

記錄了

系統中全部裝置

的情況,每個裝置對應一個表目。

5-4-1IO核心子系統學習目标:學習内容:0.知識總覽1.I/O排程2.裝置保護3.假脫機技術(SPOOLing技術)4.裝置配置設定與回收5.緩沖區管理

4.4裝置配置設定的步驟

4.4.1方法一

①根據程序請求的實體裝置名查找SDT(注:實體裝置名是程序請求配置設定裝置時提供的參數)

5-4-1IO核心子系統學習目标:學習内容:0.知識總覽1.I/O排程2.裝置保護3.假脫機技術(SPOOLing技術)4.裝置配置設定與回收5.緩沖區管理

②根據SDT找到DCT,若裝置忙碌則将程序PCB挂到裝置等待隊列中,不忙碌則将裝置配置設定給程序。

5-4-1IO核心子系統學習目标:學習内容:0.知識總覽1.I/O排程2.裝置保護3.假脫機技術(SPOOLing技術)4.裝置配置設定與回收5.緩沖區管理

③根據DCT找到COCT,若控制器忙碌則将程序PCB挂到控制器等待隊列中,不忙碌則将控制器配置設定給程序。

5-4-1IO核心子系統學習目标:學習内容:0.知識總覽1.I/O排程2.裝置保護3.假脫機技術(SPOOLing技術)4.裝置配置設定與回收5.緩沖區管理

④根據COCT找到CHCT,若通道忙碌則将程序PCB挂到通道等待隊列中,不忙碌則将通道配置設定給程序。

5-4-1IO核心子系統學習目标:學習内容:0.知識總覽1.I/O排程2.裝置保護3.假脫機技術(SPOOLing技術)4.裝置配置設定與回收5.緩沖區管理

⑤隻有裝置、控制器、通道三者都配置設定成功時,這次裝置配置設定才算成功,之後便可後動I/O裝置進行資料傳送

缺點

①使用者程式設計時必須使用“實體裝置名”,底層細節對使用者不透明,不友善程式設計

②若換了一個實體裝置,則程式無法運作

③若程序請求的實體裝置正在忙碌,則即使系統中還有同類型的裝置,程序也必須阻塞等待(比如我們有三台列印機,但是第一台列印機啟動後,其他兩台列印機不能被系統所使用)

改進方法

:建立邏輯裝置名與實體裝置名的映射機制,使用者程式設計時隻需提供邏輯裝置名

4.4.2方法二

①根據程序請求的邏輯裝置名查找SDT(注:使用者程式設計時提供的邏輯裝置名其實就是“裝置類型”)

②查找SDT,找到使用者程序指定類型的、并且空閑的裝置,将其配置設定給該程序。作業系統在邏輯裝置表(LUT)中新增一個表項。

5-4-1IO核心子系統學習目标:學習内容:0.知識總覽1.I/O排程2.裝置保護3.假脫機技術(SPOOLing技術)4.裝置配置設定與回收5.緩沖區管理

③根據DCT找到COCT,若控制器忙碌則将程序PCB挂到控制器等待隊列中,不忙碌則将控制器配置設定給程序。

5-4-1IO核心子系統學習目标:學習内容:0.知識總覽1.I/O排程2.裝置保護3.假脫機技術(SPOOLing技術)4.裝置配置設定與回收5.緩沖區管理

④根據COCT找到CHCT,若通道忙碌則将程序PCB挂到通道等待隊列中,不忙碌則将通道配置設定給程序。

5-4-1IO核心子系統學習目标:學習内容:0.知識總覽1.I/O排程2.裝置保護3.假脫機技術(SPOOLing技術)4.裝置配置設定與回收5.緩沖區管理

邏輯裝置表的設定問題

整個系統隻有一張LUT:各使用者所用的邏輯裝置名不允許重複,适用于單使用者作業系統

每個使用者一張LUT:不同使用者的邏輯裝置名可重複,适用于多使用者作業系統

5.緩沖區管理

繼續閱讀