中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

建個(gè)站的網(wǎng)站打不開有沒有免費(fèi)的廣告平臺

建個(gè)站的網(wǎng)站打不開,有沒有免費(fèi)的廣告平臺,網(wǎng)站制作制作公司,mip網(wǎng)站怎么做匹配5.1 I/O管理概述 5.1.1 I/O設(shè)備 注:塊設(shè)備可以尋址,但是字符設(shè)備是不可尋址的 I/O設(shè)備是將數(shù)據(jù)輸入到計(jì)算機(jī)中,或者可以接收計(jì)算機(jī)輸出數(shù)據(jù)的外部設(shè)備,屬于計(jì)算機(jī)中的硬件部件; 設(shè)備的分類 按使用特性分類&#xff…

5.1 I/O管理概述

img

5.1.1 I/O設(shè)備

注:塊設(shè)備可以尋址,但是字符設(shè)備是不可尋址的

I/O設(shè)備是將數(shù)據(jù)輸入到計(jì)算機(jī)中,或者可以接收計(jì)算機(jī)輸出數(shù)據(jù)的外部設(shè)備,屬于計(jì)算機(jī)中的硬件部件;

  1. 設(shè)備的分類
    • 按使用特性分類:
      • 人機(jī)交互類外部設(shè)備:鼠標(biāo)、鍵盤、打印機(jī)等,用于人機(jī)交互。數(shù)據(jù)傳輸速度慢。
      • 存儲設(shè)備:移動硬盤、光盤等,用于數(shù)據(jù)存儲。數(shù)據(jù)傳輸速度快。
      • 網(wǎng)絡(luò)通信設(shè)備:調(diào)制解調(diào)器等,用于網(wǎng)絡(luò)通信。數(shù)據(jù)傳輸速度介于上述二者之間。
    • 按信息交換的單位分類:
      • 塊設(shè)備。信息交換以數(shù)據(jù)塊為單位。它屬于有結(jié)構(gòu)設(shè)備,如磁盤等。磁盤設(shè)備的基本特征是傳輸速率較高、可尋址,即對它可隨機(jī)地讀/寫任意一塊。
      • 字符設(shè)備。信息交換以字符為單位。它屬于無結(jié)構(gòu)類型,如交互式終端機(jī)、打印機(jī)等。
    • 按傳輸速率分類:
      • 低速設(shè)備。傳輸速率僅為每秒幾字節(jié)到數(shù)百字節(jié)的一類設(shè)備,如鍵盤、鼠標(biāo)等。
      • 中速設(shè)備。傳輸速率為每秒數(shù)千字節(jié)至數(shù)萬字節(jié)的一類設(shè)備,如激光打印機(jī)等。
      • 高速設(shè)備。傳輸速率在數(shù)百千字節(jié)至千兆字節(jié)的一類設(shè)備,如磁盤機(jī)、光盤機(jī)等。
  2. I/O接口

img

I/O接口(又稱為設(shè)備控制器)位于CPU與設(shè)備之間,它既要與CPU通信,又要與設(shè)備通信,還要具有按CPU發(fā)來的命令去控制設(shè)備工作的功能,主要由三部分組成,如下圖所示。

img

  • 組成部分:

    • 設(shè)備控制器與CPU的接口:實(shí)現(xiàn)控制器與CPU之間的通信

      該接口有三類信號線:數(shù)據(jù)線、地址線和控制線。

      數(shù)據(jù)線與兩類寄存器相連:數(shù)據(jù)寄存器(存放從設(shè)備送來的輸入數(shù)據(jù)或從CPU送來的輸出數(shù)據(jù))和控制/狀態(tài)寄存器(存放從CPU送來的控制信息或設(shè)備的狀態(tài)信息)。

    • 設(shè)備控制器與設(shè)備的接口:實(shí)現(xiàn)控制器與設(shè)備之間的通信

      一個(gè)設(shè)備控制器可以連接一個(gè)或多個(gè)設(shè)備,因此控制器中有一個(gè)或多個(gè)設(shè)備接口。

      每個(gè)接口中都存在數(shù)據(jù)、控制和狀態(tài)三種類型的信號。

    • I/O邏輯:負(fù)責(zé)識別CPU發(fā)出的命令,并向設(shè)備發(fā)出命令

      用于實(shí)現(xiàn)對設(shè)備的控制。它通過一組控制線與CPU交互,對從CPU收到的I/O命令進(jìn)行譯碼。

      CPU啟動設(shè)備時(shí),將啟動命令發(fā)送給控制器,同時(shí)通過地址線把地址發(fā)送給控制器,由控制器的I/O邏輯對地址進(jìn)行譯碼,并相應(yīng)地對所選設(shè)備進(jìn)行控制。

  • 主要功能:

    • 接受和識別CPU發(fā)出的指令(控制寄存器)
    • 向CPU報(bào)告設(shè)備的狀態(tài)(狀態(tài)寄存器)
    • 數(shù)據(jù)交換(數(shù)據(jù)寄存器暫存數(shù)據(jù))
    • 地址識別(由I/O邏輯實(shí)現(xiàn))
    • 數(shù)據(jù)緩沖
    • 差錯(cuò)控制

