1. 程式人生 > >計算機系統的層次結構|I/O子系統的層次結構

計算機系統的層次結構|I/O子系統的層次結構

I/O軟體涉及的面非常廣,往下與硬體有著密切的聯絡,往上又與使用者直接互動,它與程序管理、儲存器管理、檔案管理等都存在著一定的聯絡,即它們都可能需要I/O軟體來實現I/O操作。

為了使複雜的I/O軟體具有清晰的結構,良好的可移植性和適應性,在I/O軟體中普遍釆用了層次式結構,將系統輸入/輸出功能組織成一系列的層次,每一層都利用其下層提供的服務,完成輸入/輸出功能中的某些子功能,並遮蔽這些功能實現的細節,向高層提供服務。在層次式結構的I/O軟體中,只要層次間的介面不變,對某一層次中的軟體的修改都不會引起其下層或高層程式碼的變更,僅最底層才涉及硬體的具體特性。


圖5-3  I/O層次結構
一個比較合理的層次劃分如圖5-3所示。整個I/O系統可以看成具有四個層次的系統結構,各層次及其功能如下:

1) 使用者層I/O軟體:實現與使用者互動的介面,使用者可直接呼叫在使用者層提供的、與I/O操作有關的庫函式,對裝置進行操作。

一般而言,大部分的I/O軟體都在作業系統內部,但仍有一小部分在使用者層,包括與使用者程式連結在一起的庫函式,以及完全運行於核心之外的一些程式。使用者層軟體必須通過一組系統呼叫來獲取作業系統服務。   

2) 裝置獨立性軟體:用於實現使用者程式與裝置驅動器的統一介面、裝置命令、裝置保護、以友裝置分配與釋放等,同時為裝置管理和資料傳送提供必要的儲存空間。

裝置獨立性也稱裝置無關性,使得應用程式獨立於具體使用的物理裝置。為了實現裝置獨立性而引入了邏輯裝置和物理裝置這兩個概念。在應用程式中,使用邏輯裝置名來請求使用某類裝置;而在系統實際執行時,必須將邏輯裝置名對映成物理裝置名使用。

使用邏輯裝置名的好處是:
  • 增加裝置分配的靈活性;
  • 易於實現I/O重定向,所謂I/O重定向,是指用於I/O操作的裝置可以更換(即重定向),而不必改變應用程式。

為了實現裝置獨立性,必須再在驅動程式之上設定一層裝置獨立性軟體。總的來說,裝置獨立性軟體的主要功能可分以為以下兩個方面:
  • 執行所有裝置的公有操作。包括:對裝置的分配與回收;將邏輯裝置名對映為物理裝置名;對裝置進行保護,禁止使用者直接訪問裝置;緩衝管理;差錯控制;提供獨立於裝置的大小統一的邏輯塊,遮蔽裝置之間資訊交換單位大小和傳輸速率的差異。
  • 向用戶層(或檔案層)提供統一介面。無論何種裝置,它們向用戶所提供的介面應該是相同的。例如,對各種裝置的讀/寫操作,在應用程式中都統一使用read/write命令等。

3) 裝置驅動程式:與硬體直接相關,負責具體實現系統對裝置發出的操作指令,驅動 I/O裝置工作的驅動程式。

通常,每一類裝置配置一個裝置驅動程式,它是I/O程序與裝置控制器之間的通訊程式,常以程序形式存在。裝置驅動程式向上層使用者程式提供一組標準介面,裝置具體的差別被裝置驅動程式所封裝,用於接收上層軟體發來的抽象I/O要求,如read和write命令,轉換為具體要求後,傳送給裝置控制器,控制I/O裝置工作;它也將由裝置控制器發來的訊號傳送給上層軟體。從而為I/O核心子系統隱藏裝置控制器之間的差異。

4)中斷處理程式:用於儲存被中斷程序的CPU環境,轉入相應的中斷處理程式進行處理,處理完並恢復被中斷程序的現場後,返回到被中斷程序。

中斷處理層的主要任務有:進行程序上下文的切換,對處理中斷訊號源進行測試,讀取裝置狀態和修改程序狀態等。由於中斷處理與硬體緊密相關,對使用者而言,應儘量加以遮蔽,故應放在作業系統的底層,系統的其餘部分儘可能少地與之發生聯絡。

5) 硬體裝置:I/O裝置通常包括一個機械部件和一個電子部件。為了達到設計的模組性和通用性,一般將其分開:電子部件稱為裝置控制器(或介面卡),在個人計算機中,通常是一塊插入主機板擴充槽的印刷電路板;機械部件則是裝置本身。

