国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種在非事件驅(qū)動(dòng)方式的os中實(shí)現(xiàn)對(duì)設(shè)備的熱插拔的方法

      文檔序號(hào):9616128閱讀:458來(lái)源:國(guó)知局
      一種在非事件驅(qū)動(dòng)方式的os中實(shí)現(xiàn)對(duì)設(shè)備的熱插拔的方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及一種在非事件驅(qū)動(dòng)方式的0S中實(shí)現(xiàn)對(duì)設(shè)備的熱插拔的方法。
      【背景技術(shù)】
      [0002]AV(Aud1 and Visual)設(shè)備中,有的可以和個(gè)人電腦組合使用,還有的可以通過(guò)網(wǎng)絡(luò)進(jìn)行音頻數(shù)據(jù)和視頻數(shù)據(jù)的輸入輸出。和這樣的AV設(shè)備連接的個(gè)人電腦中通常使用的是多任務(wù)方式的0S。
      [0003]而在Microsoft Windows (注冊(cè)商標(biāo))等事件驅(qū)動(dòng)方式的OS中,用戶應(yīng)用程序是這樣構(gòu)成的,它在從0S接收到系統(tǒng)信息后,執(zhí)行啟動(dòng)、結(jié)束、繪制圖形等相應(yīng)的處理。因此,在事件驅(qū)動(dòng)方式的0S中,USB (Universal Serial Bus通用串行總線〉的連接等熱插拔事件也必須由用戶應(yīng)用程序從0S接受系統(tǒng)信息后,才可以執(zhí)行必要的處理。
      [0004]然而,在Linux (注冊(cè)商標(biāo))等非事件驅(qū)動(dòng)方式的0S中,沒(méi)有準(zhǔn)備事件驅(qū)動(dòng)方式的0S中的系統(tǒng)信息。因此,用戶應(yīng)用程序?yàn)榱瞬蹲綗岵灏问录?,必須不斷進(jìn)行輪詢。S卩,如日本專利特開2002 - 300176號(hào)公報(bào)中所公開的內(nèi)容,用戶應(yīng)用程序間隔固定時(shí)間對(duì)總線進(jìn)行監(jiān)測(cè),一旦發(fā)生熱插拔事件,立即運(yùn)行相應(yīng)的處理。
      [0005]圖1表示這種通過(guò)輪詢方式處理熱插拔事件的概要。以下說(shuō)明中所述的熱插拔處理,是指將大容量存儲(chǔ)設(shè)備通過(guò)USB連接于安裝有Linus Kernel 2.4 (注冊(cè)商標(biāo))的個(gè)人電腦的情況。
      [0006]即,在Linux (注冊(cè)商標(biāo))的內(nèi)核空間KERNEL中,備有USB核心驅(qū)動(dòng)程序usbcore和用于USB大容量存儲(chǔ)的類驅(qū)動(dòng)程序usb-storage。此外,在用戶空間USER中,備有熱插拔hotplug以及USB腳本usb-storage。當(dāng)USB大容量存儲(chǔ)設(shè)備連接到個(gè)人電腦上時(shí),如圖1中a所示,通過(guò)延長(zhǎng)在內(nèi)核空間中備有的核心驅(qū)動(dòng)程序usbcore的探查函數(shù)probe的處理,調(diào)出熱插拔腳本此時(shí),設(shè)定各種環(huán)境變量,執(zhí)行熱插拔腳本hotplug。
      [0007]這種情況下,表示與USB設(shè)備連接的值被設(shè)定于部分環(huán)境變量。然后如圖1中b所示,熱插拔腳本hotplug運(yùn)行觸發(fā)其執(zhí)行的事件所對(duì)應(yīng)的腳本。此時(shí),按照?qǐng)D1中3設(shè)定的環(huán)境變量執(zhí)行USB腳本usb.agent.接著,USB腳本usb.agent裝入觸發(fā)其執(zhí)行的事件所對(duì)應(yīng)的類驅(qū)動(dòng)程序,這里如圖1中c所示,裝入U(xiǎn)SB大容量存儲(chǔ)設(shè)備的類驅(qū)動(dòng)程序usb-storage。然后如圖1中d所示,USB核心驅(qū)動(dòng)程序執(zhí)行更新虛擬文件/proc/bus/usb/devices的內(nèi)容等一系列處理。
      [0008]因此,用戶應(yīng)用程序只要通過(guò)輪詢,監(jiān)視虛擬文件/proc/bus/usb/devices,便可以在將大容量存儲(chǔ)設(shè)備進(jìn)行USB連接時(shí),使用該大容量存儲(chǔ)設(shè)備。但現(xiàn)行的Linux (注冊(cè)商標(biāo))的熱插拔處理只能在該類驅(qū)動(dòng)程序動(dòng)態(tài)嵌入時(shí)使用。
      [0009]然而如上所述,在通過(guò)輪詢捕捉熱插拔事件時(shí),如果縮短輪詢的時(shí)間間隔,則系統(tǒng)的負(fù)擔(dān)就會(huì)增大。但如果相反將輪詢間隔延長(zhǎng),在熱插拔事件發(fā)生之后到執(zhí)行處理之前會(huì)發(fā)生時(shí)間延遲。
      [0010]這個(gè)問(wèn)題通過(guò)采用高速CPU可在一定程度上避免或減輕,但這時(shí)需要的CPU價(jià)格十分高昂。此外,當(dāng)AV設(shè)備等的系統(tǒng)控制電路是由微型計(jì)算機(jī)構(gòu)成時(shí),整體中的CPU價(jià)格也很重要,如果價(jià)格昂貴,即便速度快也無(wú)法采用。

      【發(fā)明內(nèi)容】

      [0011]為解決上述現(xiàn)有的缺點(diǎn),本發(fā)明的主要目的在于提供一種實(shí)用的在非事件驅(qū)動(dòng)方式的0S中實(shí)現(xiàn)對(duì)設(shè)備的熱插拔的方法,減輕系統(tǒng)負(fù)擔(dān),控制系統(tǒng)成本上升。
      [0012]為達(dá)成以上所述的目的,本發(fā)明的一種在非事件驅(qū)動(dòng)方式的0S中實(shí)現(xiàn)對(duì)設(shè)備的熱插拔的方法采取如下技術(shù)方案:
      一種在非事件驅(qū)動(dòng)方式的0S中實(shí)現(xiàn)對(duì)設(shè)備的熱插拔的方法,其特征在于,在出現(xiàn)設(shè)備安裝或拆卸時(shí),通過(guò)內(nèi)核的核心驅(qū)動(dòng)程序調(diào)用熱插拔腳本,所述熱插拔腳本在進(jìn)行所述調(diào)用之后,執(zhí)行該熱插拔腳本本身描述的特定處理,然后調(diào)用掛鉤程序,所述掛鉤程序在被調(diào)用后,運(yùn)行熱插拔管理程序,獲取所述設(shè)備安裝或拆卸的相關(guān)信息,所述熱插拔管理程序中,熱插拔端口監(jiān)督程序利用所述掛鉤程序運(yùn)行,接受所述熱插拔腳本環(huán)境變量中包含的信息,熱插拔庫(kù)從所述熱插拔端口監(jiān)督程序獲取所述信息,API提供給用戶應(yīng)用程序,所述內(nèi)核是Linux (注冊(cè)商標(biāo))的內(nèi)核。
      [0013]具備當(dāng)出現(xiàn)設(shè)備安裝或拆卸時(shí)、通過(guò)內(nèi)核的核心驅(qū)動(dòng)程序調(diào)用并執(zhí)行本身所描述的特定處理的熱插拔腳本,由該熱插拔腳本最后的處理調(diào)用的掛鉤程序;以及由該掛鉤程序運(yùn)行、并將所述設(shè)備安裝拆卸的相關(guān)信息提供給用戶應(yīng)用程序的熱插拔管理程序,所述熱插拔管理程序包含熱插拔端口監(jiān)督程序及熱插拔庫(kù),所述熱插拔端口監(jiān)督程序由所述掛鉤程序調(diào)用,并接受熱插拔腳本環(huán)境變量中包含的信息,所述熱插拔庫(kù)從該熱插拔端口監(jiān)督程序獲取所述信息,并將API提供給用戶應(yīng)用程序。
      [0014]采用如上技術(shù)方案的本發(fā)明,具有如下有益效果:
      本發(fā)明減輕系統(tǒng)負(fù)擔(dān),控制系統(tǒng)成本上升。
      [0015]
      【附圖說(shuō)明】
      [0016]圖1是表示以往的設(shè)備管理方法及管理系統(tǒng)的方框圖。
      [0017]圖2是表示本發(fā)明所述的設(shè)備管理方法及管理系統(tǒng)的方框圖。
      【具體實(shí)施方式】
      [0018]為了進(jìn)一步說(shuō)明本發(fā)明,下面結(jié)合附圖進(jìn)一步進(jìn)行說(shuō)明:
      如圖1所示,在目前使用的Linux (注冊(cè)商標(biāo))中,當(dāng)將USB (universal serial bus)設(shè)備熱插拔連接時(shí),無(wú)論連接的是什么設(shè)備,一旦USB大容量存儲(chǔ)設(shè)備連接到個(gè)人電腦上,則如圖1中3所示,是通過(guò)延長(zhǎng)內(nèi)核空間KERENEL中準(zhǔn)備的核心驅(qū)動(dòng)程序usbcore中探查函數(shù)probe的處理,調(diào)用熱插拔腳本hotplug。
      [0019]本發(fā)明著眼于這一點(diǎn),利用熱插拔腳本hotplug實(shí)現(xiàn)熱插拔處理。以下,參照?qǐng)D2說(shuō)明在裝入kernel2.4Linux (注冊(cè)商標(biāo))的個(gè)人電腦上、將大容量存儲(chǔ)設(shè)備USB連接時(shí)的熱插拔處理。
      [0020]本發(fā)明與上述圖1中所示的系統(tǒng)一樣,在Linux (注冊(cè)商標(biāo))的內(nèi)核空間中,備有USB核心驅(qū)動(dòng)程序usbcore以及用于USB大容量存儲(chǔ)的類驅(qū)動(dòng)程序usb-storage,在用戶空間USER中有熱插拔腳本hotplug以及USB腳本use.agent。
      [0021]此外,在用戶空間USER中,不僅設(shè)有掛鉤程序hooker,并且設(shè)有構(gòu)成熱插拔管理程序pnpmanager的熱插拔端口監(jiān)督程序pnomger以及熱插拔庫(kù)libpnpmgr。
      [0022]此時(shí)由于掛鉤程序hooker是由熱插拔腳本hotplug執(zhí)行,因此在熱插拔腳本hotplug的最后,追加用于調(diào)用掛鉤程序hooker的代碼。此外,掛鉤程序pnpmanager的信息隊(duì)列,將環(huán)境變量傳遞給該熱插拔管理程序pnpmanager。
      [0023]進(jìn)而,熱插拔端口監(jiān)督程序pnpmgr依據(jù)來(lái)自程序的信息,收集設(shè)備信息,并依據(jù)需要,將事件通知給熱插拔庫(kù)libnpmgr。熱插拔庫(kù)libpnpmgr將API (Applicat1n ProgramInterface)提供給用戶應(yīng)用程序。
      [0024]API提供的功能中包含登記或解除事件等待的功能。
      當(dāng)前第1頁(yè)1 2 
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1