img

3.I/O端口

I/O端口是指設(shè)備控制器中可被CPU直接訪問的寄存器,主要有以下三類寄存器。

  • 寄存器類型:

    • 數(shù)據(jù)寄存器:實(shí)現(xiàn)CPU和外設(shè)之間的數(shù)據(jù)緩沖。
    • 狀態(tài)寄存器:獲取執(zhí)行結(jié)果和設(shè)備的狀態(tài)信息,以讓CPU知道是否準(zhǔn)備好。
    • 控制寄存器:由CPU寫入,以便啟動命令或更改設(shè)備模式。
  • 實(shí)現(xiàn)I/O端口通信,有兩種編址方法:

    img

    • 獨(dú)立編址。為每個(gè)端口分配一個(gè)I/O端口號,所有I/O端口形成I/O端口空間,普通用戶程序不能對其進(jìn)行訪問,只有操作系統(tǒng)使用特殊的I/O指令才能訪問端口。
    • 統(tǒng)一編址。又稱內(nèi)存映射I/O,每個(gè)端口被分配唯一的內(nèi)存地址,且不會有內(nèi)存被分配這地址,通常分配給端口的地址靠近地址空間的頂端。
5.1.2 I/O控制方式

設(shè)備管理的主要任務(wù)之一是控制設(shè)備和內(nèi)存或CPU之間的數(shù)據(jù)傳送。外圍設(shè)備與內(nèi)存之間的輸入/輸出控制方式有以下4種。

