計算機操作系統 作者 劉循 第8章輸入輸出設備管理_第1頁
計算機操作系統 作者 劉循 第8章輸入輸出設備管理_第2頁
計算機操作系統 作者 劉循 第8章輸入輸出設備管理_第3頁
計算機操作系統 作者 劉循 第8章輸入輸出設備管理_第4頁
計算機操作系統 作者 劉循 第8章輸入輸出設備管理_第5頁
已閱讀5頁,還剩135頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

計算機操作系統

主講:四川大學計算機學院

劉循

原版教學配套課件

第8章輸入/輸出設備管理

計算機中配備的設備分為兩類:

一類是存儲設備,如磁盤、光盤、磁帶等;

一類是輸入/輸出設備,如鍵盤、顯示器、打印機、

模數轉換器、繪圖儀以及各種數字化設備等。

在輸入/輸出設備中,輸入設備將各種信息輸

入到計算機,計算機處理結果從輸出設備輸出。

由于計算機的外圍設備種類繁多,特性各

顯,諛備管理是操作系統管理功能中最龐雜和瑣

碎的部分。

Im版

第8章輸入/輸出設備管理

設備管理的主要目標有如下:

(1)提圖系統效率

(2)為用戶或高層應用提供方便的接口

(3)支持設備共享

原版套課件

第8章輸入/輸出設備管理

本章的主要內容如下:

?輸入/輸出系統

?設備控制器

?輸入/輸出控制方式

?緩沖管理

?輸入/輸出軟件

?設備分配與回收

原版教學配套課件

8.1輸入/輸出系統

輸入/輸出設備是計算機系統結構中非常重

要的部分,要進行輸入/輸出設備管理,首先需要

知道計算機的輸入/輸出系統在計算機系統結構中

的作用。

原版教學配套課件

8.1輸入/輸出系統

1.大型計算機的輸入/輸出系統

大型計算機的組織結構主要包括三個部分:量機

(host)、通道(channel)粕設備控制單兀一

(DeviceControlUnit,DCU),如圖1所示。

?主機包括處理器、存儲控制器、主存儲器和通道

接口。

?存儲控制器位于處理器與主存儲器之間,其作用

是控制處理器與主存儲器之間的信息傳輸。

?通道位于主機與設備控制單元之間,為輸入/輸出

設備和主存儲器之間提供一個可以控制的獨立數

據傳輸路徑。

6

原版教學配奔課f

8.1輸入/輸出系統

早期的計算機系統最多支持十幾個通道,現在

的計算機系狗以支持多由000多個通道。設備

控制單元從邏輯功能上控制各種類型的輸入/輸出

設備,如磁盤、打印機和掃描儀等。為了提高設

備的應用可靠性,一個設備控制單元可以與多個

通道相連接,在設備控制單元和主存儲器之間通

過多條路徑進行信息的輸入和輸出。

為了進一步擴大計算機的規模,大型計算機

還可以通過網絡應用進行擴展。可以在通道和設

備控制單元之訶增加交換機,將一個系統連接到

多個系統,如圖8.2所示。

7

原版

8.1.1輸入/輸出系統(續)

圖&1大型計算機組織結構

8

原版教學配套課件

8.1.1輸入/輸出系統(續)

主機

其他計算機系統

圖&2通過網絡共享系統之間的設備

這樣,在計算機規模不斷擴大的情況下,系統之間

能夠相互共享硬件資源和軟件資源。

原版教學配套課件

8.1.1輸入/輸出系統(續)

2.小型計算機和微型計算機

小型計算機組織結構基于總線方式,如圖8.3所示。

圖&3小型機總線的組織結構

原版課件

8.1.1輸入/輸出系統(續)

?系統總線將計算機中的處理器、主存儲器、設備

控制器等硬件單元連接起來實現信息傳輸和處理。

?基于總線的組織結構的優點是形式簡單,實現方

便,性能可靠,在小型機之后出現的微型計算機也

采用了總線結構形式。

?在總線結構中,總線的時鐘頻率、帶寬和傳送速

率等指標是影響計算機性能的關鍵。

?為了提高計算機性能,各種不同類型的總線先后

出現。

11

原版教學配套課件

8.1.1輸入/輸出系統(續)

?1984年推出的工業標準結構ISA(Industry

StandardArchitecture)總線,其帶寬為2Mb/s,

適用于處理器為80286的計算機。

?1988年推出的擴展工業標準結構EISA(Expansion

IndustryStandardArchitecture)總線,帶寬可

以達到32Mb/s,適用于處理器為80386類的計算機。

?1990年,為了適應多媒體、高質量圖形處理技術和

網絡應用,推出了適合處理器為80486類計算機的

VESA(VideoElectronicStandardAssociation)

總線,帶寬增加到132Mb/s。

