欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

應(yīng)用于Java操作系統(tǒng)中設(shè)備支持的實(shí)現(xiàn)方法

文檔序號:6556458閱讀:151來源:國知局
專利名稱:應(yīng)用于Java操作系統(tǒng)中設(shè)備支持的實(shí)現(xiàn)方法
技術(shù)領(lǐng)域
本發(fā)明涉及Java操作系統(tǒng),尤其是涉及一種應(yīng)用于Java操作系統(tǒng)中設(shè)備支持的實(shí)現(xiàn)方法。
背景技術(shù)
設(shè)備支持是整個操作系統(tǒng)中最為繁瑣復(fù)雜的部分。各種不同類型不同廠家不同型號的設(shè)備都需要分別加以特殊處理,并且新設(shè)備層出不窮,使得設(shè)計一種廣泛適應(yīng)于各種設(shè)備的設(shè)備支持方法異常困難。
為了方便設(shè)計,目前的操作系統(tǒng)往往把設(shè)備劃分為幾個大類,對每一類分別加以處理。
按照輸入輸出特性,設(shè)備可以劃分為輸入型外圍設(shè)備、輸出型外圍設(shè)備和存儲型外圍設(shè)備三類。按照輸入輸出信息交換的單位,則可以劃分為字符設(shè)備和塊設(shè)備。輸入型外圍設(shè)備和輸出型外圍設(shè)備一般為字符設(shè)備,它與內(nèi)存進(jìn)行信息交換的單位是字節(jié),即一次交換1個或多個字節(jié)。所謂塊是連續(xù)信息所組成的一個區(qū)域,塊設(shè)備則一次與內(nèi)存交換的一個或幾個塊的信息,存儲型外圍設(shè)備一般為塊設(shè)備。
存儲型外圍設(shè)備又可以劃分為順序存取存儲設(shè)備和直接存取存儲設(shè)備。順序存取存儲設(shè)備嚴(yán)格依賴信息的物理位置進(jìn)行定位和讀寫,如磁帶。直接存取存儲設(shè)備的重要特性是存取任何一個物理塊所需的事件幾乎不依賴于此信息的位置,如磁盤。不同的設(shè)備用不同的方法加以支持。
一般來說,普通操作系統(tǒng)把設(shè)備支持功能組織為如下三個部分1)輸入輸出中斷處理程序(底層)。
2)設(shè)備驅(qū)動程序。
3)與設(shè)備無關(guān)的操作系統(tǒng)輸入輸出軟件。
輸入輸出中斷處理程序負(fù)責(zé)設(shè)備的異常事件處理、通知操作系統(tǒng)設(shè)備操作成功等;設(shè)備驅(qū)動程序是操作系統(tǒng)的核心組成部分,負(fù)責(zé)具體設(shè)備的初始化、讀寫、狀態(tài)設(shè)置等操作;與設(shè)備無關(guān)的操作系統(tǒng)輸入輸出軟件則屏蔽了具體設(shè)備的一些特性,盡量把不同設(shè)備都封裝為統(tǒng)一的形式。比如Unix系統(tǒng)中把設(shè)備都當(dāng)作文件來處理。
但是現(xiàn)有的方法在適應(yīng)性和可擴(kuò)展性上還有很大的缺陷。整個設(shè)備支持功能的分層過于粗略,而能夠?qū)崿F(xiàn)統(tǒng)一接口的只有“與設(shè)備無關(guān)的操作系統(tǒng)輸入輸出軟件”這一部分,于是需要有大量的重復(fù)代碼用于針對每個具體設(shè)備進(jìn)行專門處理,缺乏適應(yīng)性和可擴(kuò)展性,從而對熱插拔也不能很好的進(jìn)行支持。