img

  1. 程序直接控制方式

    如下圖所示,計(jì)算機(jī)從外部設(shè)備讀取的每個(gè)字,CPU需要對外設(shè)狀態(tài)進(jìn)行循環(huán)檢查,直到確定該字已經(jīng)在I/O控制器的數(shù)據(jù)寄存器中。

    • 工作流程:

      img

    • CPU干預(yù)的頻率:很頻繁,I/O操作開始之前、完成之后需要CPU介入,并且在等待I/O完成的過程中CPU需要不斷地輪詢檢查。

    • 數(shù)據(jù)傳送的單位:每次讀/寫一個(gè)字

    • 數(shù)據(jù)的流向:

      • 讀操作(數(shù)據(jù)輸入):I/O設(shè)備→CPU→內(nèi)存
      • 寫操作(數(shù)據(jù)輸出):內(nèi)存→CPU→I/O設(shè)備
      • 每個(gè)字的讀/寫都需要CPU的幫助
    • 優(yōu)點(diǎn):實(shí)現(xiàn)簡單。在讀/寫指令之后,加上實(shí)現(xiàn)循環(huán)檢查的一系列指令即可

    • 缺點(diǎn):CPU和I/O設(shè)備只能串行工作,CPU需要一直輪詢檢查,長期處于“忙等”狀態(tài),CPU利用率低。

    這種方式不會讓進(jìn)程阻塞

    /*實(shí)際上,程序直接控制方式(也稱為忙等待或輪詢)在某些情況下確實(shí)會讓進(jìn)程阻塞,但這里的“阻塞”與傳統(tǒng)意義上的操作系統(tǒng)中的阻塞(如等待I/O操作完成而掛起進(jìn)程)有所不同。在程序直接控制方式中,進(jìn)程不會因等待I/O操作完成而被操作系統(tǒng)掛起或切換到其他進(jìn)程,但它會停留在當(dāng)前的循環(huán)中,不斷檢查I/O操作的完成情況,這同樣會導(dǎo)致進(jìn)程無法執(zhí)行其他任務(wù),從而形成一種“阻塞”的效果,盡管這種阻塞是在用戶態(tài)內(nèi)發(fā)生的,并未涉及操作系統(tǒng)層面的進(jìn)程調(diào)度。詳細(xì)解釋如下:忙等待(Busy Waiting):在程序直接控制方式中,當(dāng)進(jìn)程需要執(zhí)行I/O操作時(shí),它不會通過系統(tǒng)調(diào)用來請求操作系統(tǒng)完成I/O,而是會直接在用戶態(tài)中循環(huán)檢查I/O設(shè)備的狀態(tài)。如果I/O操作尚未完成,進(jìn)程會繼續(xù)循環(huán)檢查,而不是被操作系統(tǒng)掛起或切換到其他進(jìn)程。這種持續(xù)的檢查操作占用了CPU資源,但進(jìn)程并沒有進(jìn)行實(shí)質(zhì)性的工作(如處理數(shù)據(jù)、計(jì)算等),因此被視為一種“忙等待”或“輪詢”。
    CPU資源浪費(fèi):由于進(jìn)程在忙等待期間持續(xù)占用CPU資源,而并沒有進(jìn)行有效的計(jì)算或處理,這會導(dǎo)致CPU資源的浪費(fèi)。特別是當(dāng)I/O操作需要較長時(shí)間才能完成時(shí),這種浪費(fèi)尤為明顯。
    響應(yīng)性差:由于進(jìn)程被“阻塞”在忙等待循環(huán)中,它無法及時(shí)響應(yīng)其他事件或請求,如用戶輸入、定時(shí)器中斷等。這會導(dǎo)致程序的響應(yīng)性變差,用戶體驗(yàn)下降。
    并非真正的阻塞:然而,需要注意的是,程序直接控制方式中的“阻塞”與傳統(tǒng)意義上的阻塞(如等待I/O操作完成而掛起進(jìn)程)是不同的。在程序直接控制方式中,進(jìn)程并沒有被操作系統(tǒng)掛起或切換到其他進(jìn)程,它仍然在運(yùn)行中,只是由于持續(xù)進(jìn)行無效的忙等待而無法執(zhí)行其他任務(wù)。
    綜上所述,程序直接控制方式雖然不會讓進(jìn)程在操作系統(tǒng)層面被掛起或阻塞,但它通過忙等待的方式同樣會導(dǎo)致進(jìn)程無法執(zhí)行其他任務(wù),從而形成一種在用戶態(tài)內(nèi)的“阻塞”效果。因此,在實(shí)際應(yīng)用中,我們通常會采用更高效的I/O控制方式(如中斷驅(qū)動方式、DMA方式等)來避免這種不必要的資源浪費(fèi)和性能下降。*/
    
  2. 中斷驅(qū)動方式

    image-20240920185434228

    中斷驅(qū)動方式的思想是,允許I/O設(shè)備主動打斷CPU的運(yùn)行并請求服務(wù),從而"解放” CPU,使得其向I/O控制器發(fā)送讀命令后可以繼續(xù)做其他有用的工作。

    • 工作流程:
      • 引入中斷機(jī)制。由于I/O設(shè)備速度很慢,因此在CPU發(fā)出讀/寫命令后,可將等待I/O的進(jìn)程阻塞,先切換到別的進(jìn)程執(zhí)行。
      • 當(dāng)I/O完成后,控制器會向CPU發(fā)出一個(gè)中斷信號,CPU檢測到中斷信號后,會保存當(dāng)前進(jìn)程的運(yùn)行環(huán)境信息,轉(zhuǎn)去執(zhí)行中斷處理程序處理該中斷。
      • 處理中斷的過程中,CPU從I/O控制器讀一個(gè)字的數(shù)據(jù)傳送到CPU寄存器,再寫入主存。接著,CPU恢復(fù)等待I/O的進(jìn)程(或其他進(jìn)程)的運(yùn)行環(huán)境,然后繼續(xù)執(zhí)行。

    ①CPU會在每個(gè)指令周期的末尾檢查中斷:
    ②中斷處理過程中需要保存、恢復(fù)進(jìn)程的運(yùn)行環(huán)境,這個(gè)過程是需要一定時(shí)間開銷的??梢?#xff0c;如果中斷發(fā)生的須率太高,也會降低系統(tǒng)性能。

    • CPU干預(yù)的頻率:每次I/O操作開始之前、完成之后需要CPU介入。等待I/O完成的過程中CPU可以切換到別的進(jìn)程執(zhí)行。
    • 數(shù)據(jù)傳送單位:每次讀/寫一個(gè)字
    • 數(shù)據(jù)流向:
      • 讀操作(數(shù)據(jù)輸入):I/O設(shè)備→CPU→內(nèi)存
      • 寫操作(數(shù)據(jù)輸出):內(nèi)存→CPU→I/O設(shè)備
    • 優(yōu)點(diǎn):與“程序直接控制方式”相比,在“中斷驅(qū)動方式”中,I/O控制器會通過中斷信號主動報(bào)告I/O已完成,CPU不再需要不停地輪詢。CPU和I/O設(shè)備可并行工作,CPU利用率得到明顯提升。
    • 缺點(diǎn):每個(gè)字在I/O設(shè)備與內(nèi)存之間的傳輸,都需要經(jīng)過CPU。而頻繁的中斷處理會消耗較多的CPU時(shí)間。

    這種方式會讓進(jìn)程阻塞

  3. DMA方式

    DMA(直接存儲器存取)方式的基本思想是在I/O設(shè)備和內(nèi)存之間開辟直接的數(shù)據(jù)交換通路,徹底“解放”CPU。下圖為DMA工作流程。

    • 與“中斷驅(qū)動方式”相比,DMA方式有這樣幾個(gè)改進(jìn):

      • ①數(shù)據(jù)的傳送單位是“塊”。不再是一個(gè)字、一個(gè)字的傳送:
      • ②數(shù)據(jù)的流向是從設(shè)備直接放入內(nèi)存,或者從內(nèi)存直接到設(shè)備。不再需要CPU作為“快遞小哥”。
      • ③僅在傳送一個(gè)或多個(gè)數(shù)據(jù)塊的開始和結(jié)束時(shí),才需要CPU干預(yù),數(shù)據(jù)傳送通過DMA控制器完成。
    • DMA控制器組成:

      下圖為DMA控制器的組成。

      image-20240919223615920

      DMA控制器中設(shè)置如下4類寄存器:

      • 數(shù)據(jù)寄存器(DR)。暫存從設(shè)備到內(nèi)存或從內(nèi)存到設(shè)備的數(shù)據(jù)。
      • 內(nèi)存地址寄存器(MAR)。在輸入時(shí),它存放把數(shù)據(jù)從設(shè)備傳送到內(nèi)存的起始目標(biāo)地址;在輸出時(shí),它存放由內(nèi)存到設(shè)備的內(nèi)存源地址。
      • 數(shù)據(jù)計(jì)數(shù)器(DC)。存放本次要傳送的字(節(jié))數(shù),剩余要讀/寫的字節(jié)數(shù)。
      • 命令/狀態(tài)寄存器(CR)。接收從CPU發(fā)來的I/O命令、有關(guān)控制信息,或設(shè)備的狀態(tài)。
    • CPU干預(yù)的頻率:僅在傳送一個(gè)或多個(gè)數(shù)據(jù)塊的開始和結(jié)束時(shí),才需要CPU干預(yù)。

    • 數(shù)據(jù)傳送單位:每次讀/寫一個(gè)或多個(gè)塊(注意:每次讀寫的只能是連續(xù)的多個(gè)塊,且這些塊讀入內(nèi)存后在內(nèi)存中也必須是連續(xù)的)

    • 數(shù)據(jù)流向:

      • 讀操作(數(shù)據(jù)輸入):I/O設(shè)備→內(nèi)存
      • 寫操作(數(shù)據(jù)輸出):內(nèi)存→I/O設(shè)備
    • 優(yōu)點(diǎn):數(shù)據(jù)傳輸以“塊”為單位,CPU介入頻率進(jìn)一步降低。數(shù)據(jù)的傳輸不再需要先經(jīng)過CPU再寫入內(nèi)存,數(shù)據(jù)傳輸效率進(jìn)一步增加。CPU和I/O設(shè)備的并行性得到提升。

    • 缺點(diǎn):CPU每發(fā)出一條I/O指令,只能讀/寫一個(gè)或多個(gè)連續(xù)的數(shù)據(jù)塊。如果要讀/寫多個(gè)離散存儲的數(shù)據(jù)塊,或者要將數(shù)據(jù)分別寫到不同的內(nèi)存區(qū)域時(shí),CPU要發(fā)出多條I/O指令,進(jìn)行多次中斷處理才能完成。

  4. 通道控制方式

    通道:I/O通道是指專門負(fù)責(zé)輸入輸出的處理機(jī)。是一種硬件,可以理解為是“弱雞版的CPU”。通道可以識別并執(zhí)行一系列通道指令。

    與CPU相比,通道可以執(zhí)行的指令很單一,并且通道程序是放在主機(jī)內(nèi)存中的,也就是說通道與CPU共享內(nèi)存

    • 完成一次讀寫流程:

      image-20240919223709244

    • CPU干預(yù)的頻率:極低,通道會根據(jù)CPU的指示執(zhí)行相應(yīng)的通道程序,只有完成一組數(shù)據(jù)塊的讀/寫后才需要發(fā)出中斷信號,請求CPU干預(yù)。

    • 數(shù)據(jù)傳送的單位:每次讀/寫一組數(shù)據(jù)塊

    • 數(shù)據(jù)的流向(在通道的控制下進(jìn)行)

      • 讀操作(數(shù)據(jù)輸入):I/O設(shè)備→內(nèi)存
      • 寫操作(數(shù)據(jù)輸出):內(nèi)存→I/O設(shè)備
    • 缺點(diǎn):實(shí)現(xiàn)復(fù)雜,需要專門的通道硬件支持

    • 優(yōu)點(diǎn):CPU、通道、I/O設(shè)備可并行工作,資源利用率很高。