裝置控制器通過暫存器與CPU通訊,在某些計算機上,這些暫存器佔用記憶體地址的一部分,稱為記憶體映像I/O;另一些計算機則釆用I/O專用地址,暫存器獨立編址。作業系統通過向控制器暫存器寫命令字來執行I/O功能。控制器收到一條命令後,CPU可以轉向進行其他工作,而讓裝置控制器自行完成具體的I/O操作。當命令執行完畢後,控制器發出一箇中斷訊號,作業系統重新獲得CPU的控制權並檢查執行結果,此時,CPU仍舊是從控制器暫存器中讀取資訊來獲得執行結果和裝置的狀態資訊。

裝置控制器的主要功能為:
  • 接收和識別CPU或通道發來的命令,如磁碟控制器能接收讀、寫、查詢等命令。
  • 實現資料交換,包括裝置和控制器之間的資料傳輸;通過資料匯流排或通道,控制器和主存之間的資料傳輸。
  • 發現和記錄裝置及自身的狀態資訊,供CPU處理使用。
  • 裝置地址識別。

為實現上述功能,裝置控制器(如圖5-4)必須包含以下組成部分:
  • 裝置控制器與CPU的介面。該介面有三類訊號線:資料線、地址線和控制線。資料線通常與兩類暫存器相連線:資料暫存器(存放從裝置送來的輸入資料或從CPU送來的輸出資料)和控制/狀態暫存器(存放從CPU送來的控制資訊或裝置的狀態資訊)。
  • 裝置控制器與裝置的介面。裝置控制器連線裝置需要相應數量的介面,一個介面連線一臺裝置。每個介面中都存在資料、控制和狀態三種類型的訊號。
  • I/O控制邏輯。用於實現對裝置的控制。它通過一組控制線與CPU互動,對從CPU收到的I/O命令進行譯碼。CPU啟動裝置時,將啟動命令傳送給控制器,同時通過地:址線把地址傳送給控制器,由控制器的I/O邏輯對地址進行譯碼,並相應地對所選裝置進行控制。


圖5-4  裝置控制器的組成

教程目錄

1作業系統概述 2程序和執行緒管理 3記憶體管理 4檔案管理 5輸入/輸出(I/O)管理 6作業系統試題 =======================================================================

1.4.1 計算機系統的層次結構

計算機系統存在著層次結構,從功能上看,現代計算機系統可分為五個層次級別,每一層都能進行程式設計,如圖1-6所示。

1. 微程式設計級

  這一級是由硬體直接實現的,是計算機系統最底層的硬體系統。由機器硬體直接執行微指令。只有採用微程式設計的計算機系統,才有這一級。如果某一個應用程式直接用微指令來編寫,那麼可在這一級上執行應用程式。

2. 一般機器級

  也稱為機器語言級,它由微程式解釋機器指令系統。這一級也是硬體級,是軟體系統和硬體系統之間的紐帶。硬體系統的操作由此級控制,軟體系統的各種程式,必須轉換成此級的形式才能執行。

3. 作業系統級

圖1-6 計算機系統的層次結構

計算機系統的層次結構演示動態Flash演示

由作業系統程式實現。這些作業系統由機器指令和廣義指令組成,廣義指令是作業系統定義和解釋的軟體指令,所以這一級也稱為混合級。計算機系統中硬體和軟體資源由此級管理和統一排程,它支撐著其它系統軟體和應用軟體,使計算機能夠自動執行,發揮高效率的特性。

4. 組合語言級

  給程式人員提供一種符號形式語言,以減少程式編寫的複雜性。這一級由彙編程式支援和執行。如果應用程式採用組合語言編寫,則機器必須要有這一級的功能;如果應用程式不採用匯編語言編寫,則這一級可以不要。

5. 高階語言級

  面向使用者,為方便使用者編寫應用程式而設定的。這一級由各種高階語言編譯程式支援和執行。

  計算機系統各層次之間的關係十分緊密,上層是下層的擴充套件,下層是上層的基礎。除第一級外,其它各級都得到它下面級的支援,同時也受到執行在下面各級上的程式的支援。第一級到第三級編寫程式採用的語言,基本是二進位制數字化語言,機器執行和解釋容易。第四、五兩級編寫程式所採用的語言是符號語言,用英文字母和符號來表示程式,因而便於大多數不瞭解硬體的人們使用計算機。

參考:

作業系統 軟體層次 谷歌