天天看點

作業系統原理第八章(裝置管理)

一、裝置管理概述

       1.裝置類型和特性

                 按互動對象分類:

                            人機互動裝置:視訊顯示裝置、鍵盤、滑鼠、列印機

                            與CPU等互動的裝置:磁盤、錄音帶、傳感器、控制器

                            計算機間的通信裝置:網卡、數據機

                  按互動方向分類:

                            輸入裝置:鍵盤、掃描器

                             輸出裝置:顯示裝置、列印機

                             雙向裝置:磁盤、網卡

                   按外設特性分類:

                             使用特征: 存儲、輸入/輸出、終端

                             資料傳輸率:低速(鍵盤)、中速(列印機)、高速(網卡、磁盤)

                             資訊組織特征:字元裝置(列印機)、塊裝置(磁盤)、網絡裝置

         2.裝置管理主要功能:

                 裝置配置設定:裝置配置設定程式按照一定的政策,為申請裝置的使用者程序配置設定裝置,記錄裝置的使用情況

                                  這是裝置管理的基本任務

                                  多道程式系統中的裝置不允許使用者直接使用,而是由作業系統統一排程和控制的。

                 裝置映射:事實中,在應用軟體運作期間,作業系統的裝置管理程式必須将該應用軟體對邏輯裝置的引用轉換成對相關實體裝置的引用。

                              裝置無關性:應用軟體中所引用的、用于現實IO操作的裝置與實體IO系統總實際安裝的裝置沒有固定的聯系。這是為了提高應用軟體對運作平台的适應能力,友善實作軟體IO重定向。

                               邏輯裝置:應用軟體所引用的用于實作IO操作的裝置(抽象)

                               實體裝置:實體IO系統中實際安裝的裝置(執行個體)

                 裝置驅動:對實體裝置進行控制,以實作真正的IO操作

                               主要任務:接受上層軟體發來的抽象服務請求,如讀/寫指令,再把它轉換成具體要求,通過一系列的IO指令,控制完成請求的操作;同時,裝置驅動程式還講裝置發來的信号傳送給上層軟體,如裝置是否已損壞等。

                 IO緩沖區管理:

                                 為了緩和處理機和外部裝置間速度不比對的沖突,提高處理機和外部裝置的并行性

                                 通常,緩沖區是指記憶體中若幹區域,用于緩存程序和外部裝置間的資料傳輸

                                  IO緩沖區的管理任務:組織IO緩沖區,并為使用者提供獲得和釋放IO緩沖區的手段

        3. 裝置管理系統的設計目标

                 提高裝置使用率:合理配置設定和使用外部裝置

                                            提高裝置通CPU并行程度(中斷/通道/DMA等技術和緩沖技術)

                 裝置的統一管理:隐蔽裝置的差别,向使用者提供統一的裝置時候用接口

                                              (read/write,UNIX把裝置當做特殊檔案,用檔案的方法處理裝置)

                 裝置獨立性:具體實體裝置對使用者透明,使用者使用統一規範方式使用裝置(實體名,ID或字元串)

                                      使用者程式設計時使用邏輯名,由系統實作邏輯裝置到實體裝置的轉換(邏輯名是友好名,應用程式可見的名稱)

                  字元代碼的獨立性:各種外部裝置使用的字元代碼可能不同,裝置管理系統必須能處理不同的字元代碼。