5.1.4 I/O軟件層次結(jié)構(gòu)

為了更好地設(shè)計(jì) I/O 軟件,采用 層次式結(jié)構(gòu) 的 I/O 軟件;

image-20230921104928744

一個(gè)比較合理的層次劃分如上圖所示。整個(gè)I/O軟件可以視為具有4個(gè)層次的系統(tǒng)結(jié)構(gòu),各層次功能如下:

  1. 用戶層軟件(產(chǎn)生I/O請求,格式化I/O,SPOOLing)

    實(shí)現(xiàn)了與用戶交互的接口,用戶可直接使用該層提供的、與I/O操作相關(guān)的庫函數(shù)對設(shè)備進(jìn)行操作。

    用戶層軟件將用戶請求翻譯成格式化的I/O請求,并通過“系統(tǒng)調(diào)用”請求操作系統(tǒng)內(nèi)核的服務(wù)

    img

  2. 設(shè)備獨(dú)立性軟件(映射;保護(hù);分塊;緩沖;分配)

    img

    設(shè)備獨(dú)立性軟件,又稱設(shè)備無關(guān)性軟件。與設(shè)備的硬件特性無關(guān)的功能幾乎都在這一層實(shí)現(xiàn)。

    • 功能:

      • ① 向上層提供統(tǒng)一的調(diào)用接口(如read/write系統(tǒng)調(diào)用)
      • ② 設(shè)備的保護(hù)
      • ③ 差錯(cuò)處理
      • ④ 設(shè)備的分配與可收
  • ⑤ 數(shù)據(jù)緩沖區(qū)管理

    • ⑥ 建立邏輯設(shè)備名到物理設(shè)備名的映射關(guān)系;根據(jù)設(shè)備類型選擇調(diào)用相應(yīng)的驅(qū)動程序
  • 邏輯設(shè)備

    為實(shí)現(xiàn)設(shè)備獨(dú)立性而引入了邏輯設(shè)備和物理設(shè)備這兩個(gè)概念。在應(yīng)用程序中,使用邏輯設(shè)備名來請求使用某類設(shè)備;而在系統(tǒng)實(shí)際執(zhí)行時(shí),必須將邏輯設(shè)備名映射成物理設(shè)備名使用。

    使用邏輯設(shè)備名好處

  • ①增加設(shè)備分配的靈活性

    • ②易于實(shí)現(xiàn)I/O重定向,指用于I/O操作的設(shè)備可以更換(即重定向),而不必改變應(yīng)用程序。

    設(shè)備獨(dú)立性軟件需要通過“邏輯設(shè)備表(LUT,Logical Unit Table)”來確定邏輯設(shè)備對應(yīng)的物理設(shè)備,并找到該設(shè)備對應(yīng)的設(shè)備驅(qū)動程序。

    I/O設(shè)備被當(dāng)做一種特殊的文件;不同類型的I/O設(shè)備需要有不同的驅(qū)動程序處理

    操作系統(tǒng)系統(tǒng)可以采用兩種方式管理邏輯設(shè)備表(LUT)

    • 第一種方式,整個(gè)系統(tǒng)只設(shè)置一張LUT,這就意味著所有用戶不能使用相同的邏輯設(shè)備名,因此這種方式只適用于單用戶操作系統(tǒng)。
  • 第二種方式,為每個(gè)用戶設(shè)置一張LUT,各個(gè)用戶使用的邏輯設(shè)備名可以重復(fù),適用于多用戶操作系統(tǒng)。系統(tǒng)會在用戶登錄時(shí)為其建立一個(gè)用戶管理進(jìn)程,而LUT就存放在用戶管理進(jìn)程的PCB中。

  1. 設(shè)備驅(qū)動程序(設(shè)置設(shè)備寄存器,檢查設(shè)備狀態(tài))

    與硬件直接相關(guān),負(fù)責(zé)具體實(shí)現(xiàn)系統(tǒng)對設(shè)備發(fā)出的操作指令,驅(qū)動I/O設(shè)備工作的驅(qū)動程序。 將上層發(fā)出的一系列命令(如read/write)轉(zhuǎn)化成特定設(shè)備“能聽得懂”的一系列操作。

    不同設(shè)備的內(nèi)部硬件特性也不同,這些特性只有廠家才知道,因此廠家須提供與設(shè)備相對應(yīng)的驅(qū)動程序,CPU執(zhí)行驅(qū)動程序的指令序列,來完成設(shè)置設(shè)備寄存器檢查設(shè)備狀態(tài)等工作。

    為I/O內(nèi)核子系統(tǒng)隱藏設(shè)備控制器之間的差異。

    img

    4.中斷處理程序