?1992年,隨著Pentium系歹(JCPU的出現,單總線結構

已經不能滿足系統性能要求,推出了的具有全局總

線和局部總線的PCI總線,如圖8.4所示。

12

原版

8.1.1輸入/輸出系統(續)

圖&4通用計算機組織結構

原版教學配套課件

8.1.1輸入/輸出系統(續)

?PCI總線的特點是能夠支持64位系統,在CPU和外

設之間增加了數據協調和數據緩沖的標準接口,

放大了線路的驅動能力、PCI能夠支持多達10余種

外圍設備。

,除了巴I總線外,系統中還有局部總線、內存總線、

高速緩存總線、擴展總線(expansionbus)、

FireWire總線、USB總線、IDE總線和SC”(Small

ComputerSystemInterface)總線,這些總線擴

展系統的各個部分,實現系統內的快速通信。

?擴展總線繼承了過去EISA總線的性質,能夠與原

來的設備相兼容。

14

原版

8.1.1輸入/輸出系統(續)

?FireWire總線遵循IEEE1394標準,是位串行總線,

帶寬可以達到50MB/S,可用于將數碼照相機等各種

數字設備連接到PCI總線上。

?USB總線和IDE總線、SCSI總線用于實現外圍設備與

系統的連接。USB總線是一種集中式總線,所有的

USB設備可以共享一個USB設備驅動程序。只要有

USB驅動程序,任何新的USB設備不需要再安裝驅動

程序,非常方便。IDE總線是磁盤控制器接口總

線,遵循Pentium系統的硬盤標準。SCSI總線用在

高速硬盤、掃描儀以及需要較大帶寬的設備上,其

帶寬通常可以達到160MB/S。

?PentiumCPU系統除了在芯片上有一級高速緩存

外,芯片外還有較大的通過高速緩存總線與CPU相

連的二級高速緩存。兩級高速緩存的存在,使得

CPU的處理速度更快。-

原版教學配奔課f

8.1.2輸入/輸出設備

輸入設備用于將各種外部設備的信息送入到

計算機,常用的輸入設備有鍵盤、鼠標、光閱讀

器、光筆、電傳輸入器、掃描儀、各種數字聲頻

和視頻設備、數字化儀器、模數轉換器等。輸出

設備用于將計算機內存中已經處理好的信息輸出

到外部設備中,常用的輸出設備有顯示屏幕、打

印機、繪圖儀、數模轉換器等。有些設備同時具

有輸入和輸出功能,既能輸入信息到計算機,又

能接收計算機傳送來的信息,如觸摸屏、調制解

調器、網卡等。

計算機輸入/輸出設備的種類和數量非常

多,按照應用和速度等的不同有不同的分類。

16

原版

8.1.2輸入/輸出設備

1.按照輸入/輸出設備的傳輸率分類

■低速設備

、指傳輸率為每秒幾個字節到幾百個字節的設

備,常見的低速設備有鍵盤和打印機。

■中速設備

指傳輸率為每秒幾千個字節至幾萬個字節的

設備,常見的中速設備有磁盤和監視器。

.高速設備

指傳輸率為每秒幾百K個字節到幾M字節的設備,

如網卡和調制解調器等。

原版教學配套課件

8.1.2輸入/輸出設備(續)

2.按照設備的數據組織形式分類

?字符設備

數據組織形式的基本單位為字符的設備是

字符設備。字符設備以字符方式進行數據的輸入

和輸出,如交互式終端、打印機等。字符設備的

基本特征是傳輸率較低,不可尋址,常采用中斷

驅動方式進行輸入/輸出。

?塊設備

數據組織形式中的基本單位為數據塊的設

備是塊設備。塊設備以數據塊的方式進行數據的

輸入和輸出,如:磁盤。磁盤中每個盤塊的大小

在512B?4KB之間,傳輸速率較高,可尋址,采用

6MA方式進行輸入和輸由o

18

原版

8.1.2輸入/輸出設備(續)

3.按照設備的共享屬性分類

?獨占設備

指在一段時間內只允許一個用戶或一個進程訪

問的設備,即需要互斥訪問的設備。

.共享設備

八指在一段時間內允許多個進程同時訪問的設

備。共享設備必須是可尋址的和可隨機訪問的設

備。典型的共享設備是磁盤。

?虛擬設備

指通過虛擬技術將一臺獨占設備變換為若干

臺邏輯設備,供若干個用戶或進程并發使用。如

打印機是獨占設備,通過虛擬技術之后,打印機

成為虛擬設備,多個用戶或進程可以并發共享一

臺打印機。

19

原版

8.1.3設備管理的功能

(1)對設備的控制

設備控制器負責將用戶的輸入/輸出請求轉

換為每個設備能夠識別的輸入/輸出指令,并實施

設備驅動和中斷處理工作。

(2)對設備狀態進行跟蹤和分配

要控制和分配設備,系統必須了解設備的狀

態及相關信息。因此,要求設備管理能夠快速跟

蹤設備的狀態,并將設備狀態信息保留在設備控

制表中O

操作系統能夠根據作業或進程的請求而分配

設備,并在作業或進程使用設備結束后回收設

備,重新分配。

(3)實現虛擬設備

為了實現多進程并發對獨占設備的需求,設

備管理實現了虛擬設備功能,將一臺獨占的物理

上幾人z土生小人、皿在國上幾々rI工?么上461*」人"入、心工口

8.1.3設備管理的功能

(1)對設備的控制

設備控制器負責將用戶的輸入/輸出請求轉

換為每個設備能夠識別的輸入/輸出指令,并實施

設備驅動和中斷處理工作。

(2)對設備狀態進行跟蹤和分配

要控制和分配設備,系統必須了解設備的狀

態及相關信息。因此,要求設備管理能夠快速跟

蹤設備的狀態,并將設備狀態信息保留在設備控

制表中。

操作系統能夠根據作業或進程的請求而分配

設備,并在作業或進程使用設備結束后回收設

備,重新分配。

21

原版

8.1.3設備管理的功能

(3)實現虛擬設備

為了實現多進程并發對獨占設備的需求,設

備管理實現了虛擬設備功能,將一臺獨占的物理

設備變為多個邏輯設備,從而能夠接收多個進程

對設備的請求。

(4)緩沖管理

為了實現低速的輸入/輸出設備與高速處理

器之間的協調工作,設備管理在計算機內存中開

辟了一段存儲區,緩沖管理是設備管理的功能之

22

原版

8.2設備控制器

?為了便于設計和計算機實現,通常將輸入/輸出設

備分為機械部分和電子部分。

?機械部分為通常意義上的輸入/輸出設備本身的硬

件組成和結構,如打印機、掃描儀等,

?電子部分為設備控制器。輸入/輸出設備通過設備

控制器進入計算機系統,操作系統通過設備控制

器管理設備。

23

原版

8.2.1設備控制器及其主要功能

?設備控制器是一個以電路板形式出現的硬件設

施,用于完成設備與主機之間的連接和通信。不

同的設備需要用不同的設備控制器。

?在個人計算機和小型計算機中,設備控制器是一

塊可以插入主板擴展槽的印刷電路板,也稱為適

配器。今天,大多數常用的設備控制器被集成在

主板上。

?在大型計算機系統中,設備控制器是專門的模

塊,可以與主板一樣,插入計算機主機箱中,也

可以單獨插入外圍機箱中。

24

原版教學配奔課f

8.2.1設備控制器及其主要功能(續)

設備控制器通過若干數據寄存器與處理器通

信,接收從處理器發來的命令,代替處理器完成

對設備的控制,使得處理器和輸入/輸出操作可以

并行進行。

設備控制器的主要功能如下:

?接收和識別處理器命令

設備控制器具有命令寄存器和譯碼器,將處

理器的命令接收到命令寄存器中并對命令進行譯

碼。

?設備控制

根據接收和譯碼后的處理器命令對設備采取相應

的控制。

25

原版套課件

8.2.1設備控制器及其主要功能(續)

?數據交換

實現處理器與設備控制器之間、設備控制器與設

備之間的數據交換。

?識別設備地址

系統中的每一個設備都有一個地址,設備控制器

能夠識別所控制設備的地址。

?了解和報告設備的狀態

設備控制器中的控制/狀態寄存器能夠存儲接

收到的設備狀態信息,并將信息上傳給處理器。

26

原版教學配奔課f

8.2.2設備控制器的組成

設備控制器實現了處理器與設備之間的數據、

控制和地址信息等信息的傳輸。

設備控制器的組成如圖8.5所示,設備控制器由控

制/狀態寄存器、數據寄存器、與處理機接口、與

設備接口等構成。

控制/狀態控制器與態

<-------------?——?

寄存器設備接口制

—設備控制器

CPU與設備I/O

數據線u|???

控制器接口數據寄存器邏輯與設備接口

地址線二J

____數據

----------------------------A控制器與

控制線<------A<——狀態

----------------------------A設備接口----?捽制

27

圖&5設備控制器組成

原版課件

8.2.2設備控制器的組成(續)

?設備控制器中有多個數據寄存器,用于存放從輸

入設備傳送來的輸入數據,或從處理器送來的輸

出數據。

?每當處理器要啟動一個設備時,一方面將啟動命令

發送給設備控制器;另一方面又同時通過地址線

把地址發送給設備控制器,由設備控制器的輸入/

輸出邏輯對收到的地址進行譯碼,再根據所譯碼的

命令對所選設備進行控制。

?操作系統將命令寫入設備控制器的接口寄存器

中,并從接口寄存器讀取狀態信息。

如IBMPC的磁盤控制器可接收的命令有

fformat>read、write、seek等15條命令,這些

命令被送入磁盤控制器的寄存器中。

28

原版

8.2.2設備控制器的組成(續)

?當設備控制器接收一條命令后,可獨立于處理器

完成指定操作,處理器可以并行執行其它運算。

命令完成時,設備控制器產生一個中斷,處理器

響應中斷。

?處理器通過讀設備控制器中寄存器的信息,獲得

操作結果和設備狀態。

?在設備控制器中,輸入/輸出邏輯用于實現對設備

的控制。通過一組控制線與處理機交互,處理機

利用該邏輯向設備控制器發送輸入/輸出指令;輸

入/輸出邏輯對收到的指令進行譯碼。

?每當處理器要啟動一個設備時,一方面將啟動指

令發送給控制器;另一方面又同時通過地址線把

地址發送給控制器,由控制器的輸入/輸出邏輯對

收到的地址進行譯碼,再根據所譯碼的指令對所

選設備進行控制。

原版教學配套課件

8.2.2設備控制器的組成(續)

?一個設備控制器接口連接一臺設備,一臺設備控制器

有多個接口,可以連接多個設備。

?在設備控制器與設備的接口中存在數據、控制和狀態

三種類型的信號。設備控制器與設備之間的接口通常

是低級的字符接口,設備控制器將字符數據封裝成數

據塊,以更大的數據格式傳送到計算機的內存。

例如磁盤設備,按照每個磁道8扇區,每個扇區

512個字節對其進行格式化,從磁盤控制器到磁盤的

數據是一連串的字符誦,售串字簧流用一個頭標

(preamble)開始,之后是一個扇區的40§6位

(512X8),最后是錯誤檢查校驗碼(Error-C-C,

ECOo頭標在磁盤格式化時寫上,包括柱面、扇區

數、扇區大小等數據。磁盤控制器的任務是把串行的

字符位流轉換為數據字節塊,并對其進行必要的錯誤

修正。30

原版

8.2.2設備控制器的組成(續)

?輸入/輸出指令的形式與輸入/輸出地址是相互關

聯的。在編址方式上存在有內存映像編址和輸入/

輸出獨立編址兩種形式。

?內存映像編址分配將給系統所有端口的地址空間

和內存的地址空間進行統一地編址。主機把輸入/

輸出端口看作一個存儲單元,對輸入/輸出設備的

讀寫操作等同于對存儲器的操作。

原版套課件

8.2.2設備控制器的組成(續)

?統一編址的優點是不需要專門的輸入/輸出指令,

對存儲器操作的指令可用于對輸入/輸出端口的操

作,輸入/輸出端口可占有較大的地址空間。缺點

是對輸入/輸出端口操作的指令需要占用內存空間。

?輸入/輸出獨立編址為系統中所有端口獨立分配地

址空間,與內存的地址空間沒有關系,主機使用

專門的輸入/輸出指令對端口進行操作。

獨立編址的優點是外部設備不占用內存的地址

空間,在程序設計時,容易區分是對內存操作還

是對輸入/輸出端口操作。缺點是對輸入/輸出端

口操作的指令類型少,操作不靈活。Intel

8086/8088,分配給輸入/輸出端口的地址空間為

64K,即:0000H?0FFFFH,只能用IN和OUT指令對

其進行讀寫操作。

32

原版

8.3輸入/輸出控制方式

處理器通過設備控制器控制輸入/輸出設備,

設備控制器的智能化程度高低,需要通過輸入/輸

出控制方式表現出來,設備控制器智能化程度的

高低直接決定了設備控制器能夠承擔的設備管理

能力。

輸入/輸出控制方式有:輪流測試-

(polling)、中斷(interrupts)、直接存儲器

訪問(DMA)和逋道(channel)。

33

原版

8.3.1輪流測試(polling)

?輪流測試方式只在早期的計算機系統中采用,設

備控制器接收處理器命令并控制輸入/輸出設備工

作。

?處蓑器和設備控制器之間的交互借助于設備控制

器中的控刷/狀態寄存器進行。如果控制/狀態寄

存器中的值為'T,表示設含控制器〃閑〃,可以接

受處理器的指令;如果控制/狀態寄存器中的值為

”0〃,則表示設備控制器處于〃忙一不能接受處理

器的指令。

?輪流測試蕤指處理器以循環方式不斷測試設備控

制器的控制/狀態寄存器中的忙閑標志,其工作過

程如下:

34

原版

8.3.1輪流測試(polling)(續)

(1)如果處理器運行的現有程序需要從輸入/輸出

設備輸入一批數據,處理器檢測設備控制器的控

制/狀態寄存器值是否為1,為1表示此時設備控制

器可以接收處理器的指令;否則處理器一直檢測

該值,直到為〃1〃為止。

(2)設備控制器中的狀態標志為〃閑〃,則處理器向

設備控制器發出需要〃讀〃數據指令,給出輸入數

免在主存電的起始地址;同時,設置設備控制器

審的狀態標志為〃忙〃。

(3)設備控制器控制輸入/輸出設備完成數據從輸

入設備到設備控制器的數據寄存器,如果完成則

設蕃捶制器蹲狀態〃忙〃琮志設置為〃閑〃。

35

原版教學配奔課f

8.3.1輪流測試(polling)(續)

(4)在這個輸入過程中處理器一直在輪流檢測設備

控制器的狀態寄存器字節是否為''忙〃。如果為

〃忙一表示沒有完成,處理器需要等待;如果為

〃閑、則表示已經完成。此時輸入數據已經到數

據寄存器中。

(5)處理器而數據寄存器中的數據讀入處理器或主

存單元。

36

原版套課件

8.3.1輪流測試(polling)(續)

?從數據輸入過程可知,測試非常必要。

如果處理器不測試,處理器無法知道數據是否

已經準備好;如果處理器不測試,設備控制器中

數據寄存器可能會溢出,導致輸入數據丟失。

?在輪流測試方式中,一旦處理器啟動了輸入/輸出

設備,處理器便一直測試輸入/輸出設備的準備情

況,中止了處理器原有程序的執行,浪費了時間。

?數據從設備控制器的數據寄存器到內存的過程需

要處理器參與,處理器的原執行程序不能繼續執

行。在輪流測試方式下,處理器和輸入/輸出設備

不能并行工作,處理器不能充分發揮效率,計算

機系統的效率非常低。

37

原版套課件

8.3.2中斷方式(interrupts)

?提高處理器的效率,需要處理器與輸入/輸出設備

并行工作,中斷技術的出現,正是滿足了并行工

作的需求。

?中斷是一斜硬件技術,每個中斷都有不同的中斷

標志和中斷級別,處理器可以區分不同的中斷,

并決定是否接收中斷。

?中斷輸入/輸出控制的機理為:

在處理器和設備控制器之間增加了中斷請求

線,每當處理器的指令周期結束后,處理器中斷

現有程序的執行去檢測是否有設備控制器發來的

中斷請求信號。如果沒有,處理器繼續執行現有

程序。如果有,則處理器暫停現有程序執行,保

存當前的指令指針和正在處理程序的斷點信息,

并轉向中斷處理。保存斷點信息的目的是中斷恢

復后處理器能夠繼續執行程序。38

原套課

8.3.2中斷方式(interrupts)

?中斷控制方式與輪流測試方式的不同在于:

中斷控制方式是處理器主動接收設備控制器

的中斷請求,而輪流測試方式是處理器被動測試

設備控制器的忙閑標志,因此,中斷控制方式使

得處理器能夠和輸入/輸出設備的操作并行執行,

處理器有更多的時間來運行程序。

39

8.3.2中斷方式(interrupts)(續)

?處理器作中斷處理,完成將設備控制器中的數據

輸入到內存或將輸出數據從內存送出到設備控制

器的過程。在該輸入/輸出過程完成后,處理器回

到原來的斷點繼續運行原有程序。這樣,處理器

運行程序和設備控制器向設備輸出數據或從設備

輸入數據到設備控制器的過程并行運行,提高了

系統的運行效率。

?/斷方式使得處扇器處于主動地位,設備控制器

發出請求中斷信號,處理器可以接收中斷信號,

也可以屏蔽中斷信號。如果處理器有更重要的計

算任務需要處理,可以屏蔽中斷,不接收中斷請

求O

。個人計算機的部分設備控制器的輸入/輸出地

址、硬件中斷號和中斷向量號如圖8.6所示。

40

原版教學配套課件

8.3.2中斷方式(interrupts)(續)

?個人計算機的部分設備控制器的輸入/輸出地址、

磺律用斷號和用哧向量號如鹵8.6所小。

設備控制器輸入/輸出地址硬件中斷號中斷向量號

時鐘控制器040?04308

鍵盤控制器060?06319

COM2控制器2F8?2FF311

COMi控制器3F8?3FF412

軟盤控制器3F0?3F7614

LPTi控制器378?37F715

硬盤控制器1F0?1F71413

圖&6個人計算機的部分設備控制器信息

原版教學配套課件

8.3.2中斷方式(interrupts)(續)

雖然中斷控制方式比輪流測試方式能夠更好

地發揮處理器的效率,系統性能更高。

但是,中斷方式的缺點是:如果計算機系統有較

多的輸入/輸出設備,則處理器處理中斷的頻率

增高,從而影響了系統性能。

42

原版套課件

8.3.3直接存儲器訪問(DMA)方式

直接存儲器訪問方式是在內存和輸入/輸出設備

之間設置一條數據通路,讓內存和輸入/輸出設備之

間的數據交換在DMA控制器的控制下進行,不需要

處理器的干預,DMA方式如圖8.7所示。

原版教學配套課件

8.3.3直接存儲器訪問(DMA)方式(續)

DMA控制器由內存地址寄存器(MAR)、數據

寄存器(DR)、命令/狀態寄存器(CR)、數據計

數器(DC)以及中斷和控制邏輯等構成,如圖8.8

所示。

數據寄存器DR與設備的接口

I/控O

內存地址寄存器MAR

命令/狀態寄存器CR

數據計數器DC與設備的接口

44

圖8.8DMA控制器組成

原版課件

8.3.3直接存儲器訪問(DMA)方式(續)

DMA控制器各構成單元的功能如下:

?內存地址寄存器用于存放內存和輸入/輸出設備之

間交寂的數據茬內存事雨地址;

?數據寄存器用于匹配內存與輸入/輸出設備之間的

數據傳輸。內存和DMA之間數據的傳輸以塊為

單位,輸入/輸出設備與DMA之間數據傳輸以字為

單位,兩者之間傳送的速度不匹配會造成數據丟

失。因此,數據寄存器起到中間暫存數年的作

用,使得兩者傳輸數據相匹配;?命令/狀態

寄存器用于接收從處理器發來的輸入/輸出命令及

設備的狀態信息;

?數據計數器用于對傳輸數據進行計數;

45

原版

8.3.3直接存儲器訪問(DMA)方式(續)

?輸入/輸出控制邏輯用于向處理器提出輸入/輸出

中斷請求并保存處理器發來的輸入/輸出命令,控

制DMA的傳送過程。

當輸入設備有數據要傳送到內存時,輸入設

備的設備控制器向DMA控制器發送DMA請求信號,

DMA控制器獲取內存總線控制并給出內存地址,將

DMA應答信號發回給設備控制器,設備控制器接收

至UDMA應答信號后,清除DMA請求信號,傳送數據

到內存。當整個數據傳送完成后,DMA控制器向處

理器發中斷信號,表示數據已經傳到內存。

46

原版

8.3.3直接存儲器訪問(DMA)方式(續)

?雖然,DMA控制器和處理器都可以訪問內存,但

是,需要互斥訪問內存。

?通常的情況是,處理器把一個存取周期時間讓給

DMA控制器占有內存總線,讓WA控制器控制設備

控制器直接傳輸數據到內存。

?每次DMA傳送數據時,不必進入中斷系統,即不必

通知處理器,處理器可以繼續運算,這樣提高了

處理器的利用率。

原版

8.3.3直接存儲器訪問(DMA)方式(續)

例如,磁盤讀數據時,如果不用DMA方式,磁

盤控制器從磁盤以串行方式讀數據位,當整塊數

據放入磁盤控制器數據寄存器后,向處理器發出

中斷,處理器校驗計算核實磁盤控制器中的數據

沒有產生讀錯誤后,處理器控制將數據從磁盤控

制器的寄存器傳到內存中。

如果磁盤讀數據采用DMA方式,DMA控制器接

管地址線的控制權,確定數據塊送往內存的起始

地址和傳送的字節數,DMA控制器控制磁盤控制器

中數據寄存器的數據傳送到內存。從而使磁盤控

制器與內存之間的數據傳送不需要處理器介入。

48

原版

8.3.3直接存儲器訪問(DMA)方式(續)

目前,微機、小型機中都采用了DMA方式。一

次輸入/輸出指令,DMA傳送一個數據塊到內存。

如果需要傳送多人數據塊到不同的內存區,則系

統需要發送多人指令,從而使得DMA方式的實現代

價高并容易發生內存地址沖突。

49

原版套課件

8.3.4通道(channel)方式

1.通道概念

在中斷或DMA方式下,每次只有一個程序被加

載到內存中。然而,在多處理器環境下或多進程

并發環境下,需要在同一時間內往內存中加載多

個程序時,則不能使用中斷或DMA方式,這時需要

利用通道方式。

通道是一種與處理器獨立的輸入/輸出處理

器,用于代替處理器實現外部設備的輸入/輸出操

作和管理,實現外部設備與處理器的并行操作。

采用通道后計算機系統可以實現三級并行:

通道與處理器并行執行,通道與通道之間并行操

作,不同通道上的外圍設備并行操作。因此,通

道使得系統的并行工作能力大大提高。

5()

8.3.4通道(channel)方式

2.通道類型

按照信息交換方式和設備連接方式的不同,

通道分為字節多路通道、數組選擇通道、數組多

路通道。

?字節多路通道(bytemultiplexorchannal)

連接設備控制器的每個子通道,以字節為單

位,分時共享方式傳輸數據。硬件轉移控制一個

子通道傳送一個字節的數據后,轉移到另一個子

厚道再傳送一個字節的數據。最后,徐過通道的

簧據為京有子通道數據的季節薪,如圖8.9所小。

51

原版教學配套課件

8.3.4通道(channel)方式(續)

子通道

A[A?A3,??

BiB2B3

AiBiCiDiA2B2C2-??

GC2c3…

以字節為單位

可以多臺

設備并發DiD2D3

圖8.9字節多路通道

52

原版教學配套課件

8.3.4通道(channel)方式(續)

字節多路通道主要連接以字節為單位的低速設

備,如打印機等設備。

雖然字節多路通道可以連接多路輸入/輸出設備,

但是,一次只能傳送一個字節的數據,所有的輸入/

輸出設備形成分時傳輸。因此,通道利用率低,輸入、

輸出的效率不高。

53

原版教學配套課件

8.3.4通道(channel)方式(續)

?數組選擇通道(blockselectorchannal)

與字節多路通道每個子通道每次傳送一個字節不同,

數組選擇通道每個子通道以一組數據為單位,一個子

通道將一組數據傳輸完后,另一個子通道才能傳輸數

據。對一個子通道而言,傳送效率更高。

與字節多路通道允許在一段時間內多個子通道傳輸并

發不同,數組選擇通道在一段時間內只能執行一個通

道程序,只允許一臺設備進行數據傳輸,如圖8.10所

示。當一臺設備數據傳輸完成后,再選擇另一個子通

道的設備進行數據傳輸。

54

原版教學配套課件

8.3.4通道(channel)方式(續)

一臺設備傳送完成一、子通道4

才能傳送下一臺—設備控制器

圖8.10數組選擇通道

數組選擇通道主要用于連接磁盤,磁帶等高速輸入/輸

出設備。

因止亡數組選擇通道比字節多路通道每次傳送的數

據量更大,對使用的通道可以自由選擇確定,而不是

通過硬件轉移實現。”

原版教學配套課件

8.3.4通道(channel)方式(續)

?數組多路通道

數組多路通道結合了數組選擇通道傳送速度高和

字節多路通道能進行分時并發傳送多個設備數據的優

點。一臺設備執行一條通道指令,一次輸送一批數

據,多勺通道程序并發,通道之間自動轉接。如圖

8.11所示。

子通道1

設備控制器

o

數組選擇通州/子通道2

—OWO子通道3

一批數據傳送

可以多臺子通道4

設備控制器

設備并發

圖&11數組多路通道

原版課件

8.3.4通道(channel)方式(續)

數組多路通道主要用于連接高速設備。如連

接多臺磁盤機的數組多路通道,可以啟動多臺磁

盤機同時執行移臂定位操作,按序交叉地傳輸多

批數據。

數4多路通道優點既具有很高的數據傳輸速

率,又能獲得令人滿意的通道利用率。

57

原版教學配套課件

8.3.4通道(channel)方式(續)

3.通道的工作過程

從本質上講,通道本身具有處理程序的能

力,是一種功能簡單的處理機。

通道中的運算控制部件有:用于記錄通道程

序在內存地址的通道地址字CAW、用于保存正在執

行的通道指令的通道命令字CCW、用于存放通道執

行后返回結果的通道狀態字CSW、用于存放傳輸數

據的通道數據字CDW。

通道有專門的通道指令,這些指令可以完成

空操作、讀操作、寫操作、控制、轉移操作,用

這些指令可以編寫通道程序,并在通道中執行程

序。命令格式一般包括操作碼、數據傳輸內存地

址、特征位、計數器。

58

原版教學配奔課f

8.3.4通道(channel)方式(續)

通道輸入/輸出的工作過程如下:

(1)當處理器執行用戶程序中遇到輸入/輸出請求

時,根據請求生成通道程序放入內存(也可事先

編好放入內存),并將該通道程序的首地址放入

通道的CAW中。

(2)處理器執行〃啟動輸入/輸出〃指令,并啟動通

道工作。當通道接收到"啟動輸入/輸出〃指令后,

從通道的CAW中取出通道程序的首地址,根據首地

址取出第一條指令放入通道的CCW中,并向處理器

發應答信號。此時處理器可繼續執行其他程序,

而通道則開始執行通道程序。

(3)通道程序完成輸入/輸出,啟動輸入/輸出設

備,執行完成。

(4)如果還有下一條指令,則繼續執行,否則輸入

/輸出完成。59

原版教學配套課件

8.3.4通道(channel)方式(續)

(5)當通道傳輸完最后一條指令時,向處理器發輸

入/輸出中斷,通道停止工作。

(6)處理器接收中斷信號,從通道的CSW中取得有

關信息,決定下一步做什么。

4.具有通道的計算機系統

在計算機系統中,一個處理器可以連接若干

個通道,一個通道可以連接若干個設備控制器,

一個設備控制器可以連接若干個設備。

處理器通過執行輸入、輸出指令實現對通道

的控制,通道通過執行通道指令實現對設備控制

器的控制,設備控制器發出讀寫和管理操作實施

對設備的控制和完成輸入、輸出。

60

原版套課件

8.3.4通道(channel)方式(續)

在一般的主機系統中,單通道輸入/輸出的可靠性不

高,為了增加系統的可靠性,可采用多通道,并在通道和

61

圖&12交叉連接的系統

心版覆用配套探1V

8.3.4通道(channel)方式(續)

IBM390是一個大型計算機系統,該系統采用復

合結構,主存儲器與處理器組件之間、擴展存儲器

與處理器組件之間單獨連接。但是,與一般系統不

同的是,該計算機系統的輸入/輸出系統采用的是通

道子系統,如圖8.13所示。

在IBM390系統中,通道路徑可以分為并行通道

路徑和串行通道路徑,右邊部分為串行通道路徑,

左邊部分則為并發通道路徑,分別連接不同速度的

輸入/輸出設備。

62

原版教學配套課件

8.3.4通道(channel)方式(續)

企業系統連接

導向結構

控制控制控制

單元單元單元

設備設備設備

圖&13IBM390系統

63

原版教學配套課件

8.4緩沖管理

在現實中,凡是實體相互之間存在達到與離

開速度不匹配情況時,人們都喜歡采取緩沖技術。

例如,公共汽車站,乘客到達的速度與汽車離開

的速度不匹配,用公共汽車站作為緩沖,解決人

們的乘車問題。

在計算機系統中,為了解決各種速度不匹配

問題,引入了硬緩沖和軟緩沖兩種方式。硬緩沖

由硬件實現緩沖,主要用于各種設備,如設備控

制器中設置的數字寄存器就是一種硬件緩沖。軟

緩沖是計算機內存中開辟的一個存儲區。本節的

凝沖管理進述的是軟緩沖,為了方便,直接將軟

緩沖稱為緩沖。

64

原版

8.4.1緩沖的引入

引入緩沖有如下目的:

(1)緩和處理器和輸入/輸出設備速度不匹配的矛盾

輸入/輸出設備將處理器需要的數據傳輸到內

存,處理器再從內存將數據取走。由于處理器的處

理速度遠遠高于輸入/輸出設備的傳輸速度,處理

器與輸入/輸出設備在速度上的不匹配,導致了處

理器等待輸入/輸出設備操作,影響了處理器的處

理能力,降低了計算機系統的效率。

(2)提高輸入/輸出設備與處理器的并行性

低速的輸入/輸出設備很難與高速的處理器并

行工作,只能相互等待對方操作結束,這減低了系

統的并行能力。設置緩沖,能夠避免處理器等待低

速輸入/輸出設備,使得處理器處理與輸入/輸出操

作可以并行進行,提高了系統的并行能力。

65

原版教學配套課

8.4.1緩沖的引入(續)

(3)減少輸入/輸出對處理器的中斷次數、放寬處

理器對中斷的響應時間

如果輸入/輸出設備,特別是字符設備,每產

生一個字符就要求處理器處理一個中斷,會影響

處理器的工作效率。如果設置了緩沖區,則輸入/

輸出設備產生的字符將存放在緩沖中,等存放到

一定數量,才請求處理器中斷。因此,采用緩

沖,可以減少輸入/輸出設備的中斷次數,放寬處

理器對中斷的響應時間,提高了處理器的處理能

力。

可見,引入緩沖可以顯著地提高處理器與輸

入/輸出設備并行工作的能力,提高處理器的處理

能力,提高系統的吞吐量,提高設備的利用率。

66

原版

8.4.2單緩沖區

一單緩沖區是操作系統提供的最簡單的一種

緩沖形疝,如畫8.14所示。

系統內存

圖&14單緩沖區

67

原版教學配套課件

8.4.2單緩沖區

?每當一個用戶進程發出一個輸入/輸出請求時,

操作系統便在主存中為之分配一個緩沖區。

?對于單緩沖區下的字符設備,單緩沖區從設備接

收每個輸入字符,并將輸入字符封裝成一行數據。

?在設備輸入一行數據到緩沖區期間,用戶進程阻

塞等待。當輸入一行數據結束后,用戶進程被喚

醒并從緩沖區取走數據。

?在用戶進程阻塞等待緩沖區數據期間,處理器會

執行其他的程序。

?處理器的運行與設備輸入字符到緩沖區的操作可

以并行進行。在用戶進程輸出數據時,用戶進程

將數據放入緩沖區后繼續運行,輸出設備從緩沖

區中將數據逐步輸出。輸出設備輸出數據期間,

處理器并行工作。.

原版教學配奔課f

8.4.2單緩沖區(續)

?對于單緩沖區下的塊設備,如磁盤,磁盤將一塊

數據輸入到緩沖區,再由操作系統將緩沖區中的

數據傳送到用戶區。

如果設備與緩沖區之間傳輸數據所花的時間

為3操作系統在緩沖區與用戶區之間傳輸數據

所花的時間為心處理器處理這批數據所花的時

間為勿則系統對舁三次到超的處理匣固為

max(t,t)+t或如果沒有緩沖區,數據直接進

入用戶區,則素統的處理時間為(方+%)。

?可見,無論是字符設備還是塊設備,在單緩沖區

情況下,輸入/輸出操作可以和處理器并行進行。

但是,由于緩沖區是臨界資源,當輸入/輸出設

備訪問緩沖區時,操作系統不能訪問緩沖區,不

能從緩沖區取走或放入數據。操作系統和輸入/

輸出設備必須互斥訪問緩沖區,從而使得系統的

并行能力不高。

原版套課

8.4.3雙緩沖區

為了提高輸入/輸出設備的速度效率,提高

系統的并行能力,在內存中還可以開辟雙緩沖

區。雙暮沖區是指操作系統為一個用戶進程分

配兩個緩沖區,如圖8.15所示的緩沖區1和緩沖

區2。雙緩沖區也稱為緩沖交換。

系統內存

圖&15雙緩沖區

原版£課件

8.4.3雙緩沖區

?在輸入數據時,首先輸入設備將數據輸入緩沖區

L在緩沖區1裝滿后再輸入緩沖區2。

?如果緩沖區1已經被輸入數據裝滿,在操作系統將

緩沖區1中的數據取到用戶區期間,緩沖區2可以

接收輸入數據。

,如果緩沖區2已經被輸入數據裝滿,在操作系統將

緩沖區2中的數據取到用戶區期間,緩沖區1可以

接收輸入數據。

?緩沖區1和緩沖區2交替使用,只要緩沖區中的數

據輸入到用戶區后,處理器就可執行用戶進程。

?處理器執行用戶進程、操作系統將數據從緩沖區

傳送到用戶區、設備輸入數據到緩沖區,三個過

程一起并行進行。

71

原版

8.4.3雙緩沖區(續)

在雙緩沖區情況下,如果從設備到緩沖區之

間傳輸數據所花的時間為方,處理器處理數據所花

的時間為G,操作系統將數據從緩沖傳送到內存

所花的時間為%則系統對數據的處理時間為

max(t,t)。由于力小于方,所以,max(t,

方)。番方<%的借況下,處理器

不必等待輸入設備輸入數據;在方〉£的情況下,

輸入設備可以連續輸入數據塊。

72

原版教學配套課件

8.4.3雙緩沖區(續)

?在數據輸出時,首先操作系統將數據從用戶區傳

送到緩沖區1,當緩沖區1裝滿后,再裝緩沖區2。

在裝緩沖區2期間,緩沖區1中的數據可以輸出到

設備。同樣,在裝緩沖區1期間,緩沖區2中的數

據可以輸出到設備。緩沖區1和緩沖區2交替使用。

?處理器執行用戶進程、操作系統將數據從用戶區

傳送到緩沖區、設備從緩沖區輸出數據,三個過

程一起并行進行。

73

原版

8.4.3雙緩沖區(續)

如果處理器處理數據的時間為輸出設備輸

出數據的時間為九在方的情況卞,處理器不必

等待輸出設備輸出數據;桂方〉J的情況下,輸出設

備可以輸出數據塊。

如果沒有緩沖區,直接將數據在設備與用戶

區之間傳輸,由于用戶區是臨界資源,設備和處理

器不能同時訪問,所以,處理器使用用戶區期間,

設備不能使用。因此,傳輸兩批數據所花的時間為

23處理器處理的時間為2%則系統處理一批數據

時間為方+tp。〃

處理時間減少(方+方0-max區,方))。米用雙緩沖

區比不用緩沖區,系統的處域寸間減為:如果處理

器處理數據的時間%大于將數據從緩沖區到設備之

間的時間3則為方;如果處理器處理數據的時間方夕

小于將數據從緩沖區到設備之間的時間,則為

原版教學配套課件

8.4.3雙緩沖區(續)

?雙緩沖區也可以用于輸入設備和輸出設備同時工

作。

°例如,一個設備輸入,一個設備輸出,滿足

一個進程既需要輸入,又需要輸出數據的情況。

例如,一個進程需要從磁帶輸入數據并從打印機

輸出數據。當進程請求緩沖之后,操作系統為之

分配了雙緩沖區,一個緩沖區用于從磁帶輸入數

據,一人緩沖區用于打印機輸出數據。當用戶進

程從磁帶接收輸入數據后,再通過打印機打印輸

出。打印輸出和磁帶輸入可以并行操作,提高了

輸入輸出設備的利用率。

在網絡環境下,利用雙緩沖區的優勢是能夠

實現雙向通信。操作系統為每個通信對象設置兩

個緩沖區,一個用于發送數據,一個用于接收數

據。「

原版

8.4.3雙緩沖區(續)

?雖然雙緩沖區提高了系統的并行能力,使得進程

運行和輸入/輸出設備的使用效率更高。

?但是,如果處理器運行進程的時間很短,則處理

器需要等待設備的輸入/輸出數據。特別是在兩者

速度相差非常大的情況下,輸入/輸出設備操作與

處理器處理運行進程的速度極不匹配,處理器等

待的時間非常長。為了提高系統的并行能力,需

要采用循環緩沖區。

76

原版

8.4.4循環緩沖區

1.循環緩沖區定義

循環緩沖區是操作系統從內存中分配一組大小相等

的緩沖區,這些緩沖區中的每個緩沖區都有一個鏈接

指針,指向下一個緩沖區,最后一個緩沖區的鏈接指

針指向第一個緩沖區,刀個緩沖區構成緩沖區鏈,如

圖8.16所示。

currentout

正在操作的緩沖區裝滿數據的緩沖區空緩沖區空緩沖區

圖&16循環緩沖區鏈

原版課件

8.4.4循環緩沖區

緩沖區鏈為操作系統公有,進行統一分配和管

理,所有的進程都可以使用。

循環緩沖用于輸入/輸出時,分別設置輸入指針

in和輸出指針out。in指向第一個沒有裝數據的空緩

沖區,out指向第一個裝滿數據的緩沖區。系統初始

化時,current、in和out三個指針相等。

循環緩沖區專門分為作為輸入的循環緩沖區和作

為輸出的循環緩沖區。

78

原版教學配奔課f

8.4.4循環緩沖區(續)

?對于輸出循環緩沖區,當處理器處理的用戶進程需

要輸出數據時,通過in指針從循環緩沖區隊列中分

配第一個空緩沖區,并修改in指針,指向下一個空

緩沖區,將current指針改為分蹌白力猿沖區。當用

戶進程將緩沖區裝滿后,將該緩沖區改為裝滿數據

的緩城區,將該緩沖區與娛來裝滿數據的緩沖區進

行鏈接,out指針指向該短沖反。將current指針移

向另外新分配的緩沖區。

,對于輸入循環緩沖區,當處理器處理用戶進程需要

輸入數據時,通過in指針從循環緩沖區隊列中分配

第一個空緩沖區,并修改in指針,指向下一個空緩

沖區,將current指針詼為分配的緩沖區。當輸入

設備輸入數據將緩沖區裝滿后,將該緩沖區改為裝

滿數據的緩沖區,將該緩沖區與原來裝滿數據的緩

沖區進行鏈接,out指針指向該緩沖區。將current

指針移向另外新分配的緩沖區o

原版課件

8.4.4循環緩沖區(續)

2.循環緩沖區的使用過程

循環緩沖區的使用過程分為getbuf和releasebuf。

(1)需要輸入數據時

當處理器處理進程需要輸入數據時,調用

getbuf過程得到空緩沖區裝數據。該過程由in指針

得到空緩沖區,將該緩沖區提供給進程使用。同時

修改原來的in指針,指向下一個空緩沖區;并將

current指針指向該緩沖區。當輸入設備將緩沖區

裝滿后,該短沖區成為裝滿數據的緩沖區,將。可

指釬指向該緩沖區,current指向需要工作白力其它

緩沖區。當處理器處理進程已經將緩沖區中的數據

提取完后,進程調用releasebuf過程釋放該緩沖

區,將該緩沖區改為空緩沖區,將。ut指針指向下

一個滿緩沖區,將in指針指向該緩沖區。80

原版教學配套課件

8.4.4循環緩沖區(續)

(2)需要輸出數據時

當處理器處理進程需要輸出數據時,調用

getbuf過程得到空緩沖區裝數據。該過程由in指

針得到空緩沖區,將該緩沖區提供給進程使用。

同時修改原來的in指針,指向下一個空緩沖區;

并將current指針指向該緩沖區。當輸出進程將緩

沖區裝滿后,該緩沖區成為裝滿數據的緩沖區,

/out指針指向該緩沛K,current向需要工作

的其它緩沖區。當處理器處理進程已經將緩沖區

裝滿后,輸出設備將緩沖區中的數據取走,輸出

進程調用releasebuf過程釋放該緩沖區,將該緩

沖區改為空緩沖區,將。ut指針指向下一個滿緩沖

區,將in指針指向該緩沖區。

81

原版

8.4.4循環緩沖區(續)

?只要有空緩沖區,循環緩沖支持多個設備輸入數

據,進程運行和數據的輸入并行進行;同樣,只

數據,可以實現多個輸出

常牌調髓房徐發

福環塞沖提高了輸

程度,使得進程或設備等待的時間縮短,提高了

系統的效窣。

82

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論