二、緩沖技術

         1. 緩沖作用:

                    連接配接兩種不同資料傳輸速度的裝置的媒介(平滑傳輸過程,經典如CPU與IO裝置速度不比對)

                    提升資料的存取效率(CPU資料成批傳送給IO裝置,IO裝置資料成批傳送給CPU,解決邏輯記錄和實體記錄大小不比對的問題)

         2.緩沖的組成:

                   硬體緩沖器:容量較小,一般放在接口中,不需要處理機的直接管理,不會影響系統性能

                   軟體緩沖區:容量較大,一般放在記憶體中。

         3.提前讀:

                       使用者程序從IO緩沖區中取走一個資料以後,立即發出對下一個資料的輸入請求;

                       作業系統在适當的時候響應該請求,以便把使用者程序需要的下一個資料從使用者程序指定輸入裝置讀入IO緩沖區;

                       顯然,使用者程序加工前一個資料的工作和作業系統輸入下一個資料的工作可以同時進行

          4.延後寫:

                    當使用者程序輸入資料時,作業系統很快将使用者程序請求輸出的資料從使用者程序的工作區取走并将其暫時存在IO緩沖區中;    

                    直到使用者程序指定的輸出裝置空閑時,作業系統才把暫時存放在IO緩沖區的使用者程序的輸出資料寫到使用者程序指定的輸出裝置上;

                     顯然,使用者程序生成下一個輸出資料的工作可以和作業系統真正輸出前一個輸出資料的工作同時進行

         5.常用的緩沖技術:

                   環形緩沖:若幹緩沖單元首位連結形成一個環

                               兩個線程:輸出線程(讀),輸入線程(寫)

                               三個指針: 輸入指針(in),輸出指針(out),開始指針(start)【初始時,in=out=start】

                               輸入時,判斷(in==out?)

                                           若相等,系統沒有空的緩沖區,需要等待;

                                           若不等,将資訊送入in指定的緩沖區,然後用緩沖區的next來更新in(即in移到下一個緩沖區上)

                               輸出時,判斷(in==out?)

                                          若相等,系統中沒有資料可取,需要等待;

                                          若不等,取出緩沖區中的資訊,然後用緩沖區的next更新out

                 雙緩沖 :

                             為輸入或輸出配置設定兩個緩沖區。讀入時,輸入裝置首先填充buf1,程序從buf1提取資料時,輸入裝置填充buf2,當buf1空,buf2滿時,程序又可以從buf2提取資料,同時,輸入裝置又可填充buf1。

                 *緩沖池

三、裝置配置設定和SPOOL

      1.裝置配置設定方法:獨占裝置的配置設定、共享裝置的配置設定、虛拟配置設定

                獨占型裝置包括所有字元型裝置,任意時間段内最多隻能被一個程序占用;

                               使用時,程序首先向系統申請,可能進入阻塞狀态。當裝置可用時,喚醒一個等待程序。使用完畢時,程序必須釋放裝置。

                               程序使用獨占裝置的配置設定:申請、使用、釋放

                               程序申請裝置----系統配置設定裝置----程序發送使用指令----系統将轉到裝置驅動子產品完成一次IO傳輸-----程序釋放裝置----系統回收裝置

                                當程序的一此裝置申請成功,直到發出釋放指令期間一直獨占裝置

              共享型裝置包括所有塊型裝置

                              IO傳輸機關:塊

                              宏觀上,一個共享型裝置可以被多個程序同時使用;微觀上,多個程序交替使用一個裝置

                              程序使用這類裝置時,無需申請或釋放裝置,也不存在某個程序占用裝置的問題

                              程序使用共享型裝置不需要申請,當然也不存在占用和釋放的問題;

                             但是IO期間隻能有一個程序使用裝置。是以,程序使用共享型裝置之前,有一個隐含的申請指令;使用完以後有一個隐含的釋放指令,以實作基本IO傳輸期間的排他性,保證操作的正常進行;

                             使用共享型裝置的過程中,程序完全有可能進入阻塞等待狀态。

               虛拟配置設定

                             虛拟技術:在一類實體裝置上模拟另一類實體裝置的技術(通常借助輔存将獨占型裝置轉化成共享型裝置)

                             虛拟裝置:用來代替獨占裝置部分輔存(包括控制接口)稱為虛拟裝置

                            虛拟配置設定:當程序需要與獨占裝置交換資訊時,就采用虛拟技術将與該獨占裝置所對應的的虛拟裝置配置設定給它。

      2. ,SPOOLing系統是虛拟技術和虛拟配置設定的實作

                            (外部裝置同時聯機操作,假脫機輸入輸出操作)

                  輸入井和輸出井:磁盤上開辟的兩個存儲區域

                                             輸入井模拟脫機輸入時的磁盤;

                                             輸出井模拟脫機輸出時的磁盤。

                  輸入緩沖區和輸出緩沖區:記憶體中開辟的存儲區域

                                            輸入緩沖區:暫存輸入資料,以後再傳送到輸入井;

                                            輸出緩沖區:暫存輸出資料,以後再傳送到輸出裝置;

                  輸入監控程序和輸出監控程序:

                                          輸入監控程序模拟脫機輸入的衛星機,将使用者需要的資料從輸入裝置通過緩沖區在傳入輸入井。當使用者程序需要資料時,直接從輸入井讀入所需資料;

                                            輸出監控程序模拟脫機輸出的衛星機,使用者程序将輸出資料從記憶體先傳到輸出井。當輸出裝置空閑時,再将輸出井的資料傳輸到輸出裝置。

                  優點:提高了IO速度;将獨占裝置改成“共享”裝置(實作了虛拟裝置功能)