當(dāng)I/O任務(wù)完成時(shí),I/O控制器會發(fā)送一個(gè)中斷信號,系統(tǒng)會根據(jù)中斷信號類型找到相應(yīng)的中斷處理程序并執(zhí)行。

  • 中斷處理程序的處理流程如下:

    image-20230901173205434

  • 中斷處理層的任務(wù):

    • 進(jìn)行進(jìn)程上下文的切換,
    • 對處理中斷信號源進(jìn)行測試,
    • 讀取設(shè)備狀態(tài)和修改進(jìn)程狀態(tài)等。

由于中斷處理與硬件緊密相關(guān),對用戶而言,應(yīng)盡量加以屏蔽,因此應(yīng)放在操作系統(tǒng)的底層,系統(tǒng)的其余部分盡可能少地與之發(fā)生聯(lián)系。

img

5.硬件

執(zhí)行IO操作,機(jī)械部件、電子部件組成

總結(jié)

說明用戶對設(shè)備的一次命令過程如下所示:

  • ①當(dāng)用戶要讀取某設(shè)備的內(nèi)容時(shí),通過操作系統(tǒng)提供的read命令接口,這就經(jīng)過了用戶層。
  • ②操作系統(tǒng)提供給用戶使用的接口,一般是統(tǒng)一的通用接口,也就是幾乎每個(gè)設(shè)備都可以響應(yīng)的統(tǒng)一命令,如read命令,用戶發(fā)出的read命令,首先經(jīng)過設(shè)備獨(dú)立層進(jìn)行解析,然后交往下層。
  • ③接下來,不同類型的設(shè)備對read命令的行為會有所不同,如磁盤接收read命令后的行為與打印機(jī)接收read命令后的行為是不同的。因此,需要針對不同的設(shè)備,把read命令解析成不同的指令,這就經(jīng)過了設(shè)備驅(qū)動層。
  • ④命令解析完畢后,需要中斷正在運(yùn)行的進(jìn)程,轉(zhuǎn)而執(zhí)行read命令,這就需要中斷處理程序。
  • ⑤最后,命令真正抵達(dá)硬件設(shè)備,硬件設(shè)備的控制器按照上層傳達(dá)的命令操控硬件設(shè)備,完成相應(yīng)的功能。

