專利名稱:從操作系統(tǒng)中抽象出操作環(huán)境的制作方法
從操作系統(tǒng)中抽象出操作環(huán)境
扭旦 Ff足
1.背景和相關(guān)技術(shù)
計算機(jī)系統(tǒng)和相關(guān)技術(shù)影響社會的許多方面。的確,計算機(jī)系統(tǒng)處理信息 的能力已改變?nèi)藗兩詈凸ぷ鞯姆绞?。計算機(jī)系統(tǒng)現(xiàn)在通常執(zhí)行在計算機(jī)系統(tǒng) 出現(xiàn)以前手動執(zhí)行的許多任務(wù)(例如,文字處理、日程安排和會計等)。最近, 計算機(jī)系統(tǒng)彼此耦合并耦合到其它電子設(shè)備以形成計算機(jī)系統(tǒng)和其它電子設(shè) 備可以在其上傳輸電子數(shù)據(jù)的有線和無線計算機(jī)網(wǎng)絡(luò)。因此,許多計算任務(wù)的 執(zhí)行分布在多個不同的計算機(jī)系統(tǒng)和/或多個不同的計算組件上。
為了執(zhí)行典型的計算任務(wù),操作系統(tǒng)接收命令(或者從應(yīng)用程序或者從用 戶)并將這些命令轉(zhuǎn)發(fā)給適當(dāng)?shù)奈锢碣Y源。這些物理資源進(jìn)而實現(xiàn)較低級操作 以執(zhí)行計算任務(wù)。
大多數(shù)操作系統(tǒng)被設(shè)計成執(zhí)行一般工作負(fù)載。然而,許多應(yīng)用程序具有通 用操作系統(tǒng)無法有效地服務(wù)的特殊要求。例如,多核處理器可能需要通用操作 系統(tǒng)通常不支持的專用并發(fā)軟件。然而,由于設(shè)備驅(qū)動程序、應(yīng)用程序的大量 遺留以及與許多通用操作系統(tǒng)相關(guān)聯(lián)的有經(jīng)驗的開發(fā)者,用包括各種專用功能 的專用操作系統(tǒng)來替換現(xiàn)有通用操作系統(tǒng)通常是不切實際的。
此外,在許多計算環(huán)境中,在操作系統(tǒng)和硬件之間存在一對一的主存關(guān)系。 即,操作系統(tǒng)被設(shè)計成在一組特定硬件(例如,特定處理器架構(gòu))上運(yùn)行。由 于該對應(yīng)關(guān)系,操作系統(tǒng)通常限于在為其設(shè)計的硬件上運(yùn)行而無法在其他非對 應(yīng)硬件上運(yùn)行。此外,大多數(shù)操作系統(tǒng)通常需要對系統(tǒng)的物理資源的完全控制。 由此,難以在同一計算機(jī)系統(tǒng)上同時運(yùn)行多個操作系統(tǒng)(例如,專用操作系統(tǒng) 和通用操作系統(tǒng))。
然而,某些環(huán)境的確準(zhǔn)許一組硬件同時運(yùn)行一兼容的操作系統(tǒng)的多個實 例,或甚至不同的兼容的操作系統(tǒng)的各個實例。由此,該計算機(jī)系統(tǒng)能夠利用 不同操作系統(tǒng)的更多有利的功能來方便服務(wù)器合并、系統(tǒng)管理、不可信應(yīng)用程 序的隔離(沙箱化)等。例如,虛擬化是用于模擬硬件功能以允許操作系統(tǒng)的多個實例在同一物理 資源上運(yùn)行的技術(shù)。通過使用虛擬化,虛擬機(jī)能夠為每一個操作系統(tǒng)創(chuàng)建其擁 有該計算機(jī)系統(tǒng)的物理資源(例如,CPU、存儲器、存儲、網(wǎng)絡(luò)棧等)的幻覺。 這些虛擬機(jī)多路復(fù)用多個操作系統(tǒng)實例和物理資源之間的通信以促進(jìn)該幻覺。 因此,虛擬化允許多個操作系統(tǒng)實例在極少(如果有的話)修改的情況下共享 物理資源。然而,虛擬化也至少部分地由于操作系統(tǒng)實例和物理資源之間的間 接層次而引入了性能開銷。
此外,虛擬機(jī)通常不向操作系統(tǒng)實例指示其對物理資源的訪問己被虛擬 化。由此,在虛擬化環(huán)境中,操作系統(tǒng)實例通常不知道其正在通過虛擬機(jī)且并 非直接與物理資源交互。另外,通常不保證虛擬機(jī)將在一對一的基礎(chǔ)上映射到 物理資源。通過抽象,物理資源功能的各部分可變得對操作系統(tǒng)實例不可用。 由此,阻止了操作系統(tǒng)實例使用物理資源功能,即使這一功能可使該操作系統(tǒng) 實例受益。
此外,虛擬化通常將操作系統(tǒng)實例彼此隔離開。由此,在大多數(shù)虛擬化環(huán) 境中,(同一或不同操作系統(tǒng)的)不同操作系統(tǒng)實例彼此不知道或甚至不知道 其他操作系統(tǒng)正在運(yùn)行。因此,雖然可利用不同操作系統(tǒng)的個別功能,但阻止 了操作系統(tǒng)實例協(xié)同行動以執(zhí)行計算任務(wù)。
簡要概述
本發(fā)明涉及用于從在操作環(huán)境中運(yùn)行的操作系統(tǒng)中抽象出該操作環(huán)境的 方法、系統(tǒng)和計算機(jī)程序產(chǎn)品。本發(fā)明的各實施例包括可在各種不同的底層操 作環(huán)境之上運(yùn)行的操作系統(tǒng)。在操作環(huán)境中,操作環(huán)境抽象層抽象出操作環(huán)境 資源并向操作系統(tǒng)展示這些操作環(huán)境資源。因此,適當(dāng)配置的操作環(huán)境抽象層 向操作系統(tǒng)提供到跨各種不同操作環(huán)境的可用資源的統(tǒng)一接口。該操作環(huán)境抽 象層和操作系統(tǒng)包括可調(diào)整算法,該算法可基于所展示的操作環(huán)境資源來調(diào)整 以便適當(dāng)?shù)叵蜃鞒稣埱蟮膽?yīng)用程序提供服務(wù)。
在某些實施例中,執(zhí)行操作系統(tǒng)功能。操作環(huán)境抽象層檢測底層操作環(huán)境 的可用操作環(huán)境資源。該底層操作環(huán)境可以是例如,計算機(jī)系統(tǒng)硬件、系統(tǒng)管 理程序或甚至另一操作系統(tǒng)。該操作環(huán)境抽象層基于檢測到的操作環(huán)境資源中所表示的功能來調(diào)整用于向作出請求的操作系統(tǒng)提供操作環(huán)境資源的抽象算法。
操作環(huán)境抽象層向操作系統(tǒng)展示所檢測到的底層操作環(huán)境的操作環(huán)境資 源以便向該操作系統(tǒng)標(biāo)識所檢測到的該底層操作環(huán)境的操作環(huán)境資源。由此, 例如,操作環(huán)境抽象層可向另一操作系統(tǒng)(在該操作環(huán)境抽象層之上運(yùn)行)展 示一個操作系統(tǒng)(提供底層操作環(huán)境)的資源。
該操作系統(tǒng)基于向該操作系統(tǒng)展示的檢測到的操作環(huán)境資源中所表示的 展示的功能來調(diào)整用于向作出請求的應(yīng)用程序提供操作系統(tǒng)服務(wù)的服務(wù)算法。 操作系統(tǒng)接收對操作系統(tǒng)服務(wù)的應(yīng)用程序請求。該操作系統(tǒng)根據(jù)經(jīng)調(diào)整的服務(wù) 算法和經(jīng)調(diào)整的抽象算法,通過專用接口來與操作環(huán)境抽象層接口以實現(xiàn)對于 作出請求的應(yīng)用程序的操作系統(tǒng)服務(wù)。
提供本概述是為了以簡化的形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的 一些概念。該概述不旨在標(biāo)識所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不 旨在用于幫助確定所要求保護(hù)的主題的范圍。
本發(fā)明的附加特征和優(yōu)點(diǎn)將在以下描述中敘述,且其一部分根據(jù)本描述將 是顯而易見的,或可通過對本發(fā)明的實踐來獲知。本發(fā)明的特征和優(yōu)點(diǎn)可通過 在所附權(quán)利要求書中特別指出的手段和組合來實現(xiàn)和獲得。本發(fā)明的這些和其 他特征將通過以下描述和所附權(quán)利要求書而變得更加完全明顯,或可通過對下 文中所述的本發(fā)明的實踐來獲知。
附圖簡述
為了描述可獲得本發(fā)明的上述和其它優(yōu)點(diǎn)和特征的方式,將通過參考附圖 中示出的本發(fā)明的具體實施例來呈現(xiàn)以上簡要描述的本發(fā)明的更具體描述。可 以理解,這些附圖僅描述本發(fā)明的典型實施例,從而不被認(rèn)為是對其范圍的限 制,本發(fā)明將通過使用附圖用附加特征和細(xì)節(jié)來描述和說明,在附圖中
圖1A示出方便從操作系統(tǒng)中抽象出操作環(huán)境的示例計算機(jī)體系結(jié)構(gòu)。 圖1B示出描繪對從其操作環(huán)境中抽象出的操作系統(tǒng)的服務(wù)調(diào)用的執(zhí)行流 程的示例計算機(jī)體系結(jié)構(gòu)。
圖2A-2C示出從操作系統(tǒng)中抽象出不同操作環(huán)境的示例計算機(jī)體系結(jié)構(gòu)。示例計算機(jī)體系結(jié)構(gòu)。
圖4示出用于執(zhí)行操作系統(tǒng)功能的示例方法的流程圖。
圖5示出用于處理異步操作的中斷模型中的示例上下文信息流。
詳細(xì)描述
本發(fā)明涉及用于從在操作環(huán)境中運(yùn)行的操作系統(tǒng)中抽象出該操作環(huán)境的 方法、系統(tǒng)和計算機(jī)程序產(chǎn)品。本發(fā)明的各實施例包括可在各種不同的底層操 作環(huán)境之上運(yùn)行的操作系統(tǒng)。在操作環(huán)境中,操作環(huán)境抽象層抽象出操作環(huán)境 資源并向操作系統(tǒng)展示這些操作環(huán)境資源。因此,適當(dāng)配置的操作環(huán)境抽象層 向操作系統(tǒng)提供到跨各種不同操作環(huán)境的可用資源的統(tǒng)一接口 。該操作環(huán)境抽 象層和操作系統(tǒng)包括可調(diào)整算法,該算法可基于所展示的操作環(huán)境資源來調(diào)整 以便適當(dāng)?shù)叵蜃鞒稣埱蟮膽?yīng)用程序提供服務(wù)。
在某些實施例中,執(zhí)行操作系統(tǒng)功能。操作環(huán)境抽象層檢測底層操作環(huán)境 的可用操作環(huán)境資源。該底層操作環(huán)境可以是例如,計算機(jī)系統(tǒng)硬件、系統(tǒng)管 理程序或甚至另--操作系統(tǒng)。該操作環(huán)境抽象層基于檢測到的操作環(huán)境資源中 所表示的功能來調(diào)整用于向作出請求的操作系統(tǒng)提供操作環(huán)境資源的抽象算 法。
操作環(huán)境抽象層向操作系統(tǒng)展示所檢測到的底層操作環(huán)境的操作環(huán)境資 源以便向該操作系統(tǒng)標(biāo)識所檢測到的該底層操作環(huán)境的操作環(huán)境資源。由此, 例如,操作環(huán)境抽象層可向另一操作系統(tǒng)(在該操作環(huán)境抽象層之上運(yùn)行)展 示--個操作系統(tǒng)(提供底層操作環(huán)境)的資源。
該操作系統(tǒng)基于向該操作系統(tǒng)展示的檢測到的操作環(huán)境資源中所表示的 展示的功能來調(diào)整用于向作出請求的應(yīng)用程序提供操作系統(tǒng)服務(wù)的服務(wù)算法。 操作系統(tǒng)接收對操作系統(tǒng)服務(wù)的應(yīng)用程序請求。該操作系統(tǒng)根據(jù)經(jīng)調(diào)整的服務(wù) 算法和經(jīng)調(diào)整的抽象算法,通過專用接口來與操作環(huán)境抽象層接口以實現(xiàn)對于 作出請求的應(yīng)用程序的操作系統(tǒng)服務(wù)。
本發(fā)明的各實施例可以包括含有計算機(jī)硬件的專用或通用計算機(jī),這將在 以下做出進(jìn)一步討論。本發(fā)明的范圍內(nèi)的各個實施例還包括用于承載或其上儲存有計算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)的計算機(jī)可讀介質(zhì)。這樣的計算機(jī)可讀介質(zhì) 可以是可由通用或?qū)S糜嬎銠C(jī)訪問的任何可用介質(zhì)。作為示例而非限制,計算
機(jī)可讀介質(zhì)可包括物理(或可記錄類型的)計算機(jī)可讀存儲介質(zhì),諸如RAM、 ROM、 EEPROM、 CD-ROM或其它光盤存儲、磁盤存儲或其它磁存儲設(shè)備、 或可用于存儲計算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的所需程序代碼裝置且可由 通用或?qū)S糜嬎銠C(jī)訪問的任何其它介質(zhì)。
在本說明書和所附權(quán)利要求書中,"網(wǎng)絡(luò)"被定義為允許在計算機(jī)系統(tǒng)和/ 或模塊之間傳輸電子數(shù)據(jù)的一個或多個數(shù)據(jù)鏈路。當(dāng)信息通過網(wǎng)絡(luò)或另一通信 連接(硬連線、無線、或者硬連線或無線的組合)傳輸或提供給計算機(jī)時,該 計算機(jī)將該連接適當(dāng)?shù)匾暈橛嬎銠C(jī)可讀介質(zhì)。因此,作為示例而非限制,計算 機(jī)可讀介質(zhì)還可包括可用于承載或存儲計算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的 所需程序代碼裝置并可由通用或?qū)S糜嬎銠C(jī)訪問的網(wǎng)絡(luò)或數(shù)據(jù)鏈路。
計算機(jī)可執(zhí)行指令包括例如,使通用計算機(jī)、專用計算機(jī)、或?qū)S锰幚碓O(shè) 備執(zhí)行某一功能或某組功能的指令和數(shù)據(jù)。計算機(jī)可執(zhí)行指令可以是例如二進(jìn) 制代碼、諸如匯編語言等中間格式指令、或甚至源代碼。盡管用結(jié)構(gòu)特征和/ 或方法動作專用的語言描述了本主題,但可以理解,所附權(quán)利要求書中定義的 主題不必限于上述特征或動作。相反,上述特征和動作是作為實現(xiàn)權(quán)利要求的 示例形式而公開的。
本領(lǐng)域的技術(shù)人員將理解,可以在具有許多類型的計算機(jī)系統(tǒng)配置的網(wǎng)絡(luò) 計算環(huán)境中實踐本發(fā)明,這些計算機(jī)系統(tǒng)配置包括個人計算機(jī)、臺式計算機(jī)、 膝上型計算機(jī)、消息處理器、手持式設(shè)備、多處理器系統(tǒng)、基于微處理器的或 可編程消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PC、小型計算機(jī)、大型計算機(jī)、移動電話、PDA、 尋呼機(jī)等等。本發(fā)明也可以在其中通過網(wǎng)絡(luò)鏈接(或者通過硬連線數(shù)據(jù)鏈路、 無線數(shù)據(jù)鏈路,或者通過硬連線和無線數(shù)據(jù)鏈路的組合)的本地和遠(yuǎn)程計算機(jī) 系統(tǒng)兩者都執(zhí)行任務(wù)的分布式系統(tǒng)環(huán)境中實踐。在分布式系統(tǒng)環(huán)境中,程序模 塊可以位于本地和遠(yuǎn)程存儲器存儲設(shè)備中。
圖1A示出了方便從操作系統(tǒng)中抽象出操作環(huán)境的示例計算機(jī)體系結(jié)構(gòu) 100。如圖所示,計算機(jī)體系結(jié)構(gòu)100包括操作系統(tǒng)101、操作環(huán)境抽象層102、 操作環(huán)境103和應(yīng)用程序111和112。操作系統(tǒng)101可包括用于與應(yīng)用程序互操作的API 181。應(yīng)用程序111和112可被配置成通過API 181來與操作系統(tǒng) 互操作。因此,應(yīng)用程序111和112可通過API 181來對操作系統(tǒng)101進(jìn)行調(diào) 用以請求操作系統(tǒng)服務(wù)。服務(wù)算法107可處理應(yīng)用程序請求并響應(yīng)于應(yīng)用程序 請求來提供操作系統(tǒng)服務(wù)。
操作系統(tǒng)101可包括用于與操作環(huán)境抽象層102互操作的API 182。 API 182可包括各種不同類型的API,諸如例如,初始化API、中斷管理API、定 時器API、傳輸API (例如,與管道、套接字、共享存儲器等相關(guān))、服務(wù)擴(kuò) 展API、多處理器API、線程本地存儲API等。
操作環(huán)境抽象層102被配置成通過API 182來與操作系統(tǒng)101互操作。操 作環(huán)境抽象層102還被配置成通過各種操作環(huán)境專用接口 183來與操作環(huán)境 103互操作。因此,操作環(huán)境抽象層102可通過操作環(huán)境專用接口 183來訪問 操作環(huán)境103的資源。抽象算法106可用于確定將向操作系統(tǒng)101展示資源107 的什么部分以及確定將如何向操作系統(tǒng)101展示資源107的各部分。操作環(huán)境 抽象層102然后可根據(jù)抽象算法106的判定通過API 182來向操作系統(tǒng)101展 示資源107的各部分。例如,操作環(huán)境102可向操作系統(tǒng)101展示資源部分 107P。
抽象算法106是可調(diào)整的。操作環(huán)境抽象層103可基于資源107中所表示 的操作環(huán)境103的功能來自動調(diào)整抽象算法106。例如,算法106可包括用于 展示資源的多個不同抽象算法?;谫Y源107中所表示的功能,操作環(huán)境抽象 層102可轉(zhuǎn)換為使用適用于更有效地展示所表示的功能的抽象算法106的指定 子集。
因此,可定制抽象算法106以便與操作環(huán)境103互操作。例如,操作系統(tǒng) 103可展示完整服務(wù)以及可被組合成該完整服務(wù)的各個資源。因此,操作環(huán)境 抽象層102可調(diào)整抽象算法106以便展示完全服務(wù)但未必展示各個資源。操作 環(huán)境抽象層102可向操作系統(tǒng)101提供對各種不同服務(wù)的支持,包括頁表、設(shè) 備驅(qū)動程序、電源管理、存儲器分配、網(wǎng)絡(luò)通信傳輸、處理器對象(例如,中 斷管理)等。
服務(wù)算法104也是可調(diào)整的。操作系統(tǒng)101可基于資源部分107P中所表 示的功能來自動調(diào)整服務(wù)算法104。例如,算法107可包括用于提供操作系統(tǒng)服務(wù)的多個不同服務(wù)算法。基于資源部分107P中所表示的功能,操作系統(tǒng)101
可轉(zhuǎn)換為使用適用于向作出請求的應(yīng)用程序提供操作系統(tǒng)服務(wù)的服務(wù)算法107 的指定子集。操作系統(tǒng)101可調(diào)整服務(wù)算法107以更有效地利用資源部分107P。
因此,可定制抽象算法107以與操作環(huán)境103的所展示的部分互操作。例 如,資源部分107P可指示操作環(huán)境103可提供通信桟功能。因此,操作系統(tǒng) 101可調(diào)整服務(wù)器算法107以便用所提供的通信棧功能而不是在操作系統(tǒng)101 處創(chuàng)建通信棧功能。
圖1B示出描繪對操作系統(tǒng)101的服務(wù)調(diào)用的執(zhí)行流程的示例計算機(jī)體系 結(jié)構(gòu)100。操作系統(tǒng)101可提交并且操作環(huán)境抽象層102可處理的是各種不同 類型的調(diào)用,包括同步調(diào)用、生產(chǎn)者-消費(fèi)者調(diào)用以及異步調(diào)用。
例如,操作系統(tǒng)101可向操作環(huán)境抽象層102發(fā)出同步調(diào)用。同步調(diào)用包 括諸如例如打開網(wǎng)絡(luò)套接字或在控制臺上顯示文本串等操作。為了發(fā)起同步調(diào) 用,進(jìn)程111向包裝函數(shù)112提交調(diào)用151,該包裝函數(shù)112提供到底層操作 環(huán)境抽象層調(diào)用的接口。包裝函數(shù)112通過從進(jìn)程111中抽象出操作環(huán)境抽象 層102的底層機(jī)制來隱藏實現(xiàn)細(xì)節(jié)。例如,用于傳遞服務(wù)的包裝器可獨(dú)立于操 作環(huán)境抽象層102展示的底層傳輸來提供基于網(wǎng)絡(luò)傳輸?shù)慕涌?。該基于網(wǎng)絡(luò)傳 輸?shù)慕涌谠诘讓觽鬏斒枪蚕泶鎯ζ骱褪录r可被實現(xiàn)為環(huán)形緩沖區(qū)或者可以 是用于命名管道傳輸?shù)陌b器。然而,包裝函數(shù)從操作系統(tǒng)101中抽象出這些 細(xì)節(jié)。
包裝函數(shù)112向服務(wù)調(diào)用啟用114提交調(diào)用152。由此,包裝函數(shù)112啟 用包裝操作環(huán)境抽象層102的源代碼中所主存的操作環(huán)境抽象層函數(shù)的類中所 定義的操作環(huán)境抽象層102的服務(wù)。該包裝類可以為服務(wù)包裝函數(shù)的啟用定義 特定屬性。另外,該類可包括其他定義,諸如由該服務(wù)使用的錯誤代碼和標(biāo)志等。
服務(wù)調(diào)用啟用114接收調(diào)用152。服務(wù)調(diào)用啟用向啟用服務(wù)118發(fā)出啟用 153。服務(wù)118可通過操作環(huán)境抽象層102的源代碼中所主存的啟用模型來執(zhí) 行。對服務(wù)118的調(diào)用可禁用中斷并調(diào)用作為API 182的API結(jié)構(gòu)中的函數(shù)指 針來展示的服務(wù)118。
服務(wù)118響應(yīng)于服務(wù)啟用來返回適當(dāng)?shù)臄?shù)據(jù)154 (狀態(tài)信息和結(jié)果),諸如例如,指向通信信道的指針等。
在某些實施例中,服務(wù)啟用被分發(fā)給操作環(huán)境抽象層服務(wù)擴(kuò)展。操作環(huán)境
抽象層102可以加載動態(tài)鏈接庫("DLL")形式的服務(wù)擴(kuò)展,諸如例如,操作 環(huán)境抽象層服務(wù)擴(kuò)展121。操作環(huán)境抽象層102可將操作環(huán)境抽象層擴(kuò)展121 綁定到操作系統(tǒng)IOI。由此,操作系統(tǒng)可提交可利用的、在環(huán)境抽象層服務(wù)擴(kuò) 展121處服務(wù)的調(diào)用。例如,如調(diào)用153A和數(shù)據(jù)154A所示,服務(wù)122可被 啟用并返回適當(dāng)?shù)臄?shù)據(jù)。因此,操作環(huán)境抽象層的功能可通過擴(kuò)展來擴(kuò)展而不 必顯著地修改操作環(huán)境抽象層。
服務(wù)啟用114然后向包裝函數(shù)122返回結(jié)果155 (至少包括適當(dāng)?shù)臄?shù)據(jù) 154)。包裝函數(shù)112處理結(jié)果155并向進(jìn)程111返回結(jié)果156 (也至少包括適 當(dāng)?shù)臄?shù)據(jù)154)。如果檢測到錯誤情況,則包裝函數(shù)112可引發(fā)對于進(jìn)程111 的異常。
生產(chǎn)者-消費(fèi)者調(diào)用在操作環(huán)境抽象層102中的工作者線程(生產(chǎn)者)處 產(chǎn)生,該線程使用中斷通知機(jī)制來將操作完成通知給操作系統(tǒng)101 (消費(fèi)者)。 這一服務(wù)的示例是在每一次鍵被按下并由操作系統(tǒng)101來處理時創(chuàng)建通知事件 的鍵盤。
例如,工作者線程117可產(chǎn)生對中斷線程116的調(diào)用157。工作者線程可 用于API 182中的異步API或遵循生產(chǎn)者-消費(fèi)者模型的服務(wù)。在任一種情況 下,該工作者線程都可以是捕捉諸如例如I/O調(diào)用完成或鍵盤事件等系統(tǒng)事件 的通知的循環(huán)。每一個工作者線程都可以與類似中斷線程116的中斷線程相關(guān) 聯(lián)。工作者線程創(chuàng)建關(guān)于事件的上下文信息并設(shè)置喚醒中斷線程116的事件。 以下代碼示出了工作者線程循環(huán)的骨架示例 while (1)
//等待下一事件
//創(chuàng)建中斷上下文
//發(fā)信號通知中斷線程并等待中斷分派完成::SignalObj ect AndWait(
〃發(fā)信號通知IntermptWorker processor-〉ioscomm,waitHandle,
〃等待中斷分派
processor->ioscomm.completionHandle
〃沒有超時 INFINITE, //不適用 FALSE
中斷線程116提交調(diào)用158以引發(fā)中斷分派函數(shù)113。中斷分派函數(shù)檢索 中斷上下文,調(diào)用服務(wù)中斷調(diào)用(例如,主存在操作系統(tǒng)101的包裝類中)并 清除該中斷上下文。以下是鍵盤中斷分派調(diào)用的示例
if (interrupt = Kernel.ABSTRACTION—LAYERKeyboardlnterrupt)
〃檢索中斷上下文(按下鍵) uint key = (uint)GetABSTRACTION—LAYERInterruptContext(interrupt);
//調(diào)用包裝類
EnlightenedKeyboard.SetKeyAvailable(key); Clear ABSTRACTION—LA YERInterrupt(interrupt);
中斷分派113可向進(jìn)程111提交將引發(fā)喚醒正在等待異步或生產(chǎn)者-消費(fèi) 者操作的結(jié)果的包裝函數(shù)(例如,包裝函數(shù)112)的事件的調(diào)用159。
操作系統(tǒng)101也可向操作環(huán)境抽象層102提交異步調(diào)用。例如,調(diào)用151 可以是異步調(diào)用。異步調(diào)用使用中斷通知機(jī)制來處理,該中斷通知機(jī)制用于在 操作的執(zhí)行已完成時通知操作系統(tǒng)101。異步調(diào)用的示例包括操作環(huán)境抽象層 102的通信服務(wù)中所提供的讀和寫命名管道操作。生產(chǎn)者-消費(fèi)者調(diào)用具有阻塞 的可能性。由此,在某些實施例中,操作環(huán)境抽象層可將生產(chǎn)者-消費(fèi)者調(diào)用作為異步操作來實現(xiàn)。
中斷模型可用作用于通知異步操作的范例。圖5示出了用于處理異步操作 的中斷模型中的示例上下文信息流500。操作系統(tǒng)包裝函數(shù)(例如,類似于包
裝函數(shù)112)接收異步調(diào)用以執(zhí)行操作。例如,操作系統(tǒng)包裝函數(shù)512可接收 請求執(zhí)行操作532的異步操作調(diào)用531。響應(yīng)于該異步調(diào)用,操作系統(tǒng)包裝函 數(shù)創(chuàng)建包括關(guān)于該特定請求的上下文信息的上下文結(jié)構(gòu)。該上下文信息可包括 對將在操作完成時發(fā)信號通知的事件的引用。例如,操作系統(tǒng)包裝函數(shù)512可 創(chuàng)建引用將在操作532完成時調(diào)用的事件的調(diào)用上下文521。
包裝函數(shù)將該上下文傳遞給操作環(huán)境抽象層服務(wù)(例如,類似于服務(wù) 118)。例如,系統(tǒng)包裝函數(shù)512可將調(diào)用上下文521傳遞給抽象層服務(wù)518。 該抽象層服務(wù)還可創(chuàng)建其自己的服務(wù)上下文,從而從包裝函數(shù)中捕捉具有附加 信息的上下文,這些附加信息諸如例如,操作類型或?qū)τ谠谕瓿蓵r處理操作結(jié) 果可能是有用的(或必需的)的其他信息。例如,抽象層服務(wù)518可創(chuàng)建服務(wù) 上下文522,其指示操作532的操作類型和/或?qū)?yīng)于操作532的其他結(jié)果處理
"f曰息。
當(dāng)該操作完成時,工作者線程使用該服務(wù)上下文來后處理該操作的結(jié)果。 例如,當(dāng)操作532完成時,工作者線程117可使用服務(wù)上下文522來后處理操 作532的結(jié)果。該工作者線程然后分派中斷,同時將調(diào)用上下文和服務(wù)上下文 傳遞給中斷分派函數(shù)。例如,工作者線程117可將調(diào)用上下文521和服務(wù)上下 文522傳遞給操作系統(tǒng)中斷分派函數(shù)513。
中斷分派函數(shù)用調(diào)用上下文來調(diào)用操作系統(tǒng)中斷分派函數(shù)。例如,操作系 統(tǒng)中斷分派函數(shù)513可用調(diào)用上下文521來調(diào)用所有操作系統(tǒng)包裝中斷服務(wù)器 函數(shù)519。操作系統(tǒng)中斷分派函數(shù)可存儲包裝函數(shù)的上下文中的操作的結(jié)果和 狀態(tài),并且然后引發(fā)喚醒操作系統(tǒng)線程的事件以指示該操作已完成。例如,操 作系統(tǒng)包裝中斷服務(wù)器函數(shù)519可存儲操作532的結(jié)果和狀態(tài)并引發(fā)事件以便 向發(fā)送異步操作調(diào)用531的線程指示操作532已完成。以下是通信服務(wù)分派代 碼的示例
//分派已完成的異步操作
public static unsafe void Dispatch(void* context,ulong err)AsyncOpContext* pContext = (AsyncOpContext*)context;
〃將返回狀態(tài)代碼存儲在本地上下文中 pContext-〉err = err;
//發(fā)信號通知客戶機(jī)操作已完成
AutoResetEvent signal = SignalList[pContext->signal];
if( signal != null) signal .Set();
操作系統(tǒng)中斷分派函數(shù)還可在抽象層處調(diào)用中斷清除函數(shù)(例如,來自 fClearlnterrupt類)以解除分配服務(wù)上下文信息并執(zhí)行任何其他清理操作。例如, 操作系統(tǒng)中斷分派函數(shù)513可調(diào)用抽象層中斷清除模塊520來解除分配服務(wù)上 下文522并執(zhí)行與操作532的完成相關(guān)的清理操作。以下是用于通信服務(wù)的中 斷清除代碼的的示例
void Win32Clearlnterrupt(int interrupt)
Processor *processor = GetSEALProcessor(); if( interrupt == SEALIoscommlnterrupt)
//自由動態(tài)分配的上下文
SEALSComFreeContext(processor->ioscomm.pContext);
〃通知中斷分派完成
::SetEvent(processor->ioscomm.compIetionHandle);
在以上代碼中,存在中斷上下文已被分派的事件通知。為了避免工作者線程(例如,517)和中斷分派函數(shù)(例如,513)之間的競爭情況,該中斷工作 者線程可在該工作者線程循環(huán)結(jié)束時引發(fā),并且代碼在繼續(xù)下一循環(huán)迭代之前 等待分派操作已完成的信號。中斷清除函數(shù)發(fā)信號通知該工作者線程繼續(xù)。該 工作者線程可類似于以上參考進(jìn)程-消費(fèi)者調(diào)用描述的骨架循環(huán)而循環(huán)。
通過使用各種啟用方法,不同的操作環(huán)境抽象層可被配置成抽象出多個不 同的操作環(huán)境以提供統(tǒng)一的功能集。統(tǒng)一的功能集可通過例如類似于抽象算法 106的解決操作環(huán)境中的差異的抽象算法來提供。因此,利用統(tǒng)一的功能集的 操作系統(tǒng)能夠在該多個不同操作環(huán)境中的任一個中運(yùn)行。
此外(例如,在初始化期間),抽象層可被配置成分析并變?yōu)橥耆榔?操作環(huán)境,包括標(biāo)識其他抽象層的存在。由此,抽象層可被特別設(shè)計成利用對 應(yīng)的操作環(huán)境的特性。抽象層還可被配置成訪問由其他標(biāo)識的抽象層的操作環(huán) 境提供的服務(wù)。
圖2A-2C示出從操作系統(tǒng)中抽象出不同操作環(huán)境的示例計算機(jī)體系結(jié)構(gòu)。 如圖2A所示,操作環(huán)境抽象層202 (對應(yīng)于硬件)利用硬件專用接口來抽象 硬件203 (例如,裸機(jī))。在圖2B中,操作環(huán)境抽象層222 (對應(yīng)于系統(tǒng)管理 程序)利用系統(tǒng)管理程序?qū)S媒涌?284來抽象系統(tǒng)管理程序223。在圖2C中, 操作環(huán)境抽象層242 (對應(yīng)于主機(jī)操作系統(tǒng))利用操作系統(tǒng)專用接口 286來抽 象主機(jī)操作系統(tǒng)243 (例如,Windows NT、 Windows CE、 Linux)然而,操作 環(huán)境抽象層202 (對應(yīng)于硬件)、操作環(huán)境抽象層222 (對應(yīng)于系統(tǒng)管理程序) 和操作環(huán)境抽象層242 (主機(jī)操作系統(tǒng))中的每一個都支持經(jīng)由API 282來與 操作系統(tǒng)201進(jìn)行通信。
因為操作環(huán)境的資源由對應(yīng)的抽象層來訪問并展示給操作系統(tǒng)201,所以 操作系統(tǒng)201知道其執(zhí)行環(huán)境的特性。因此,可針對操作系統(tǒng)201和正在運(yùn)行 的工作負(fù)載的要求來定制資源管理。由此,可調(diào)整抽象算法和服務(wù)算法(例如 類似于服務(wù)器算法104的操作系統(tǒng)201中的算法)以便在操作環(huán)境中更有效地 操作。例如,當(dāng)操作系統(tǒng)201在系統(tǒng)管理程序223上運(yùn)行時,可向操作系統(tǒng)201 展示系統(tǒng)管理程序調(diào)度程序。因此,操作系統(tǒng)201的CPU調(diào)度程序可調(diào)整其 策略以滿足系統(tǒng)管理程序調(diào)度程序的要求。
設(shè)備驅(qū)動程序和操作系統(tǒng)服務(wù)可由操作系統(tǒng)201來本地實現(xiàn)或可被轉(zhuǎn)發(fā)以便在操作環(huán)境(例如,在主機(jī)操作系統(tǒng)243)中執(zhí)行。
在某些實施例中,操作系統(tǒng)201是操作環(huán)境。例如,主機(jī)操作系統(tǒng)243 可以是操作系統(tǒng)201的實例。由此,操作系統(tǒng)201的一個實例可在操作系統(tǒng)201 的另一個實例之上遞歸地運(yùn)行。這種類型的遞歸可用于創(chuàng)建例如用于自主存和 實現(xiàn)類似應(yīng)用域的公共語言運(yùn)行時環(huán)境("CLR")的隔離的執(zhí)行環(huán)境。
操作系統(tǒng)及對應(yīng)的抽象層能夠以特權(quán)和非特權(quán)處理器模式(有時被稱為執(zhí) 行環(huán))的靈活組合來運(yùn)行。圖3A-3D示出跨不同處理器模式的從操作系統(tǒng)中抽 象出不同操作環(huán)境的示例計算機(jī)體系結(jié)構(gòu)。圖3A描繪了主機(jī)操作系統(tǒng)環(huán)境 343。在圖3A的主機(jī)操作系統(tǒng)環(huán)境343中,操作系統(tǒng)301和操作環(huán)境抽象層 342 (對應(yīng)于主機(jī)操作系統(tǒng))兩者都以用戶模式3U (環(huán)3)運(yùn)行。
圖3B也描繪了主機(jī)操作系統(tǒng)環(huán)境343。然而,在圖3B的主機(jī)操作系統(tǒng)環(huán) 境343中,操作系統(tǒng)301和操作環(huán)境抽象層342 (對應(yīng)于主機(jī)操作系統(tǒng))兩者 都以內(nèi)核模式312 (環(huán)0)運(yùn)行。圖3B中所描繪的實施例準(zhǔn)許在主機(jī)操作系統(tǒng) 環(huán)境343中存在單獨(dú)的執(zhí)行環(huán)境。該單獨(dú)的執(zhí)行環(huán)境可用于例如主存設(shè)備驅(qū)動 程序。操作系統(tǒng)301執(zhí)行環(huán)境將驅(qū)動程序的執(zhí)行與內(nèi)核隔離開以允許優(yōu)雅的設(shè) 備驅(qū)動程序故障恢復(fù)。
圖3C描繪了硬件環(huán)境303 (例如,裸機(jī))。在硬件環(huán)境303中,操作系 統(tǒng)301以用戶模式311 (環(huán)3)運(yùn)行而操作系統(tǒng)抽象層302 (對應(yīng)于硬件)以內(nèi) 核模式312 (環(huán)0)運(yùn)行。
圖3D描繪了在系統(tǒng)管理程序323之上運(yùn)行的來自圖3A的主機(jī)操作系統(tǒng) 環(huán)境343的實例。圖3D還描繪了在操作環(huán)境抽象層322 (對應(yīng)于系統(tǒng)管理程 序)之上、以內(nèi)核模式312 (環(huán)0)運(yùn)行的操作系統(tǒng)301的實例。在圖3D中, 操作環(huán)境抽象層322 (對應(yīng)于系統(tǒng)管理程序)知道主機(jī)操作系統(tǒng)環(huán)境343的存 在并且可利用由主機(jī)操作系統(tǒng)環(huán)境343提供的服務(wù)。操作系統(tǒng)301和操作環(huán)境 抽象層342(對應(yīng)于主機(jī)操作系統(tǒng))的組合可擔(dān)當(dāng)對于由主機(jī)操作系統(tǒng)環(huán)境343 提供的服務(wù)(例如,設(shè)備驅(qū)動程序)的代理?;蛘?,操作系統(tǒng)301和操作環(huán)境 抽象層322 (對應(yīng)于系統(tǒng)管理程序)的組合可直接與主機(jī)操作系統(tǒng)環(huán)境343的 服務(wù)進(jìn)行通信。
圖4示出用于執(zhí)行操作系統(tǒng)功能的示例方法400的流程圖。方法400將參考計算機(jī)體系結(jié)構(gòu)100中所描繪的組件和數(shù)據(jù)來描述。
方法400包括操作環(huán)境抽象層檢測底層操作環(huán)境的可用操作環(huán)境資源的 動作(動作401)。例如,操作環(huán)境抽象層103可檢測操作環(huán)境103的資源107。 方法400包括操作環(huán)境抽象層基于檢測到的操作環(huán)境資源中所表示的功能來調(diào) 整用于向作出請求的操作系統(tǒng)提供操作環(huán)境資源的抽象算法的動作(動作 402)。例如,操作環(huán)境抽象層102可基于資源107中所表示的功能來調(diào)整抽 象算法106。
方法400包括操作環(huán)境抽象層向操作系統(tǒng)展示所檢測到的底層操作環(huán)境 的操作環(huán)境資源以便向該操作系統(tǒng)標(biāo)識所檢測到的該底層操作環(huán)境的操作環(huán) 境資源的動作(動作403)。例如,操作環(huán)境抽象層102可向操作系統(tǒng)101展 示資源部分107P。方法400包括操作系統(tǒng)基于向該操作系統(tǒng)展示的、所檢測 到的操作環(huán)境資源中所表示的展示的功能來調(diào)整用于向作出請求的應(yīng)用程序 提供操作系統(tǒng)服務(wù)的服務(wù)算法的動作(動作404)。例如,操作系統(tǒng)101可基 于資源部分107P中所表示的所展示的功能來調(diào)整服務(wù)算法107。
方法400包括操作系統(tǒng)接收對操作系統(tǒng)服務(wù)的應(yīng)用程序請求的動作(動作 405)。例如,操作系統(tǒng)101可從應(yīng)用程序111或112接收對操作系統(tǒng)服務(wù)的 請求。方法400包括操作系統(tǒng)根據(jù)經(jīng)調(diào)整的服務(wù)算法和經(jīng)調(diào)整的抽象算法,通 過專用接口來與操作環(huán)境抽象層接口以實現(xiàn)對于作出請求的應(yīng)用程序的操作
系統(tǒng)服務(wù)的動作(406)。例如,操作系統(tǒng)101和操作環(huán)境抽象層102可根據(jù) 經(jīng)調(diào)整的服務(wù)算法104和經(jīng)調(diào)整的抽象算法106,通過API 182來接口以實現(xiàn) 對于應(yīng)用程序111或112的操作系統(tǒng)服務(wù)。
本發(fā)明可具體化為其它具體形式而不背離其精神或本質(zhì)特征。所述實施例 在所有方面都應(yīng)被認(rèn)為僅是說明性而非限制性的。從而,本發(fā)明的范圍由所附 權(quán)利要求書而非前述描述指示。落入權(quán)利要求書的等效方式的含義和范圍內(nèi)的 所有改變應(yīng)被權(quán)利要求書的范圍涵蓋。
權(quán)利要求
1.一種在計算機(jī)系統(tǒng)處的用于執(zhí)行操作系統(tǒng)功能的方法,所述計算機(jī)系統(tǒng)包括操作系統(tǒng)、底層操作環(huán)境以及位于所述操作系統(tǒng)和所述底層操作環(huán)境之間的操作環(huán)境抽象層,所述底層操作環(huán)境被配置成向其他軟件模塊提供操作環(huán)境資源,所述底層操作環(huán)境是能夠向其他軟件模塊提供操作環(huán)境資源的多個不同操作環(huán)境中的一個,所述操作系統(tǒng)被配置成使用多個不同的可調(diào)整服務(wù)算法中的任一個來向作出請求的應(yīng)用程序提供操作系統(tǒng)服務(wù),所述操作系統(tǒng)基于從所述多個不同底層操作環(huán)境中標(biāo)識的底層操作環(huán)境的展示的操作環(huán)境資源來提供操作系統(tǒng)服務(wù),所述操作系統(tǒng)具有用于與其他軟件模塊接口的專用接口,所述操作環(huán)境抽象層通信地耦合到所述操作系統(tǒng)和所述底層操作環(huán)境,所述操作環(huán)境抽象層被特別設(shè)計成從所述操作系統(tǒng)中抽象出所述底層操作環(huán)境并且使用多個不同的可調(diào)整抽象算法中的任一個,通過所述專用接口來可調(diào)整地與所述操作系統(tǒng)接口以使得所述操作系統(tǒng)可通過所述操作環(huán)境抽象層來與所述底層操作環(huán)境接口,所述方法包括所述操作環(huán)境抽象層檢測所述底層操作環(huán)境的可用操作環(huán)境資源的動作;所述操作環(huán)境抽象層基于所檢測到的操作環(huán)境資源中所表示的功能來調(diào)整用于向作出請求的操作系統(tǒng)提供操作環(huán)境資源的抽象算法的動作;所述操作環(huán)境抽象層向所述操作系統(tǒng)展示所檢測到的所述底層操作環(huán)境的操作環(huán)境資源以便向所述操作系統(tǒng)標(biāo)識所檢測到的所述底層操作環(huán)境的操作環(huán)境資源的動作;所述操作系統(tǒng)基于向所述操作系統(tǒng)展示的、所檢測到的操作環(huán)境資源中所表示的展示的功能來調(diào)整用于向作出請求的應(yīng)用程序提供操作系統(tǒng)服務(wù)的服務(wù)算法的動作;所述操作系統(tǒng)接收對操作系統(tǒng)服務(wù)的應(yīng)用程序請求的動作;以及所述操作系統(tǒng)根據(jù)經(jīng)調(diào)整的服務(wù)算法和經(jīng)調(diào)整的抽象算法,通過所述專用接口來與所述操作環(huán)境抽象層接口以實現(xiàn)對于所述作出請求的應(yīng)用程序的操作系統(tǒng)服務(wù)的動作。
2. 如權(quán)利要求1所述的方法,其特征在于,所述操作環(huán)境抽象層檢測所述 底層操作環(huán)境的可用操作環(huán)境資源的動作包括硬件抽象層檢測底層硬件的可用資源的動作。
3. 如權(quán)利要求1所述的方法,其特征在于,所述操作環(huán)境抽象層檢測所述 底層操作環(huán)境的可用操作環(huán)境資源的動作包括系統(tǒng)管理程序抽象層檢測底層 系統(tǒng)管理程序的可用資源的動作。
4. 如權(quán)利要求1所述的方法,其特征在于,所述操作環(huán)境抽象層檢測所述 底層操作環(huán)境的可用操作環(huán)境資源的動作包括操作系統(tǒng)抽象層檢測底層操作 系統(tǒng)的可用資源的動作。
5. 如權(quán)利要求1所述的方法,其特征在于,所述操作環(huán)境抽象層檢測所述 底層操作環(huán)境的可用操作環(huán)境資源的動作包括操作系統(tǒng)抽象層檢測在所述計 算機(jī)系統(tǒng)處運(yùn)行的一個或多個其他操作環(huán)境抽象層的動作。
6. 如權(quán)利要求1所述的方法,其特征在于,所述操作環(huán)境抽象層調(diào)整用于向作出請求的操作系統(tǒng)提供操作環(huán)境資源的抽象算法的動作包括定制所述抽 象算法以便與所述底層操作環(huán)境互操作的動作。
7. 如權(quán)利要求1所述的方法,其特征在于,所述操作環(huán)境抽象層向所述操 作系統(tǒng)展示所檢測到的所述底層操作環(huán)境的操作環(huán)境資源的動作包括所述操 作環(huán)境抽象層使用API來調(diào)用所述操作系統(tǒng)的動作。
8. 如權(quán)利要求1所述的方法,其特征在于,所述操作系統(tǒng)調(diào)整用于向作出 請求的應(yīng)用程序提供操作系統(tǒng)服務(wù)的服務(wù)算法的動作包括定制所述服務(wù)算法 以便與所檢測到的操作環(huán)境資源的所展示的功能互操作的動作。
9. 如權(quán)利要求1所述的方法,其特征在于,所述操作系統(tǒng)與所述操作環(huán)境 抽象層接口以實現(xiàn)對于所述作出請求的應(yīng)用程序的操作系統(tǒng)服務(wù)的動作包括 所述操作系統(tǒng)向所述操作環(huán)境抽象層提交調(diào)用的動作,所述調(diào)用的類型選自同 步調(diào)用和異步調(diào)用。
10. 如權(quán)利要求1所述的方法,其特征在于,所述操作系統(tǒng)與所述操作 環(huán)境抽象層接口以實現(xiàn)對于所述作出請求的應(yīng)用程序的操作系統(tǒng)服務(wù)的動作 包括所述操作環(huán)境抽象層將所述底層操作環(huán)境的資源分配給所述操作系統(tǒng)的 動作。
11. 如權(quán)利要求l所述的方法,其特征在于,所述操作系統(tǒng)與所述操作 環(huán)境抽象層接口以實現(xiàn)對于所述作出請求的應(yīng)用程序的操作系統(tǒng)服務(wù)的動作包括所述操作環(huán)境抽象層將所述應(yīng)用程序請求轉(zhuǎn)發(fā)給所述底層操作環(huán)境的動作。
12. 如權(quán)利要求l所述的方法,其特征在于,所述操作系統(tǒng)與所述操作 環(huán)境抽象層接口以實現(xiàn)對于所述作出請求的應(yīng)用程序的操作系統(tǒng)服務(wù)的動作 包括所述操
13. 如權(quán)利要求l所述的方法,其特征在于,所述操作系統(tǒng)以選自用戶 模式和內(nèi)核模式的處理器模式運(yùn)行。
14. 如權(quán)利要求12所述的方法,其特征在于,所述操作環(huán)境抽象層以選自用戶模式和內(nèi)核模式的處理器模式運(yùn)行。
15. 如權(quán)利要求l所述的方法,其特征在于,所述底層操作環(huán)境是所述 操作系統(tǒng)的實例。
16. —種供在計算機(jī)系統(tǒng)處使用的計算機(jī)程序產(chǎn)品,所述計算機(jī)系統(tǒng)包 括操作系統(tǒng)、底層操作環(huán)境以及位于所述操作系統(tǒng)和所述底層操作環(huán)境之間的 操作環(huán)境抽象層,所述底層操作環(huán)境被配置成向其他軟件模塊提供操作環(huán)境資 源,所述底層操作環(huán)境是能夠向其他軟件模塊提供操作環(huán)境資源的多個不同操 作環(huán)境中的一個,所述操作系統(tǒng)被配置成使用多個不同的可調(diào)整服務(wù)算法中的 任一個來向作出請求的應(yīng)用程序提供操作系統(tǒng)服務(wù),所述操作系統(tǒng)基于從所述 多個不同底層操作環(huán)境中標(biāo)識的底層操作環(huán)境的展示的操作環(huán)境資源來提供 操作系統(tǒng)服務(wù),所述操作系統(tǒng)具有用于與其他軟件模塊接口的專用接口,所述 操作環(huán)境抽象層通信地耦合到所述操作系統(tǒng)和所述底層操作環(huán)境,所述操作環(huán) 境抽象層被特別設(shè)計成從所述操作系統(tǒng)中抽象出所述底層操作環(huán)境并且使用 多個不同的可調(diào)整抽象算法中的任一個,通過所述專用接口來可調(diào)整地與所述 操作系統(tǒng)接口以使得所述操作系統(tǒng)可通過所述操作環(huán)境抽象層來與所述底層 操作環(huán)境接口,所述計算機(jī)程序產(chǎn)品用于實現(xiàn)一種執(zhí)行操作系統(tǒng)功能的方法, 所述計算機(jī)程序產(chǎn)品包括其上存儲有計算機(jī)可執(zhí)行指令的一個或多個計算機(jī) 可讀介質(zhì),所述指令當(dāng)在處理器處執(zhí)行時使得所述計算機(jī)系統(tǒng)執(zhí)行所述方法,所述方法包括檢測所述底層操作環(huán)境的可用操作環(huán)境資源;基于所檢測到的操作環(huán)境資源中所表示的功能來調(diào)整用于向作出請求的操作系統(tǒng)提供操作環(huán)境資源的抽象算法;向所述操作系統(tǒng)展示所檢測到的所述底層操作環(huán)境的操作環(huán)境資源以便 向所述操作系統(tǒng)標(biāo)識所檢測到的所述底層操作環(huán)境的操作環(huán)境資源;基于向所述操作系統(tǒng)展示的、所檢測到的操作環(huán)境資源中所表示的展示的 功能來調(diào)整用于向作出請求的應(yīng)用程序提供操作系統(tǒng)服務(wù)的服務(wù)算法;接收對操作系統(tǒng)服務(wù)的應(yīng)用程序請求;以及 根據(jù)經(jīng)調(diào)整的服務(wù)算法和經(jīng)調(diào)整的抽象算法,通過所述專用接口來與所述 操作環(huán)境抽象層接口以實現(xiàn)對于所述作出請求的應(yīng)用程序的操作系統(tǒng)服務(wù)。
17. —種計算機(jī)系統(tǒng),所述計算機(jī)系統(tǒng)包括一個或多個處理器;系統(tǒng)存儲器;底層操作環(huán)境;存儲有一種計算機(jī)可執(zhí)行指令的一個或多個計算機(jī)可讀介質(zhì),所述指令表 示操作環(huán)境抽象層和操作系統(tǒng),并且所述操作環(huán)境抽象層被配置成 檢測所述底層操作環(huán)境的可用操作環(huán)境資源;基于所檢測到的操作環(huán)境資源中所表示的功能來調(diào)整用于向作出請求的 計算機(jī)系統(tǒng)提供操作環(huán)境資源的抽象算法;以及向所述操作系統(tǒng)展示所檢測到的所述底層操作環(huán)境的操作環(huán)境資源以便 向所述操作系統(tǒng)標(biāo)識所檢測到的所述底層操作環(huán)境的操作環(huán)境資源; 所述操作系統(tǒng)被配置成基于向所述操作系統(tǒng)展示的、所檢測到的操作環(huán)境資源中所表示的展示的 功能來調(diào)整用于向作出請求的應(yīng)用程序提供操作系統(tǒng)服務(wù)的服務(wù)算法; 接收對操作系統(tǒng)服務(wù)的應(yīng)用程序請求;以及根據(jù)經(jīng)調(diào)整的服務(wù)算法和經(jīng)調(diào)整的抽象算法,通過所述專用接口來與所述 操作環(huán)境抽象層接口以實現(xiàn)對于作出請求的應(yīng)用程序的操作系統(tǒng)服務(wù)。
18. 如權(quán)利要求17所述的系統(tǒng),其特征在于,所述底層操作環(huán)境是選 自硬件、系統(tǒng)管理程序、所述操作系統(tǒng)的實例以及第二不同的操作系統(tǒng)的實例 的操作環(huán)境。
19. 如權(quán)利要求17所述的系統(tǒng),其特征在于,所述經(jīng)調(diào)整的抽象算法提供針對所述操作系統(tǒng)的工作負(fù)載要求定制的資源管理。
20. 如權(quán)利要求17所述的系統(tǒng),其特征在于,所述操作環(huán)境抽象層還 被配置成檢測所述計算機(jī)系統(tǒng)處的其他操作環(huán)境抽象層;以及向所述操作系統(tǒng)提供來自另一操作環(huán)境抽象層的底層操作環(huán)境的資源。
全文摘要
本發(fā)明涉及用于從在操作環(huán)境中運(yùn)行的操作系統(tǒng)中抽象出該操作環(huán)境的方法、系統(tǒng)和計算機(jī)程序產(chǎn)品。在操作環(huán)境中,操作環(huán)境抽象層抽象出操作環(huán)境資源并向操作系統(tǒng)展示這些操作環(huán)境資源。因此,適當(dāng)配置的操作環(huán)境抽象層向操作系統(tǒng)提供到跨各種不同操作環(huán)境的可用資源的統(tǒng)一接口。每一個操作環(huán)境抽象層和操作系統(tǒng)都包括可調(diào)整算法,該算法可基于所展示的操作環(huán)境資源來調(diào)整以便適當(dāng)?shù)叵蜃鞒稣埱蟮膽?yīng)用程序提供服務(wù)。抽象層可被配置成分析并變?yōu)橥耆榔洳僮鳝h(huán)境,包括標(biāo)識其他抽象層的存在。操作系統(tǒng)及對應(yīng)的抽象層能夠以特權(quán)和非特權(quán)處理器模式的靈活組合運(yùn)行。
文檔編號G06F15/16GK101627377SQ200880007594
公開日2010年1月13日 申請日期2008年2月15日 優(yōu)先權(quán)日2007年3月9日
發(fā)明者A·庫普薩米, C·W·布魯密, E·D·拉德爾, E·D·特里布爾, E·帕佩夫斯塔蒂洛, G·C·亨特, R·E·安德斯, R·潘德雅, S·E·特洛布里奇 申請人:微軟公司