發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種應(yīng)用于Java操作系統(tǒng)中設(shè)備支持的實(shí)現(xiàn)方法。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案如下1)分為四層的管理體系設(shè)備接口對硬件設(shè)備的抽象,對硬件設(shè)備進(jìn)行封裝,擁有唯一的標(biāo)識符并提供對硬件設(shè)備進(jìn)行操作的接口;設(shè)備總線接口對硬件總線的抽象,對硬件總線進(jìn)行封裝,提供總線間和總線與設(shè)備間連接的接口;設(shè)備驅(qū)動程序接口具體實(shí)現(xiàn)了設(shè)備的具體功能,并以設(shè)備接口作為外殼向設(shè)備應(yīng)用程序接口提供支持;設(shè)備應(yīng)用程序接口通過設(shè)備接口實(shí)現(xiàn)系統(tǒng)Java操作系統(tǒng)中的設(shè)備訪問的功能調(diào)用,并對外部應(yīng)用程序提供公共接口;2)面向?qū)ο蟮膶?shí)現(xiàn)方法,設(shè)備接口、設(shè)備總線接口、設(shè)備驅(qū)動程序和設(shè)備應(yīng)用程序接口都是Java操作系統(tǒng)中的對象,根據(jù)應(yīng)用的總線、接入的具體設(shè)備和對應(yīng)的設(shè)備驅(qū)動,以及應(yīng)用程序而實(shí)例化;3)兩個輔助模塊設(shè)備搜尋器對總線上掛載的設(shè)備進(jìn)行識別、實(shí)例化,并向設(shè)備管理器注冊該設(shè)備的信息;設(shè)備-驅(qū)動映射器自動搜索設(shè)備所需的驅(qū)動程序,并將該設(shè)備映射到其驅(qū)動程序上,使該設(shè)備擁有自己的驅(qū)動程序。
本發(fā)明具有的有益效果是首先,因為采用了面向?qū)ο蟮脑O(shè)計方法,所以具備高度的適應(yīng)性和可擴(kuò)展性,對各種不同的設(shè)備甚至未來的設(shè)備都可以提供一致的接口,不需要對整個設(shè)備支持方法作重大改變;其次,用設(shè)備應(yīng)用程序接口替代了普通操作系統(tǒng)中的訪問設(shè)備的系統(tǒng)調(diào)用,并且把設(shè)備應(yīng)用程序接口設(shè)計為設(shè)備接口對象的成員函數(shù),從而可以采用統(tǒng)一的方法實(shí)現(xiàn)不同的具體特備的訪問,相比較普通操作系統(tǒng),具有更好的可擴(kuò)展性;第三,對即插即用和熱插拔用統(tǒng)一的方法進(jìn)行支持,因而簡化了設(shè)計,并且可以支持幾乎所有設(shè)備的熱插拔。