理解:

直接涉及到硬件其體細(xì)節(jié)、且與中斷無關(guān)的操作肯定是在設(shè)備驅(qū)動程序?qū)油瓿傻?#xff1b;

沒有涉及硬件的、對各種設(shè)備都需要進(jìn)行的管理工作都是在設(shè)備獨(dú)立性軟件層完成的。

5.1.4 應(yīng)用程序I/O接口

在I/O系統(tǒng)與高層之間的接口中,根據(jù)設(shè)備類型的不同,又進(jìn)一步分為若干接口。

  1. 字符設(shè)備接口

    字符設(shè)備是指數(shù)據(jù)的存取和傳輸是以字符為單位的設(shè)備,如鍵盤、打印機(jī)等?;咎卣魇莻鬏斔俾瘦^低、不可尋址,并且在輸入輸出時(shí)通常采用中斷驅(qū)動方式。

    • 字符設(shè)備的操作

      • get和put操作。由于字符設(shè)備不可尋址,只能采取順序存取方式,通常為字符設(shè)備建立一個(gè)字符緩沖區(qū),用戶程序通過get操作從緩沖區(qū)獲取字符,通過put操作將字符輸出到緩沖區(qū)。
      • in-control指令。字符設(shè)備類型繁多,差異甚大,因此在接口中提供一種通用的in-control指令來處理它們(包含了許多參數(shù),每個(gè)參數(shù)表示一個(gè)與具體設(shè)備相關(guān)的特定功能)。

      字符設(shè)備都屬于獨(dú)占設(shè)備,為此接口中還需要提供打開和關(guān)閉操作,以實(shí)現(xiàn)互斥共享。

  2. 塊設(shè)備接口

    塊設(shè)備是指數(shù)據(jù)的存取和傳輸是以數(shù)據(jù)塊為單位的設(shè)備,典型的塊設(shè)備是磁盤?;咎卣魇莻鬏斔俾瘦^高、可尋址。磁盤設(shè)備的I/O常采用DMA方式。

    • 隱藏了磁盤的二維結(jié)構(gòu):在二維結(jié)構(gòu)中,每個(gè)扇區(qū)的地址需要用磁道號和扇區(qū)號來表示。塊設(shè)備接口將磁盤的所有扇區(qū)從0到n-1依次編號,這樣,就將二維結(jié)構(gòu)變?yōu)橐环N線性序列。
    • 將抽象命令映射為低層操作:塊設(shè)備接口支持上層發(fā)來的對文件或設(shè)備的打開、讀、寫和關(guān)閉等抽象命令,該接口將上述命令映射為設(shè)備能識別的較低層的具體操作。
    • 內(nèi)存映射接口:內(nèi)存映射接口通過內(nèi)存的字節(jié)數(shù)組來訪問磁盤,而不提供讀/寫磁盤操作。映射文件到內(nèi)存的系統(tǒng)調(diào)用返回包含文件副本的一個(gè)虛擬內(nèi)存地址。只在需要訪問內(nèi)存映像時(shí),才由虛擬存儲器實(shí)際調(diào)頁。內(nèi)存映射文件的訪問如同內(nèi)存讀寫一樣簡單,極大地方便了程序員。
  3. 網(wǎng)絡(luò)設(shè)備接口

    許多操作系統(tǒng)提供的網(wǎng)絡(luò)I/O接口為網(wǎng)絡(luò)套接字接口,套接字接口的系統(tǒng)調(diào)用使應(yīng)用程序創(chuàng)建的本地套接字連接到遠(yuǎn)程應(yīng)用程序創(chuàng)建的套接字,通過此連接發(fā)送和接收數(shù)據(jù)。

    img

  4. 阻塞/非阻塞I/O

    • **阻塞I/O:**當(dāng)用戶進(jìn)程調(diào)用I/O操作時(shí),進(jìn)程就被阻塞,需要等待I/O操作完成,進(jìn)程才被喚醒繼續(xù)執(zhí)行。

      eg:字符設(shè)備接口一一從鍵盤讀一個(gè)字符get

    • 非阻塞I/O:用戶進(jìn)程調(diào)用I/O操作時(shí),不阻塞該進(jìn)程,該I/O調(diào)用返回一個(gè)錯(cuò)誤返回值,通常,進(jìn)程需要通過輪詢的方式來查詢I/O操作是否完成。

      eg:塊設(shè)備接口一一往磁盤寫數(shù)據(jù)write