四、 IO控制

                  1.查詢方式(異步傳送)

                                  基本原理:傳送資料之前,CPU先對外設狀态進行檢測,直到外設準備好才開始輸入;

                                                   輸入時,外設資料“準備好”;輸出時,外設“準備好”接收。

                                  特點:IO操作由程式發起并等待完成(指令:IN/OUT);每次讀寫必須通過CPU;

                 2.無條件傳送(同步傳送):

                                工作過程:進行IO操作時無需查詢外設狀态,直接進行

                                隻要用于外設時鐘固定而且已知的場合;

                               當程式執行IO指令(IN/OUT/MOV)時,外設必定已經為傳送資料做好了準備

                 3.中斷方式:

                              工作原理:外設資料準備好或者準備接受時,産生中斷信号;

                                               CPU收到中斷信号後,停止目前工作,處理該中斷事情(完成資料傳送)

                                               CPU處理完之後繼續原來的工作。

                             特點及缺點:CPU與外設并行工作;CPU效率提高;裝置較多時,中斷頻繁,影響CPU有效計算能力;

                                                 CPU資料吞吐較小時(幾個位元組),适于低速裝置

                 4.通道方式:

                            通道是用來控制外設和記憶體資料傳輸的專門部件;有獨立的指令系統,既能受控于CPU,又能獨立于CPU;IO處理機 。

                             特點:有很強的IO能力,提高CPU與外設的并行程度;以記憶體為中心,實作記憶體與外設直接資料互動;傳輸過程基本無需CPU參與。

                 5.  DMA(直接記憶體通路)方式:

                              外設與記憶體之間直接程序資料交換,不需CPU幹預;

                             隻有資料傳送開始(初始化)和結束時(反初始化)需要CPU參與。傳輸過程不需。

                             DMA控制器:DMAC

                            局限:不能完全脫離CPU(傳送方向、記憶體位址、資料長度由CPU控制)

                                     每台裝置 需要一個DMAC(裝置數大時不經濟)  

五、裝置驅動

       1.驅動程式概念:應用程式通過驅動程式來使用硬體裝置或者底層軟體資源

                                 驅動程式工作在核心層

                                 不同作業系統提供不同機制來實作驅動程式

                    基本硬體基礎:接口(端口)、中斷機制、DMA機制、虛拟驅動 

      2,Linux裝置驅動(LDD)

                     功能完整的Linux裝置驅動結構:

                                       裝置的打開、釋放、讀操作、寫操作、控制操作、中斷和輪詢處理;

                                       驅動程式的注冊和登出

                      主裝置号和次裝置号:

                                       主裝置号辨別該裝置種類、辨別驅動程式,範圍為1-255,Linux支援動态配置設定主裝置号;

                                       次裝置号辨別同一裝置驅動程式的不同硬體裝置,隻在驅動裝置内部使用

繼續閱讀