圖1是本發(fā)明的流程圖;圖2是本發(fā)明的體系結(jié)構(gòu)圖。
具體實(shí)施例方式
下面結(jié)合附圖和實(shí)施例對本發(fā)明作進(jìn)一步的說明。
本發(fā)明按照上述四層管理體系和兩個輔助模塊來布局。下面將就本體系作詳細(xì)介紹。
1)分為四層的管理體系和兩個輔助模塊,參見附圖2①分為四層的管理體系I.設(shè)備接口對硬件設(shè)備的抽象,對硬件設(shè)備進(jìn)行封裝,擁有唯一的標(biāo)識符并提供對硬件設(shè)備進(jìn)行操作的接口。本發(fā)明中采用了面向?qū)ο蟮姆椒ǎO(shè)備接口是Java操作系統(tǒng)中的對象,每個設(shè)備接口都根據(jù)相應(yīng)設(shè)備而實(shí)例化為一個對象,抽象出具體硬件設(shè)備的功能,對外表現(xiàn)為一個標(biāo)準(zhǔn)的設(shè)備,可以對它進(jìn)行各種訪問操作。
II.設(shè)備總線接口對硬件總線的抽象,對硬件總線進(jìn)行封裝,提供總線間和總線與設(shè)備間連接的接口。本發(fā)明采面向?qū)ο蟮姆椒ㄡ槍γ總€設(shè)備總線都實(shí)例化一個相應(yīng)的對象,抽象出具體的硬件總線,對外表現(xiàn)為一個標(biāo)準(zhǔn)的設(shè)備總線,可以跟設(shè)備接口相連,也可以跟其它總線相連。
III.設(shè)備驅(qū)動程序具體實(shí)現(xiàn)了設(shè)備的具體功能,并以設(shè)備接口作為外殼向設(shè)備應(yīng)用程序接口提供支持。設(shè)備驅(qū)動程序負(fù)責(zé)具體設(shè)備的讀寫、狀態(tài)設(shè)置、出錯處理、緩沖處理等,跟普通操作系統(tǒng)中的驅(qū)動類似。
IV.設(shè)備應(yīng)用程序接口通過設(shè)備接口實(shí)現(xiàn)系統(tǒng)Java操作系統(tǒng)中的設(shè)備訪問的功能調(diào)用,并對外部應(yīng)用程序提供公共接口。設(shè)備應(yīng)用程序接口也是采用面向?qū)ο蟮姆椒?,對外部?yīng)用程序提供統(tǒng)一的操作接口,其內(nèi)部則通過設(shè)備的驅(qū)動程序?qū)崿F(xiàn)了對外的接口。本發(fā)明中,因為設(shè)備接口是采用面向?qū)ο蟮姆椒▽?shí)現(xiàn),所以很自然的,設(shè)備的應(yīng)用程序接口就是設(shè)備接口提供的操作。也就是說,每個設(shè)備接口都是一個對象,而設(shè)備應(yīng)用程序接口作為設(shè)備對外部程序提供的操作,則是其相應(yīng)的對象的成員函數(shù)。這種方法保證了對每個設(shè)備接口對象的應(yīng)用程序接口調(diào)用都是正確的,并且都可以通過統(tǒng)一的方式實(shí)現(xiàn)不同的功能。
②兩個輔助模塊I.設(shè)備搜尋器對總線上掛載的設(shè)備進(jìn)行識別、實(shí)例化,并注冊該設(shè)備的信息。設(shè)備搜尋器在系統(tǒng)啟動時用于初始化各個設(shè)備;在運(yùn)行時如果有新設(shè)備連接到設(shè)備總線上,即熱插拔時,則用于識別該設(shè)備。
II.設(shè)備-驅(qū)動映射器自動搜索設(shè)備所需的驅(qū)動程序,并將該設(shè)備映射到其驅(qū)動程序上,使該設(shè)備擁有自己的驅(qū)動程序。
2)設(shè)備初始化過程,參見圖1①系統(tǒng)運(yùn)行之后,先初始化設(shè)備總線。系統(tǒng)按照編號從低到高依次識別出每條設(shè)備總線,為每條總線建立一個“設(shè)備總線接口”對象,并初始化該對象。對象的初始化信息包括總線編號、總線可掛載設(shè)備數(shù)目、與其相連的總線的編號等。
②識別總線上的設(shè)備。設(shè)備總線初始化之后,由設(shè)備搜尋器按照掛載點(diǎn)的編號從低到高依次識別出連接在總線上的每個設(shè)備,將這些設(shè)備登記在設(shè)備管理器中。設(shè)備管理器用來登記注冊管理設(shè)備所需的所有信息。
③實(shí)例化設(shè)備接口。設(shè)備被識別登記之后,設(shè)備搜尋器負(fù)責(zé)進(jìn)一步為每個設(shè)備建立一個“設(shè)備接口”對象,并初始化該對象。對象的初始化信息包括設(shè)備識別號、設(shè)備類型、設(shè)備應(yīng)用程序接口信息等。
④驅(qū)動程序映射。完成上述的設(shè)備接口對象初始化后,設(shè)備-驅(qū)動映射器根據(jù)設(shè)備識別號、設(shè)備類型以及設(shè)備應(yīng)用程序接口所屬類型為該設(shè)備找到一個合適的驅(qū)動程序,并將該驅(qū)動程序設(shè)置為對應(yīng)設(shè)備接口對象的成員函數(shù),從而使該設(shè)備擁有自己的驅(qū)動程序。
從②到④是為每個設(shè)備按順序執(zhí)行的。也就是說,先為第一個設(shè)備執(zhí)行一遍②、③、④,再為第二個設(shè)備執(zhí)行一遍②、③、④,接著為第三個設(shè)備執(zhí)行,依次類推,直到所有設(shè)備都初始化完成。
3)設(shè)備熱插拔過程,參見圖1①在系統(tǒng)運(yùn)行時,如果有新設(shè)備連接到設(shè)備總線上,則總線會發(fā)出一個中斷,告知CPU有新設(shè)備加入。于是設(shè)備搜尋器就負(fù)責(zé)搜索設(shè)備總線上的設(shè)備,找到新設(shè)備后,就按照前面所述第2)步的步驟,從②開始,依次執(zhí)行③和④,完成新設(shè)備的初始化工作。
②在系統(tǒng)運(yùn)行時,如果有設(shè)備從設(shè)備總線上拔出,則總線會發(fā)出一個中斷,告知CPU有設(shè)備退出。設(shè)備搜尋器根據(jù)退出的設(shè)備所在的總線以及它在該設(shè)備總線上的位置,從設(shè)備管理器中查出該設(shè)備的相關(guān)信息,然后刪除這些信息。因為Java操作系統(tǒng)具有垃圾收集功能,所以該設(shè)備之前所占用的資源會被自動釋放。這就完成了設(shè)備的刪除工作。
從這里可以看到,本發(fā)明中對設(shè)備熱插拔的支持跟對設(shè)備即插即用的支持采用了幾乎完全一樣的方法。
現(xiàn)有一計算機(jī),有兩條設(shè)備總線1和2,2連接在1上;又有三個設(shè)備A、B、C,其中A、B連接到總線1上,C連接到總線2上;a、b、c分別是A、B、C所需要的驅(qū)動程序。
現(xiàn)在這個計算機(jī)上安裝了應(yīng)用了本發(fā)明的Java操作系統(tǒng)。系統(tǒng)加電啟動后,經(jīng)過最初的自檢和操作系統(tǒng)引導(dǎo),就進(jìn)入1)設(shè)備初始化階段①識別和初始化總線。首先初始化總線1,為總線1建立總線接口對象X,并在X中寫入總線1的編號、可掛載設(shè)備數(shù)目和跟總線1相連接的總線的編號,即總線2;接著初始化總線2,為總線2建立總線接口對象Y,并在Y中寫入總線2的編號、可掛載設(shè)備數(shù)目和跟總線2相連接的總線的編號,即總線1。
②識別總線上的設(shè)備。首先識別總線1上的設(shè)備A,然后將A的信息,主要包括A的設(shè)備識別號,即A,和A所處的位置,即總線1上的第1個設(shè)備,寫入設(shè)備管理器。
③實(shí)例化設(shè)備A的設(shè)備接口。創(chuàng)建一個設(shè)備接口對象U,并用設(shè)備識別號、設(shè)備類型、設(shè)備應(yīng)用程序接口信息等作為參數(shù)初始化U。
④驅(qū)動程序映射。設(shè)備-驅(qū)動映射器根據(jù)U中所記錄的A的設(shè)備識別號、設(shè)備類型以及設(shè)備應(yīng)用程序接口等信息在設(shè)備驅(qū)動程序庫中找到合適的程序a,并將a設(shè)置為U的成員函數(shù)。
這樣就完成了設(shè)備A的初始化工作,接著設(shè)備搜尋器再依次找到B和C,然后分別為它們執(zhí)行前面的②、③、④三個步驟,完成初始化過程。
2)設(shè)備熱插拔現(xiàn)在又有一個設(shè)備D在系統(tǒng)運(yùn)行中接入總線2的位置2,于是總線2上發(fā)出一個中斷,通知CPU有一個新設(shè)備加入。設(shè)備搜尋器檢查總線2的位置2,識別出設(shè)備D,于是就對D執(zhí)行前面步驟1)的②、③、④三個步驟,完成新設(shè)備的初始化工作。
現(xiàn)在假設(shè)設(shè)備B在系統(tǒng)運(yùn)行中被拔出,于是總線1上發(fā)出一個中斷,通知CPU有一個設(shè)備退出。于是設(shè)備搜尋器就根據(jù)退出設(shè)備的位置,即總線1的位置2,從設(shè)備管理器中查找到相應(yīng)的設(shè)備為B。然后設(shè)備搜尋器就從設(shè)備管理器中刪除設(shè)備B的信息。這樣就完成設(shè)備的刪除工作。
本Java操作系統(tǒng)軟件已經(jīng)向中華人民共和國版權(quán)局申請計算機(jī)軟件著作權(quán)登記。
權(quán)利要求
1.一種應(yīng)用于Java操作系統(tǒng)中設(shè)備支持的實(shí)現(xiàn)方法,其特征在于1)分為四層的管理體系設(shè)備接口對硬件設(shè)備的抽象,對硬件設(shè)備進(jìn)行封裝,擁有唯一的標(biāo)識符并提供對硬件設(shè)備進(jìn)行操作的接口;設(shè)備總線接口對硬件總線的抽象,對硬件總線進(jìn)行封裝,提供總線間和總線與設(shè)備間連接的接口;設(shè)備驅(qū)動程序接口具體實(shí)現(xiàn)了設(shè)備的具體功能,并以設(shè)備接口作為外殼向設(shè)備應(yīng)用程序接口提供支持;設(shè)備應(yīng)用程序接口通過設(shè)備接口實(shí)現(xiàn)系統(tǒng)Java操作系統(tǒng)中的設(shè)備訪問的功能調(diào)用,并對外部應(yīng)用程序提供公共接口;2)面向?qū)ο蟮膶?shí)現(xiàn)方法,設(shè)備接口、設(shè)備總線接口、設(shè)備驅(qū)動程序和設(shè)備應(yīng)用程序接口都是Java操作系統(tǒng)中的對象,根據(jù)應(yīng)用的總線、接入的具體設(shè)備和對應(yīng)的設(shè)備驅(qū)動,以及應(yīng)用程序而實(shí)例化;3)兩個輔助模塊設(shè)備搜尋器對總線上掛載的設(shè)備進(jìn)行識別、實(shí)例化,并向設(shè)備管理器注冊該設(shè)備的信息;設(shè)備-驅(qū)動映射器自動搜索設(shè)備所需的驅(qū)動程序,并將該設(shè)備映射到其驅(qū)動程序上,使該設(shè)備擁有自己的驅(qū)動程序。
全文摘要
本發(fā)明公開了一種應(yīng)用于Java操作系統(tǒng)中設(shè)備支持的實(shí)現(xiàn)方法。本發(fā)明是以分層管理的方式,采用面向?qū)ο蟮姆椒ㄔ贘ava操作系統(tǒng)中實(shí)現(xiàn)了即插即用的設(shè)備支持方法,把設(shè)備支持系統(tǒng)劃分為設(shè)備接口、設(shè)備總線接口、設(shè)備驅(qū)動程序和設(shè)備應(yīng)用程序接口四個層次,每個層次都作為操作系統(tǒng)中的一個對象來實(shí)現(xiàn),并通過設(shè)備搜尋器和設(shè)備-驅(qū)動映射器的協(xié)助自動搜尋連接到設(shè)備總線上的設(shè)備,自動加以識別和注冊,具有高度的適應(yīng)性和可擴(kuò)展性,能夠很好地支持設(shè)備的熱插拔。
文檔編號G06F9/44GK1801086SQ200610049140
公開日2006年7月12日 申請日期2006年1月17日 優(yōu)先權(quán)日2006年1月17日
發(fā)明者陳天洲, 戴鴻君, 葉敏嬌, 黃域 申請人:浙江大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
沁水县| 松江区| 宾川县| 壶关县| 临湘市| 阿克陶县| 永德县| 汤阴县| 玛纳斯县| 寻甸| 新晃| 蒙自县| 平武县| 安平县| 稷山县| 西乡县| 祁连县| 柘城县| 平乡县| 永康市| 胶州市| 泰安市| 易门县| 固安县| 卓资县| 南丹县| 泰来县| 乌兰浩特市| 平顺县| 重庆市| 沅江市| 新化县| 防城港市| 齐河县| 德庆县| 吉木萨尔县| 集安市| 郁南县| 乳源| 富民县| 土默特右旗|