image-20240919194350223

5.1.5 本節(jié)小結(jié)
I/O管理要完成哪些功能?

I/O管理需要完成以下4部分內(nèi)容:

  1. 狀態(tài)跟蹤。要能實(shí)時(shí)掌握外部設(shè)備的狀態(tài)。
  2. 設(shè)備存取。要實(shí)現(xiàn)對設(shè)備的存取操作。
  3. 設(shè)備分配。在多用戶環(huán)境下,負(fù)責(zé)設(shè)備的分配與回收。
  4. 設(shè)備控制。包括設(shè)備的驅(qū)動、完成和故障的中斷處理。

錯(cuò)題總結(jié)或者需要注意的點(diǎn)

1.共享設(shè)備必須是可尋址和可隨機(jī)訪問的設(shè)備

2.共享設(shè)備是指在一段時(shí)間內(nèi)允許多個(gè)進(jìn)程同時(shí)訪問的設(shè)備,而不是同一時(shí)刻

3.虛擬設(shè)備是指,把一個(gè)物理設(shè)備變換成多個(gè)對應(yīng)的邏輯設(shè)備

4.設(shè)備控制器通常需要提供:控制寄存器,狀態(tài)寄存器和控制命令

5.在OS中,通道技術(shù)是一種硬件機(jī)制

6.通道控制設(shè)備控制器,設(shè)備控制器控制設(shè)備工作

7.向設(shè)備寄存器的寫命令是在I/O軟件中的設(shè)備驅(qū)動程序完成的

8.中斷驅(qū)動方式:

? 處理中斷請求:一旦確定了中斷源,中斷處理程序就會執(zhí)行與該中斷源相關(guān)聯(lián)的特定代碼。這可能包括讀取設(shè)備的狀態(tài)寄存器、從設(shè)備讀取數(shù)據(jù)或向設(shè)備寫入數(shù)據(jù)、更新系統(tǒng)的狀態(tài)或執(zhí)行其他必要的操作。

http://www.risenshineclean.com/news/49006.html

相關(guān)文章:

  • 注冊網(wǎng)站不用手機(jī)短信驗(yàn)證的人工智能培訓(xùn)心得體會
  • 網(wǎng)站建設(shè)系互聯(lián)網(wǎng)推廣是什么工作內(nèi)容
  • 如何做DJ網(wǎng)站seo的內(nèi)容怎么優(yōu)化
  • 哈爾濱網(wǎng)站制作公司電話南京網(wǎng)絡(luò)優(yōu)化培訓(xùn)
  • dw登錄頁面怎么制作seopc流量排行榜企業(yè)
  • 石家莊做手機(jī)網(wǎng)站建設(shè)愛站工具包下載
  • 什么叫模板網(wǎng)站谷歌推廣代理
  • 無錫做食品網(wǎng)站的公司網(wǎng)絡(luò)銷售好做嗎
  • 蘭州網(wǎng)站制作成都作品提示優(yōu)化要?jiǎng)h嗎
  • 江西省建設(shè)廳教育網(wǎng)站長春seo排名公司
  • 北京網(wǎng)站設(shè)計(jì)實(shí)力樂云踐新百度賬號
  • wordpress中文cms主題模板seo綜合查詢愛站
  • 女朋友做網(wǎng)站網(wǎng)絡(luò)推廣入門教程
  • 綿陽網(wǎng)站建設(shè)scmmwl百度影響力排名順序
  • 快遞網(wǎng)站怎么做的網(wǎng)絡(luò)營銷知識點(diǎn)
  • 做商城網(wǎng)站的流程介紹營銷推廣有哪些公司
  • zzcms網(wǎng)站開發(fā)2023年5月份病毒感染情況
  • 做王境澤表情的網(wǎng)站站長之家官網(wǎng)入口
  • 網(wǎng)站 整體架構(gòu)國內(nèi)seo公司哪家最好
  • 如何創(chuàng)建一個(gè)平臺型公司關(guān)鍵字排名優(yōu)化公司
  • 微信公眾平臺做微網(wǎng)站競價(jià)排名什么意思
  • 做網(wǎng)站按什么收費(fèi)企業(yè)網(wǎng)站模板源碼
  • 南京金九建設(shè)集團(tuán)網(wǎng)站aso優(yōu)化貼吧
  • 肇慶企業(yè)做網(wǎng)站搜索引擎優(yōu)化案例分析
  • 手機(jī)ui設(shè)計(jì)網(wǎng)站免費(fèi)創(chuàng)建個(gè)人博客網(wǎng)站
  • 哪個(gè)網(wǎng)站專門做代購寧波seo外包哪個(gè)品牌好
  • 支付網(wǎng)站招聘費(fèi)分錄怎么做長尾關(guān)鍵詞愛站網(wǎng)
  • 網(wǎng)站建設(shè)和注冊北京seo包年
  • 一站式網(wǎng)站建設(shè)服務(wù)今日熱搜第一名
  • 開封做網(wǎng)站公司漢獅外貿(mào)網(wǎng)站seo優(yōu)化