用于多個(gè)操作系統(tǒng)環(huán)境中的操作系統(tǒng)轉(zhuǎn)變的技術(shù)的制作方法
【專利摘要】用于在操作系統(tǒng)之間轉(zhuǎn)變的技術(shù)包括具有主存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)設(shè)備的計(jì)算設(shè)備。該計(jì)算設(shè)備執(zhí)行第一操作系統(tǒng)并且監(jiān)視操作系統(tǒng)切換事件。切換事件可以是軟件命令、硬件按鈕按壓或其它用戶命令。響應(yīng)于切換事件,計(jì)算設(shè)備將第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到預(yù)留存儲(chǔ)器區(qū)域。在復(fù)制了狀態(tài)數(shù)據(jù)之后,計(jì)算設(shè)備執(zhí)行第二操作系統(tǒng)。在第二操作系統(tǒng)執(zhí)行時(shí),計(jì)算設(shè)備將第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)從預(yù)留存儲(chǔ)器區(qū)域復(fù)制到數(shù)據(jù)存儲(chǔ)設(shè)備。計(jì)算設(shè)備在第二操作系統(tǒng)的執(zhí)行期間監(jiān)視操作系統(tǒng)切換事件,并且可以類似地切換執(zhí)行回到第一操作系統(tǒng)。描述并要求保護(hù)其它實(shí)施例。
【專利說明】用于多個(gè)操作系統(tǒng)環(huán)境中的操作系統(tǒng)轉(zhuǎn)變的技術(shù)
[0001]相關(guān)美國(guó)專利申請(qǐng)的交叉引用
本申請(qǐng)要求2014年2月6日提交的題為“DEEP CACHING OF TRANSIT1NS IN DUAL OSENVIRONMENTS”的美國(guó)臨時(shí)申請(qǐng)序列號(hào)61/936,610以及2014年6月26日提交的題為“TECHNOLOGIES FOR OPERATING SYSTEM TRANSIT1NS IN MULTIPLE-OPERATING-SYSTEMENVIRONMENTS”的美國(guó)實(shí)用新型專利申請(qǐng)序列號(hào)14/316,370的優(yōu)先權(quán)。
【背景技術(shù)】
[0002]—些計(jì)算設(shè)備裝載有由制造商安裝的多個(gè)操作系統(tǒng)(OS)。例如,計(jì)算設(shè)備可以包括諸如Microsoft ? Windows?之類的通用操作系統(tǒng)以及諸如Android?之類的面向移動(dòng)設(shè)備的操作系統(tǒng)二者。典型計(jì)算設(shè)備可以在雙啟動(dòng)或多啟動(dòng)配置中支持多個(gè)操作系統(tǒng)。然而,在多啟動(dòng)配置中的操作系統(tǒng)之間的轉(zhuǎn)換可能是冗長(zhǎng)的并且典型地要求(多個(gè))未使用操作系統(tǒng)關(guān)閉并丟失狀態(tài)。一些計(jì)算設(shè)備能夠基于一些事件(例如,系統(tǒng)事件或用戶發(fā)起的事件,諸如硬件按鈕按壓或軟件命令)而在不丟失活動(dòng)操作系統(tǒng)狀態(tài)的情況下在操作系統(tǒng)之間“切換(toggle)”。那些計(jì)算設(shè)備可以使用電力管理特征在操作系統(tǒng)之間切換,例如通過使活動(dòng)操作系統(tǒng)休眠到盤(例如通過進(jìn)入ACPI “S4”電力管理狀態(tài))。這樣的基于休眠的操作系統(tǒng)切換典型地稱為“S4切換”。
[0003]ACPI “S3”電力管理狀態(tài)允許計(jì)算設(shè)備進(jìn)入低供電狀態(tài)而同時(shí)留存易失性存儲(chǔ)器的內(nèi)容。許多最近的處理器、芯片組和片上系統(tǒng)(SoC)能夠?qū)崿F(xiàn)連接待機(jī)電力管理狀態(tài)而不是ACPI S3睡眠狀態(tài)。連接待機(jī)電力管理狀態(tài)可以允許那些計(jì)算設(shè)備執(zhí)行某些網(wǎng)絡(luò)任務(wù)而同時(shí)處于低供電狀態(tài)中。許多當(dāng)前的計(jì)算設(shè)備不能夠進(jìn)入S3睡眠狀態(tài)。附加地,如果計(jì)算設(shè)備被放置到S3模式中,則連接待機(jī)的電力利用益處可能丟失。
【附圖說明】
[0004]以示例的方式并且不以限制的方式在附圖中圖示了本文描述的概念。出于圖示的簡(jiǎn)單和清楚起見,在圖中圖示的元件未必按照比例繪制。在考慮適當(dāng)?shù)那闆r下,在各圖之間重復(fù)參考標(biāo)記以指示對(duì)應(yīng)或類似的元件。
[0005]圖1是用于在操作系統(tǒng)之間轉(zhuǎn)變的計(jì)算設(shè)備的至少一個(gè)實(shí)施例的簡(jiǎn)化框圖;
圖2是圖示了各種多個(gè)操作系統(tǒng)環(huán)境中的操作系統(tǒng)轉(zhuǎn)變性能的圖;
圖3是圖1的計(jì)算設(shè)備的環(huán)境的至少一個(gè)實(shí)施例的簡(jiǎn)化框圖;并且圖4是可以由圖1和3的計(jì)算設(shè)備執(zhí)行的用于在操作系統(tǒng)之間轉(zhuǎn)變的方法的至少一個(gè)實(shí)施例的簡(jiǎn)化流程圖。
【具體實(shí)施方式】
[0006]盡管本公開的概念易受各種修改和可替換形式,但是其具體實(shí)施例已經(jīng)在圖中以示例的方式示出并且將在本文中詳細(xì)地描述。然而,應(yīng)當(dāng)理解到,不意圖將本公開的概念限于所公開的特定形式,而是相反,本發(fā)明要覆蓋與本公開和隨附權(quán)利要求一致的所有修改、等同方案和可替換方案。
[0007]在說明書中對(duì)“一個(gè)實(shí)施例”、“實(shí)施例”、“說明性實(shí)施例”等的引用指示所描述的實(shí)施例可以包括特定特征、結(jié)構(gòu)或特性,但是每一個(gè)實(shí)施例可以或可以不必包括該特定特征、結(jié)構(gòu)或特性。此外,這樣的短語(yǔ)不必是指相同的實(shí)施例。另外,當(dāng)結(jié)合實(shí)施例描述特定特征、結(jié)構(gòu)或特性時(shí),主張的是,不管是否明確描述,與其它實(shí)施例結(jié)合地實(shí)現(xiàn)這樣的特征、結(jié)構(gòu)或特性是本領(lǐng)域技術(shù)人員所知曉的。附加地,應(yīng)當(dāng)領(lǐng)會(huì)到,包括在以“至少一個(gè)A、B和C”形式的列表中的項(xiàng)目可以意指(A) ; (B) ; (C) ; (A和B) ; (A和C) ; (B和C);或者(A、B和C)。類似地,以“A、B或C中的至少一個(gè)”形式列出的項(xiàng)目可以意指(A) ; (B) ; (C) ; (A和B) ; (A和C) ; (B和C);或者(A、B和C)。
[0008]所公開的實(shí)施例可以在一些情況下以硬件、固件、軟件或其任何組合實(shí)現(xiàn)。所公開的實(shí)施例還可以實(shí)現(xiàn)為由暫時(shí)性或非暫時(shí)性機(jī)器可讀(例如計(jì)算機(jī)可讀)存儲(chǔ)介質(zhì)承載或存儲(chǔ)于其上的指令,其可以由一個(gè)或多個(gè)處理器讀取和執(zhí)行。機(jī)器可讀存儲(chǔ)介質(zhì)可以體現(xiàn)為用于以由機(jī)器可讀的形式存儲(chǔ)或傳送信息的任何存儲(chǔ)設(shè)備、機(jī)構(gòu)或其它物理結(jié)構(gòu)(例如,易失性或非易失性存儲(chǔ)器、媒體盤或其它媒體設(shè)備)。
[0009]在圖中,可以以具體布置和/或次序示出一些結(jié)構(gòu)或方法特征。然而,應(yīng)當(dāng)領(lǐng)會(huì)到,可以不要求這樣的具體布置和/或次序。相反,在一些實(shí)施例中,這樣的特征可以以說明性圖中示出的不同方式和/或次序進(jìn)行布置。附加地,在特定圖中包括結(jié)構(gòu)或方法特征不意為暗示著在所有實(shí)施例中都要求這樣的特征,并且在一些實(shí)施例中可以不包括這樣的特征或者可以與其它特征組合這樣的特征。
[0010]現(xiàn)在參照?qǐng)D1,用于在多個(gè)操作系統(tǒng)之間轉(zhuǎn)變的說明性計(jì)算設(shè)備100包括處理器120、1/0子系統(tǒng)122、存儲(chǔ)器124和數(shù)據(jù)存儲(chǔ)設(shè)備130。在使用中,如下文所述,計(jì)算設(shè)備100配置成執(zhí)行多個(gè)操作系統(tǒng)。在一個(gè)操作系統(tǒng)的執(zhí)行期間,計(jì)算設(shè)備100監(jiān)視操作系統(tǒng)切換事件。操作系統(tǒng)切換事件可以例如響應(yīng)于用戶選擇(例如,軟件菜單選擇、預(yù)限定的按鍵、硬件按鈕按壓或任何其它用戶動(dòng)作)而生成。響應(yīng)于操作系統(tǒng)切換事件,計(jì)算設(shè)備100將活動(dòng)操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到存儲(chǔ)器124的預(yù)留區(qū)域并且隨后發(fā)動(dòng)另一操作系統(tǒng)。在隨后的操作系統(tǒng)執(zhí)行時(shí),計(jì)算設(shè)備100將狀態(tài)數(shù)據(jù)從存儲(chǔ)器124的預(yù)留區(qū)域復(fù)制到數(shù)據(jù)存儲(chǔ)設(shè)備130。將狀態(tài)數(shù)據(jù)復(fù)制到存儲(chǔ)器124可以減少在操作系統(tǒng)之間切換時(shí)所要求的存儲(chǔ)I/O量并且因而可以改進(jìn)性能,特別是對(duì)于具有相對(duì)慢或低帶寬數(shù)據(jù)存儲(chǔ)設(shè)備130的設(shè)備而言。附加地,將狀態(tài)數(shù)據(jù)復(fù)制到存儲(chǔ)器124可以通過能夠?qū)崿F(xiàn)連接待機(jī)電力管理狀態(tài)而不能夠?qū)崿F(xiàn)ACPIS3睡眠狀態(tài)的當(dāng)前計(jì)算設(shè)備來執(zhí)行。
[0011]現(xiàn)在參照?qǐng)D2,圖200圖示了可以利用本公開實(shí)現(xiàn)的操作系統(tǒng)切換性能增益。曲線202圖示了可以由使用S4切換(即進(jìn)入S4 ACPI休眠狀態(tài))的典型計(jì)算設(shè)備展現(xiàn)的切換性能。曲線202圖示了使用若干不同類型的數(shù)據(jù)存儲(chǔ)設(shè)備完成針對(duì)主存儲(chǔ)器的2千兆字節(jié)(2 GB)的S4切換所要求的時(shí)間。要求在典型的S4切換期間保存和/或恢復(fù)(restore)的平均數(shù)據(jù)量可以小于500兆字節(jié),但可以變化。S4切換時(shí)間可以反映存儲(chǔ)I/O的平均速度和在切換期間所招致的開銷加上約兩秒的轉(zhuǎn)換時(shí)間。如所圖示的,在一些實(shí)施例中,平均S4切換時(shí)間對(duì)于固態(tài)盤(SSD)可以是九秒,對(duì)于硬盤驅(qū)動(dòng)器(HDD)可以是十五秒,并且對(duì)于eMMC(嵌入式閃速介質(zhì))可以是十八秒。因而,對(duì)于使用諸如eMMC之類的較慢數(shù)據(jù)存儲(chǔ)設(shè)備的S4切換所要求的時(shí)間相比于使用SSD而言實(shí)際上可以加倍。然而,許多部署的計(jì)算設(shè)備包括較慢的數(shù)據(jù)存儲(chǔ)設(shè)備以減少成本。事實(shí)上,eMMC用在許多當(dāng)前的平板計(jì)算設(shè)備中。
[0012]曲線204圖示了根據(jù)本公開的可以由計(jì)算設(shè)備100實(shí)現(xiàn)的切換性能。曲線204圖示了針對(duì)2GB的活動(dòng)主存儲(chǔ)器124和若干不同類型的數(shù)據(jù)存儲(chǔ)設(shè)備130在操作系統(tǒng)之間切換可能要求的時(shí)間。類似于S4切換,要保存和/或恢復(fù)的平均數(shù)據(jù)量可以小于500兆字節(jié),但可以變化。如上文所述,操作系統(tǒng)切換時(shí)間可以反映存儲(chǔ)I/O的平均速度和切換期間的開銷加上約兩秒的轉(zhuǎn)換時(shí)間。如所圖示的,針對(duì)本公開的平均切換時(shí)間對(duì)于SSD可以是七秒,對(duì)于HDD可以是十秒,并且對(duì)于eMMC可以是八秒。因而,如圖2中所示,根據(jù)本公開的計(jì)算設(shè)備100相比于典型的S4切換而言可以改進(jìn)操作系統(tǒng)切換性能,特別是在使用較慢數(shù)據(jù)存儲(chǔ)設(shè)備130(諸如eMMC)時(shí)。
[0013]返回參照?qǐng)D1,計(jì)算設(shè)備100可以體現(xiàn)為能夠在操作系統(tǒng)之間轉(zhuǎn)變并且以其它方式執(zhí)行本文描述的功能的任何類型的設(shè)備。例如,計(jì)算設(shè)備100可以體現(xiàn)為(而非限制)膝上型計(jì)算機(jī)、筆記本計(jì)算機(jī)、平板計(jì)算機(jī)、智能電話、移動(dòng)計(jì)算設(shè)備、可穿戴計(jì)算設(shè)備、計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、工作站、服務(wù)器計(jì)算機(jī)、分布式計(jì)算系統(tǒng)、多處理器系統(tǒng)、消費(fèi)者電子設(shè)備、智能器具和/或能夠在操作系統(tǒng)之間轉(zhuǎn)變的任何其它計(jì)算設(shè)備。如圖1中所示,說明性的計(jì)算設(shè)備100包括處理器120、I/O子系統(tǒng)122、存儲(chǔ)器124和數(shù)據(jù)存儲(chǔ)設(shè)備130。當(dāng)然,在其它實(shí)施例中,計(jì)算設(shè)備100可以包括其它或附加的組件,諸如通常在平板計(jì)算機(jī)中找到的那些(例如各種輸入/輸出設(shè)備)。附加地,在一些實(shí)施例中,說明性組件中的一個(gè)或多個(gè)可以并入在另一組件中或者以其它方式形成另一組件的部分。例如,在一些實(shí)施例中,存儲(chǔ)器124或其部分可以并入在處理器120中。
[0014]處理器120可以體現(xiàn)為能夠執(zhí)行本文描述的功能的任何類型的處理器。例如,處理器可以體現(xiàn)為(多個(gè))單核或多核處理器、數(shù)字信號(hào)處理器、微控制器、或者其它處理器或處理/控制電路。類似地,存儲(chǔ)器124可以體現(xiàn)為能夠執(zhí)行本文描述的功能的任何類型的易失性或非易失性存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)裝置。存儲(chǔ)器124在活動(dòng)存儲(chǔ)器區(qū)域126和預(yù)留存儲(chǔ)器區(qū)域128中劃分。在操作中,存儲(chǔ)器124的活動(dòng)存儲(chǔ)器區(qū)域126可以存儲(chǔ)在計(jì)算設(shè)備100的操作期間使用的各種數(shù)據(jù)和軟件,這樣的操作系統(tǒng)、應(yīng)用、程序、庫(kù)和驅(qū)動(dòng)程序。預(yù)留存儲(chǔ)器區(qū)域128可以體現(xiàn)為從由計(jì)算系統(tǒng)、應(yīng)用或由計(jì)算設(shè)備100執(zhí)行的其它過程的一般使用劃分、保護(hù)、隔離或以其方式預(yù)留的存儲(chǔ)器124的任何部分。在一些實(shí)施例中,活動(dòng)存儲(chǔ)器區(qū)域126和預(yù)留存儲(chǔ)器區(qū)域128均可以包括存儲(chǔ)器124的一半。例如,在具有四千兆字節(jié)(4GB)的主存儲(chǔ)器124的實(shí)施例中,活動(dòng)存儲(chǔ)器區(qū)域126和預(yù)留存儲(chǔ)器區(qū)域128均可以占用兩千兆字節(jié)(2GB)。在其它實(shí)施例中,可以預(yù)留任何量的存儲(chǔ)器124。例如,在一些實(shí)施例中,預(yù)留存儲(chǔ)器區(qū)域128可以占用少于存儲(chǔ)器124的一半。
[0015]存儲(chǔ)器124經(jīng)由I/O子系統(tǒng)122通信地耦合到處理器120,1/0子系統(tǒng)122可以體現(xiàn)為促進(jìn)與處理器120、存儲(chǔ)器124和計(jì)算設(shè)備100的其它組件的輸入/輸出操作的電路和/或組件。例如,I/O子系統(tǒng)122可以體現(xiàn)為或以其它方式包括存儲(chǔ)器控制器集線器、輸入/輸出控制集線器、固件設(shè)備、通信鏈接(即點(diǎn)對(duì)點(diǎn)鏈接、總線鏈接、電線、電纜、光導(dǎo)、印刷電路板跡線等)和/或促進(jìn)輸入/輸出操作的其它組件和子系統(tǒng)。在一些實(shí)施例中,I/O子系統(tǒng)122可以形成片上系統(tǒng)(SoC)的部分并且連同處理器120、存儲(chǔ)器124和計(jì)算設(shè)備100的其它組件一起并入在單個(gè)集成電路芯片上。
[0016]數(shù)據(jù)存儲(chǔ)設(shè)備130可以體現(xiàn)為配置用于數(shù)據(jù)的短期或長(zhǎng)期存儲(chǔ)的任何類型的一個(gè)或多個(gè)設(shè)備,諸如例如存儲(chǔ)器設(shè)備和電路、存儲(chǔ)卡、硬盤驅(qū)動(dòng)器、固態(tài)驅(qū)動(dòng)器或其它數(shù)據(jù)存儲(chǔ)設(shè)備。在一些實(shí)施例中,數(shù)據(jù)存儲(chǔ)設(shè)備130可以體現(xiàn)為嵌入式閃速存儲(chǔ)器模塊,諸如eMMC。數(shù)據(jù)存儲(chǔ)設(shè)備130可以包含休眠文件132,其可以體現(xiàn)為用于在計(jì)算設(shè)備100處于低供電休眠狀態(tài)(例如ACPI S4狀態(tài))中時(shí)存儲(chǔ)設(shè)備狀態(tài)的數(shù)據(jù)存儲(chǔ)設(shè)備130的任何文件、文件系統(tǒng)、塊、分區(qū)或其它區(qū)段。例如,休眠文件132可以存儲(chǔ)存儲(chǔ)器124的內(nèi)容、處理器120的狀態(tài)和/或其它設(shè)備狀態(tài)。在一些實(shí)施例中,設(shè)備狀態(tài)可以被壓縮、消重(de-duplicate)或以其它方式處理以減少休眠文件132的大小。在從低供電休眠狀態(tài)喚醒之后,計(jì)算設(shè)備100可以將休眠文件132的內(nèi)容復(fù)制回到主存儲(chǔ)器124中以重新開始操作。
[0017]在一些實(shí)施例中,計(jì)算設(shè)備100還可以包括一個(gè)或多個(gè)外圍設(shè)備134。外圍設(shè)備134可以包括任何數(shù)目的附加輸入/輸出設(shè)備、接口設(shè)備和/或其它外圍設(shè)備。例如,在一些實(shí)施例中,外圍設(shè)備134可以包括顯示器、觸摸屏、圖形電路、鍵盤、鼠標(biāo)、揚(yáng)聲器系統(tǒng)、和/或其它輸入/輸出設(shè)備、接口設(shè)備和/或外圍設(shè)備。特別地,在一些實(shí)施例中,外圍設(shè)備134可以包括專用硬件按鈕或其它控制以在操作系統(tǒng)之間切換。
[0018]現(xiàn)在參照?qǐng)D3,在說明性實(shí)施例中,計(jì)算設(shè)備100在操作期間建立環(huán)境300。說明性實(shí)施例300包括存儲(chǔ)器預(yù)留模塊302、切換事件模塊304和數(shù)個(gè)操作系統(tǒng)306。說明性環(huán)境300包括兩個(gè)操作系統(tǒng)306a、306b;然而,在其它實(shí)施例中,可以包括任何數(shù)目的操作系統(tǒng)306。環(huán)境300的各種模塊和/或組件可以體現(xiàn)為硬件、固件、軟件或其組合。
[0019]存儲(chǔ)器預(yù)留模塊302配置成將存儲(chǔ)器124的部分預(yù)留為預(yù)留存儲(chǔ)器區(qū)域128。在預(yù)留之后,預(yù)留存儲(chǔ)器區(qū)域128可以不由任何操作系統(tǒng)306使用,并且在一些實(shí)施例中可以對(duì)于任何操作系統(tǒng)306而言不可見或不可訪問。在一些實(shí)施例中,存儲(chǔ)器預(yù)留模塊302可以由計(jì)算設(shè)備100的預(yù)啟動(dòng)固件執(zhí)行環(huán)境建立,諸如根據(jù)由UEFI論壇所發(fā)布的統(tǒng)一擴(kuò)展固件接口( “UEFI”)規(guī)范實(shí)現(xiàn)的預(yù)啟動(dòng)固件執(zhí)行環(huán)境。
[0020]切換事件模塊304配置成在任何操作系統(tǒng)306的執(zhí)行期間接收操作系統(tǒng)切換事件。切換事件模塊304還配置成在已經(jīng)將活動(dòng)操作系統(tǒng)306的狀態(tài)數(shù)據(jù)復(fù)制到預(yù)留存儲(chǔ)器區(qū)域128之后執(zhí)行另一操作系統(tǒng)306。例如,在說明性實(shí)施例中,切換事件模塊304可以在已經(jīng)將操作系統(tǒng)306a的狀態(tài)數(shù)據(jù)復(fù)制到預(yù)留存儲(chǔ)器區(qū)域128之后執(zhí)行操作系統(tǒng)306b。盡管被圖示為單個(gè)切換事件模塊304,但是在一些實(shí)施例中,環(huán)境300可以包括若干補(bǔ)充的切換事件模塊304,例如針對(duì)每一個(gè)操作系統(tǒng)306—個(gè)切換事件模塊304。
[0021]每一個(gè)操作系統(tǒng)306可以體現(xiàn)為計(jì)算設(shè)備100的任何操作系統(tǒng)、虛擬機(jī)監(jiān)視器、管理程序或其它控制結(jié)構(gòu)。例如,操作系統(tǒng)306a可以體現(xiàn)為Microsoft ? Windows?并且操作系統(tǒng)306b可以體現(xiàn)為Android?。每一個(gè)操作系統(tǒng)306包括預(yù)留復(fù)制模塊308和寫出模塊310。預(yù)留復(fù)制模塊308和寫出模塊310中的每一個(gè)可以體現(xiàn)為驅(qū)動(dòng)器、過程、可加載模塊、或者由操作系統(tǒng)306執(zhí)行的其它組件。
[0022]每一個(gè)預(yù)留復(fù)制模塊308配置成將相關(guān)聯(lián)的操作系統(tǒng)306的狀態(tài)數(shù)據(jù)復(fù)制到預(yù)留存儲(chǔ)器區(qū)域128。狀態(tài)數(shù)據(jù)可以包括存儲(chǔ)器124的活動(dòng)內(nèi)容;也就是說,不包括在預(yù)留存儲(chǔ)器區(qū)域128中的存儲(chǔ)器124的部分。每一個(gè)寫出模塊310配置成將預(yù)留存儲(chǔ)器區(qū)域128的內(nèi)容復(fù)制到數(shù)據(jù)存儲(chǔ)設(shè)備130。寫出模塊310可以在響應(yīng)于操作系統(tǒng)切換事件而發(fā)動(dòng)相關(guān)聯(lián)的操作系統(tǒng)306之后向數(shù)據(jù)存儲(chǔ)設(shè)備130寫入。寫出模塊310可以在相關(guān)聯(lián)的操作系統(tǒng)306執(zhí)行用戶應(yīng)用時(shí)向數(shù)據(jù)存儲(chǔ)設(shè)備130寫入。
[0023]現(xiàn)在參照?qǐng)D4,在使用中,計(jì)算設(shè)備100可以執(zhí)行用于在操作系統(tǒng)306之間切換的方法400。方法400在框402中開始,其中計(jì)算設(shè)備100對(duì)預(yù)留存儲(chǔ)器區(qū)域128進(jìn)行預(yù)留免于由任何操作系統(tǒng)306使用。計(jì)算設(shè)備100可以使用任何技術(shù)來保護(hù)、劃分、隔離或以其它方式防止操作系統(tǒng)306使用預(yù)留存儲(chǔ)器區(qū)域128。在一些實(shí)施例中,計(jì)算設(shè)備100的預(yù)啟動(dòng)固件環(huán)境可以對(duì)預(yù)留存儲(chǔ)器區(qū)域128進(jìn)行預(yù)留。例如,預(yù)啟動(dòng)固件可以將一個(gè)或多個(gè)系統(tǒng)表導(dǎo)出到操作系統(tǒng)306,從而指示計(jì)算設(shè)備100包含比存儲(chǔ)器124中實(shí)際所包括的量少的存儲(chǔ)器。在該示例中,預(yù)留存儲(chǔ)器區(qū)域128可以體現(xiàn)為未由系統(tǒng)表描述的存儲(chǔ)器124的上部存儲(chǔ)器區(qū)段。
[0024]在框404中,計(jì)算設(shè)備100執(zhí)行操作系統(tǒng)306之一,其說明性地稱為操作系統(tǒng)306a。要執(zhí)行的特定操作系統(tǒng)306a可以基于初始啟動(dòng)過程期間的用戶選擇、基于計(jì)算設(shè)備100的默認(rèn)策略或者基于任何其它適當(dāng)?shù)臏?zhǔn)則來確定。在操作系統(tǒng)306a的執(zhí)行期間,計(jì)算設(shè)備100可以執(zhí)行如由用戶引導(dǎo)的一個(gè)或多個(gè)應(yīng)用?;顒?dòng)操作系統(tǒng)306a、應(yīng)用和任何相關(guān)聯(lián)的狀態(tài)數(shù)據(jù)駐留在活動(dòng)存儲(chǔ)器區(qū)域126中,也就是說,在未包括于預(yù)留存儲(chǔ)器區(qū)域128中的存儲(chǔ)器124的部分中。
[0025]在框406中,計(jì)算設(shè)備100監(jiān)視操作系統(tǒng)切換事件。操作系統(tǒng)切換事件可以體現(xiàn)為使操作系統(tǒng)100轉(zhuǎn)換執(zhí)行到不同操作系統(tǒng)306的任何事件。在一些實(shí)施例中,操作系統(tǒng)切換事件可以由用戶選擇生成。例如,用戶選擇可以體現(xiàn)為軟件接口中的用戶選擇、預(yù)限定的按鍵或鍵組合、硬件按鈕按壓或者其它用戶生成的事件。在一些實(shí)施例中,操作系統(tǒng)切換事件可以由系統(tǒng)事件在沒有用戶干預(yù)的情況下(例如,響應(yīng)于來自設(shè)備驅(qū)動(dòng)器的請(qǐng)求、后臺(tái)軟件過程或其它非交互式過程)生成。在框408中,計(jì)算設(shè)備100確定是否已經(jīng)接收到操作系統(tǒng)切換事件。如果否,則方法400循環(huán)回到框406以繼續(xù)監(jiān)視操作系統(tǒng)切換事件。如果接收到操作系統(tǒng)切換事件,則方法400前進(jìn)到框410。
[0026]在框410中,計(jì)算設(shè)備100將活動(dòng)操作系統(tǒng)306a的狀態(tài)數(shù)據(jù)從活動(dòng)存儲(chǔ)器區(qū)域126復(fù)制到預(yù)留存儲(chǔ)器區(qū)域128。在一些實(shí)施例中,計(jì)算設(shè)備100可以將所有的活動(dòng)存儲(chǔ)器區(qū)域126復(fù)制到預(yù)留存儲(chǔ)器區(qū)域128(例如,當(dāng)活動(dòng)存儲(chǔ)器區(qū)域126和預(yù)留存儲(chǔ)器區(qū)域128均占用總存儲(chǔ)器124的一半時(shí))。附加地或可替換地,計(jì)算設(shè)備100可以僅復(fù)制活動(dòng)存儲(chǔ)器區(qū)域126的部分,例如僅復(fù)制限定活動(dòng)操作系統(tǒng)306a的狀態(tài)的活動(dòng)存儲(chǔ)器區(qū)域126的內(nèi)容。在一些實(shí)施例中,計(jì)算設(shè)備100可以壓縮、消重或以其它方式減少對(duì)于將活動(dòng)操作系統(tǒng)306a的狀態(tài)復(fù)制到預(yù)留存儲(chǔ)器區(qū)域128所要求的數(shù)據(jù)量。計(jì)算設(shè)備100可以替換預(yù)留存儲(chǔ)器區(qū)域128的內(nèi)容,或者在一些實(shí)施例中可以對(duì)預(yù)留存儲(chǔ)器區(qū)域128的一些或所有內(nèi)容進(jìn)行保留,這取決于活動(dòng)操作系統(tǒng)306a的狀態(tài)數(shù)據(jù)量、預(yù)留存儲(chǔ)器區(qū)域128中的可用空間或其它因素。因而,在一些實(shí)施例中,預(yù)留存儲(chǔ)器區(qū)域128可以存儲(chǔ)用于一個(gè)或多個(gè)操作系統(tǒng)306的狀態(tài)數(shù)據(jù),這可以進(jìn)一步改進(jìn)切換性能。
[0027]在一些實(shí)施例中,在框412中,計(jì)算設(shè)備100可以攔截指向休眠文件132的一個(gè)或多個(gè)I/O操作。那些I/O操作可以由計(jì)算設(shè)備100在進(jìn)入低電力休眠電力管理狀態(tài)(例如ACPIS4狀態(tài))時(shí)生成。在攔截I/O操作之后,計(jì)算設(shè)備100可以將I/O操作路由到預(yù)留存儲(chǔ)器區(qū)域128而不是休眠文件132。例如,在一些實(shí)施例中,操作系統(tǒng)306a的存儲(chǔ)驅(qū)動(dòng)器堆疊可以包括攔截I/O操作并將I/O操作從休眠文件132重新路由到預(yù)留存儲(chǔ)器區(qū)域128的過濾器驅(qū)動(dòng)器。附加地或可替換地,在一些實(shí)施例中,計(jì)算設(shè)備100可以建立固件驅(qū)動(dòng)器以攔截I/O操作。因而,計(jì)算設(shè)備100可以透明地將操作系統(tǒng)306a的狀態(tài)存儲(chǔ)到預(yù)留存儲(chǔ)器區(qū)域128,而不是如在典型的休眠電力管理狀態(tài)中那樣將操作系統(tǒng)306a的狀態(tài)保存到數(shù)據(jù)存儲(chǔ)設(shè)備130。因而,計(jì)算設(shè)備100可以將操作系統(tǒng)306a的狀態(tài)存儲(chǔ)到預(yù)留存儲(chǔ)器區(qū)域128而不要求對(duì)操作系統(tǒng)306a的任何特定修改。
[0028]在框414中,計(jì)算設(shè)備100加載另一操作系統(tǒng)306b。如上文所述,要執(zhí)行的特定操作系統(tǒng)306b可以基于用戶選擇、基于計(jì)算設(shè)備100的默認(rèn)策略或者基于任何其它適當(dāng)?shù)臏?zhǔn)則來確定。在一些實(shí)施例中,在框416中,計(jì)算設(shè)備100可以從休眠文件132加載另一操作系統(tǒng)306b。例如,如果另一操作系統(tǒng)306b之前已經(jīng)由計(jì)算設(shè)備100執(zhí)行,則另一操作系統(tǒng)306b的狀態(tài)可能已經(jīng)響應(yīng)于之前的操作系統(tǒng)切換事件而存儲(chǔ)在休眠文件132中。從休眠文件132加載另一操作系統(tǒng)306b的狀態(tài)可能向操作系統(tǒng)切換中引入一些延遲時(shí)間。然而,因?yàn)樵S多數(shù)據(jù)存儲(chǔ)設(shè)備130具有與數(shù)據(jù)寫入速度相比高得多的數(shù)據(jù)讀取速度,所以操作系統(tǒng)切換性能可以保持為可接受的。例如,eMMC嵌入式閃速存儲(chǔ)器模塊可以典型地支持是寫入速度三倍的讀取速度。如上文所述,在一些實(shí)施例中,計(jì)算設(shè)備100還可以之前已經(jīng)將操作系統(tǒng)306b的狀態(tài)數(shù)據(jù)存儲(chǔ)在預(yù)留存儲(chǔ)器區(qū)域128的部分中。從預(yù)留存儲(chǔ)器區(qū)域128(如果可用的話)加載另一操作系統(tǒng)306b的狀態(tài)可以進(jìn)一步減少操作系統(tǒng)切換的延遲時(shí)間。
[0029]在加載另一操作系統(tǒng)306b之后,方法400的執(zhí)行同時(shí)進(jìn)行到框418和420。在框418中,計(jì)算設(shè)備100執(zhí)行另一操作系統(tǒng)306b。如上文結(jié)合框404所述,在另一操作系統(tǒng)306b的執(zhí)行期間,計(jì)算設(shè)備100可以執(zhí)行如由用戶引導(dǎo)的一個(gè)或多個(gè)應(yīng)用。另一操作系統(tǒng)306b可以占用之前由操作系統(tǒng)306a占用的所有或部分的活動(dòng)存儲(chǔ)器區(qū)域126。
[0030]在框420中,計(jì)算設(shè)備100將預(yù)留存儲(chǔ)器區(qū)域128的內(nèi)容寫入到數(shù)據(jù)存儲(chǔ)設(shè)備130。在一些實(shí)施例中,在框422中,計(jì)算設(shè)備100可以將預(yù)留存儲(chǔ)器區(qū)域128的內(nèi)容寫入到休眠文件132。計(jì)算設(shè)備100與另一操作系統(tǒng)306b的執(zhí)行同時(shí)期地向數(shù)據(jù)存儲(chǔ)設(shè)備130寫入。例如,計(jì)算設(shè)備100可以使用內(nèi)核驅(qū)動(dòng)器、內(nèi)核線程、用戶過程、用戶線程、或者能夠與由另一操作系統(tǒng)306b執(zhí)行的其它過程同時(shí)地執(zhí)行的其它實(shí)體來向數(shù)據(jù)存儲(chǔ)設(shè)備130寫入。在一些實(shí)施例中,計(jì)算設(shè)備100可以在后臺(tái)或者在計(jì)算設(shè)備100以其它方式空閑時(shí)向數(shù)據(jù)存儲(chǔ)設(shè)備130寫入。例如,計(jì)算設(shè)備100可以在僅在沒有其它過程或線程(除系統(tǒng)空閑線程或類似空閑線程之外)是活動(dòng)時(shí)執(zhí)行的低優(yōu)先級(jí)過程或線程中向數(shù)據(jù)存儲(chǔ)設(shè)備130寫入。因而,向數(shù)據(jù)存儲(chǔ)設(shè)備130的寫入可以對(duì)于計(jì)算設(shè)備100的用戶而言是感覺不到的。因而,可以從用戶隱藏與操作系統(tǒng)切換相關(guān)聯(lián)的轉(zhuǎn)移時(shí)間和其它延遲時(shí)間。如上文所述,隱藏寫入延遲時(shí)間可以極大地改進(jìn)切換性能,這是因?yàn)樵S多數(shù)據(jù)存儲(chǔ)設(shè)備130提供與讀取速度相比慢的寫入速度。在一些實(shí)施例中,計(jì)算設(shè)備100可以禁用、掩蔽或以其它方式防止另外的操作系統(tǒng)切換事件而同時(shí)將預(yù)留存儲(chǔ)器區(qū)域128的內(nèi)容復(fù)制到數(shù)據(jù)存儲(chǔ)設(shè)備130。
[0031]在完成預(yù)留存儲(chǔ)器區(qū)域128的內(nèi)容向數(shù)據(jù)存儲(chǔ)設(shè)備130的復(fù)制之后,方法400循環(huán)回到框404,其中另一操作系統(tǒng)306b繼續(xù)執(zhí)行。因而,在完成復(fù)制之后,計(jì)算設(shè)備100可以監(jiān)視另外的操作系統(tǒng)切換事件并對(duì)其做出響應(yīng),從而允許用戶在操作系統(tǒng)306之間來回切換。
[0032]示例
在下文提供本文公開的技術(shù)的說明性示例。技術(shù)的實(shí)施例可以包括以下描述的示例中的任何一個(gè)或多個(gè)以及其任何組合。
[0033]示例I包括一種用于在操作系統(tǒng)之間轉(zhuǎn)變的計(jì)算設(shè)備,該計(jì)算設(shè)備包括主存儲(chǔ)器,其包括預(yù)留存儲(chǔ)器區(qū)域;數(shù)據(jù)存儲(chǔ)設(shè)備;以及切換事件模塊,其通過計(jì)算設(shè)備在第一操作系統(tǒng)的執(zhí)行期間接收操作系統(tǒng)切換事件以引起從第一操作系統(tǒng)向第二操作系統(tǒng)的轉(zhuǎn)變;其中第一操作系統(tǒng)包括響應(yīng)于接收到操作系統(tǒng)切換事件而將第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到預(yù)留存儲(chǔ)器區(qū)域的第一預(yù)留復(fù)制模塊;第二操作系統(tǒng)包括在第二操作系統(tǒng)的執(zhí)行期間將第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到數(shù)據(jù)存儲(chǔ)設(shè)備的第一寫出模塊;并且切換事件模塊還響應(yīng)于狀態(tài)數(shù)據(jù)向預(yù)留存儲(chǔ)器區(qū)域的復(fù)制而執(zhí)行第二操作系統(tǒng)。
[0034]示例2包括示例I的主題,并且其中切換事件模塊還在第二操作系統(tǒng)的執(zhí)行期間接收第二操作系統(tǒng)切換事件;第二操作系統(tǒng)還包括響應(yīng)于接收到第二操作系統(tǒng)切換事件而將第二操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到預(yù)留存儲(chǔ)器模塊的第二預(yù)留復(fù)制模塊;切換事件模塊還響應(yīng)于第二操作系統(tǒng)的狀態(tài)數(shù)據(jù)的復(fù)制而第二次執(zhí)行第一操作系統(tǒng);并且第一操作系統(tǒng)還包括在第一操作系統(tǒng)的第二執(zhí)行期間將第二操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到數(shù)據(jù)存儲(chǔ)設(shè)備的第二寫出模塊。
[0035]示例3包括示例I和2中任一項(xiàng)的主題,并且其中接收操作系統(tǒng)切換事件包括響應(yīng)于系統(tǒng)事件而接收操作系統(tǒng)切換事件。
[0036]示例4包括示例1-3中任一項(xiàng)的主題,并且其中接收操作系統(tǒng)切換事件包括響應(yīng)于用戶選擇而接收操作系統(tǒng)切換事件。
[0037]示例5包括示例1-4中任一項(xiàng)的主題,并且其中接收操作系統(tǒng)切換事件包括接收硬件切換選擇。
[0038]示例6包括示例1-5中任一項(xiàng)的主題,并且其中接收操作系統(tǒng)切換事件包括接收軟件切換選擇。
[0039]示例7包括示例1-6中任一項(xiàng)的主題,并且其中切換事件模塊還響應(yīng)于接收到操作系統(tǒng)切換事件而使計(jì)算設(shè)備進(jìn)入休眠電力管理狀態(tài)。
[0040]示例8包括示例1-7中任一項(xiàng)的主題,并且其中將第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到預(yù)留存儲(chǔ)器區(qū)域包括攔截指向數(shù)據(jù)存儲(chǔ)設(shè)備的一個(gè)或多個(gè)I/O操作;以及將一個(gè)或多個(gè)I/O操作路由到預(yù)留存儲(chǔ)器區(qū)域。
[0041]示例9包括示例1-8中任一項(xiàng)的主題,并且其中攔截一個(gè)或多個(gè)I/O操作包括攔截指向由數(shù)據(jù)存儲(chǔ)設(shè)備存儲(chǔ)的休眠文件的一個(gè)或多個(gè)I/O操作。
[0042]示例10包括示例1-9中任一項(xiàng)的主題,并且其中攔截一個(gè)或多個(gè)I/O操作包括使用第一操作系統(tǒng)的過濾器驅(qū)動(dòng)器來攔截一個(gè)或多個(gè)I/O操作。
[0043]示例11包括示例1-10中任一項(xiàng)的主題,并且其中執(zhí)行第二操作系統(tǒng)包括從由數(shù)據(jù)存儲(chǔ)設(shè)備存儲(chǔ)的休眠文件加載第二操作系統(tǒng)。
[0044]示例12包括示例1-11中任一項(xiàng)的主題,并且其中第二操作系統(tǒng)還與第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)向數(shù)據(jù)存儲(chǔ)設(shè)備的復(fù)制同時(shí)期地執(zhí)行應(yīng)用。
[0045]示例13包括示例1-12中任一項(xiàng)的主題,并且其中將第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到數(shù)據(jù)存儲(chǔ)設(shè)備還包括在計(jì)算設(shè)備空閑時(shí)復(fù)制狀態(tài)數(shù)據(jù)。
[0046]示例14包括示例1-13中任一項(xiàng)的主題,并且其中數(shù)據(jù)存儲(chǔ)設(shè)備包括硬盤驅(qū)動(dòng)器、固態(tài)驅(qū)動(dòng)器或嵌入式閃速存儲(chǔ)器模塊。
[0047]示例15包括示例1-14中任一項(xiàng)的主題,并且還包括在執(zhí)行第一操作系統(tǒng)之前將主存儲(chǔ)器的部分預(yù)留為預(yù)留存儲(chǔ)器區(qū)域的存儲(chǔ)器預(yù)留模塊。
[0048]示例16包括示例1-15中任一項(xiàng)的主題,并且其中預(yù)留存儲(chǔ)器的部分包括使用計(jì)算設(shè)備的固件來預(yù)留存儲(chǔ)器的部分。
[0049]示例17包括一種用于在操作系統(tǒng)之間轉(zhuǎn)變的方法,該方法包括通過計(jì)算設(shè)備執(zhí)行計(jì)算設(shè)備的第一操作系統(tǒng);通過計(jì)算設(shè)備在執(zhí)行第一操作系統(tǒng)時(shí)接收操作系統(tǒng)切換事件;通過計(jì)算設(shè)備響應(yīng)于接收到操作系統(tǒng)切換事件而將第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到計(jì)算設(shè)備的預(yù)留存儲(chǔ)器區(qū)域;通過計(jì)算設(shè)備響應(yīng)于將狀態(tài)數(shù)據(jù)復(fù)制到預(yù)留存儲(chǔ)器區(qū)域而執(zhí)行計(jì)算設(shè)備的第二操作系統(tǒng);以及通過計(jì)算設(shè)備響應(yīng)于執(zhí)行第二操作系統(tǒng)而將第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到計(jì)算設(shè)備的數(shù)據(jù)存儲(chǔ)設(shè)備。
[0050]示例18包括示例17的主題,并且還包括通過計(jì)算設(shè)備在執(zhí)行第二操作系統(tǒng)時(shí)接收第二操作系統(tǒng)切換事件;通過計(jì)算設(shè)備響應(yīng)于接收到第二操作系統(tǒng)切換事件而將第二操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到預(yù)留存儲(chǔ)器區(qū)域;通過計(jì)算設(shè)備響應(yīng)于復(fù)制第二操作系統(tǒng)的狀態(tài)數(shù)據(jù)而第二次執(zhí)行第一操作系統(tǒng);以及通過計(jì)算設(shè)備響應(yīng)于第二次執(zhí)行第一操作系統(tǒng)而將第二操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到數(shù)據(jù)存儲(chǔ)設(shè)備。
[0051]示例19包括示例17和18中任一項(xiàng)的主題,并且其中接收操作系統(tǒng)切換事件包括響應(yīng)于系統(tǒng)事件而接收操作系統(tǒng)切換事件。
[°°52]示例20包括示例17-19中任一項(xiàng)的主題,并且其中接收操作系統(tǒng)切換事件包括響應(yīng)于用戶選擇而接收操作系統(tǒng)切換事件。
[0053]示例21包括示例17-20中任一項(xiàng)的主題,并且其中接收操作系統(tǒng)切換事件包括接收硬件切換選擇。
[0054]示例22包括示例17-21中任一項(xiàng)的主題,并且其中接收操作系統(tǒng)切換事件包括接收軟件切換選擇。
[°°55] 示例23包括示例17-22中任一項(xiàng)的主題,并且還包括通過計(jì)算設(shè)備響應(yīng)于接收到操作系統(tǒng)切換事件而進(jìn)入休眠電力管理狀態(tài)。
[0056]示例24包括示例17-23中任一項(xiàng)的主題,并且其中將第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到預(yù)留存儲(chǔ)器區(qū)域包括:攔截指向數(shù)據(jù)存儲(chǔ)設(shè)備的一個(gè)或多個(gè)I/o操作;以及將一個(gè)或多個(gè)I/o操作路由到預(yù)留存儲(chǔ)器區(qū)域。
[0057]示例25包括示例17-24中任一項(xiàng)的主題,并且其中攔截一個(gè)或多個(gè)I/O操作包括攔截指向由數(shù)據(jù)存儲(chǔ)設(shè)備存儲(chǔ)的休眠文件的一個(gè)或多個(gè)I/o操作。
[0058]示例26包括示例17-25中任一項(xiàng)的主題,并且其中攔截一個(gè)或多個(gè)I/O操作包括使用第一操作系統(tǒng)的過濾器驅(qū)動(dòng)器來攔截一個(gè)或多個(gè)I/o操作。
[0059]示例27包括示例17-26中任一項(xiàng)的主題,并且其中執(zhí)行第二操作系統(tǒng)包括從由數(shù)據(jù)存儲(chǔ)設(shè)備存儲(chǔ)的休眠文件加載第二操作系統(tǒng)。
[0060]示例28包括示例17-27中任一項(xiàng)的主題,并且其中將第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到數(shù)據(jù)存儲(chǔ)設(shè)備包括與執(zhí)行第二操作系統(tǒng)同時(shí)期地復(fù)制第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)。
[0061]示例29包括示例17-28中任一項(xiàng)的主題,并且其中執(zhí)行第二操作系統(tǒng)包括與將第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到數(shù)據(jù)存儲(chǔ)設(shè)備同時(shí)期地執(zhí)行應(yīng)用。
[0062]示例30包括示例17-29中任一項(xiàng)的主題,并且其中將第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到數(shù)據(jù)存儲(chǔ)設(shè)備還包括在計(jì)算設(shè)備空閑時(shí)復(fù)制狀態(tài)數(shù)據(jù)。
[0063]示例31包括示例17-30中任一項(xiàng)的主題,并且其中將第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到數(shù)據(jù)存儲(chǔ)設(shè)備包括將第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到計(jì)算設(shè)備的硬盤驅(qū)動(dòng)器、固態(tài)驅(qū)動(dòng)器或嵌入式閃速存儲(chǔ)器模塊。
[0064]示例32包括示例17-31中任一項(xiàng)的主題,并且還包括通過計(jì)算設(shè)備在執(zhí)行第一操作系統(tǒng)之前將計(jì)算設(shè)備的存儲(chǔ)器的部分預(yù)留為預(yù)留存儲(chǔ)器區(qū)域。
[0065]示例33包括示例17-32中任一項(xiàng)的主題,并且其中預(yù)留存儲(chǔ)器的部分包括使用計(jì)算設(shè)備的固件來預(yù)留存儲(chǔ)器的部分。
[0066]示例34包括一種計(jì)算設(shè)備,其包括處理器;以及在其中存儲(chǔ)多個(gè)指令的存儲(chǔ)器,所述指令在由處理器執(zhí)行時(shí)使計(jì)算設(shè)備執(zhí)行示例17-33中任一項(xiàng)的方法。
[0067]示例35包括一種或多種機(jī)器可讀存儲(chǔ)介質(zhì),其包括存儲(chǔ)在其上的多個(gè)指令,所述指令響應(yīng)于被執(zhí)行而導(dǎo)致計(jì)算設(shè)備執(zhí)行示例17-33中任一項(xiàng)的方法。
[0068]示例36包括一種計(jì)算設(shè)備,其包括用于執(zhí)行示例17-33中任一項(xiàng)的方法的構(gòu)件(means)ο
[0069]示例37包括一種用于在操作系統(tǒng)之間轉(zhuǎn)變的計(jì)算設(shè)備,該計(jì)算設(shè)備包括用于執(zhí)行計(jì)算設(shè)備的第一操作系統(tǒng)的構(gòu)件;用于在執(zhí)行第一操作系統(tǒng)時(shí)接收操作系統(tǒng)切換事件的構(gòu)件;用于響應(yīng)于接收到操作系統(tǒng)切換事件而將第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到計(jì)算設(shè)備的預(yù)留存儲(chǔ)器區(qū)域的構(gòu)件;用于響應(yīng)于將狀態(tài)數(shù)據(jù)復(fù)制到預(yù)留存儲(chǔ)器區(qū)域而執(zhí)行計(jì)算設(shè)備的第二操作系統(tǒng)的構(gòu)件;以及用于響應(yīng)于執(zhí)行第二操作系統(tǒng)而將第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到計(jì)算設(shè)備的數(shù)據(jù)存儲(chǔ)設(shè)備的構(gòu)件。
[0070]示例38包括示例27的主題,并且還包括用于在執(zhí)行第二操作系統(tǒng)時(shí)接收第二操作系統(tǒng)切換事件的構(gòu)件;用于響應(yīng)于接收到第二操作系統(tǒng)切換事件而將第二操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到預(yù)留存儲(chǔ)器區(qū)域的構(gòu)件;用于響應(yīng)于復(fù)制第二操作系統(tǒng)的狀態(tài)數(shù)據(jù)而第二次執(zhí)行第一操作系統(tǒng)的構(gòu)件;以及用于響應(yīng)于第二次執(zhí)行第一操作系統(tǒng)而將第二操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到數(shù)據(jù)存儲(chǔ)設(shè)備的構(gòu)件。
[0071]示例39包括示例37和38中任一項(xiàng)的主題,并且其中用于接收操作系統(tǒng)切換事件的構(gòu)件包括用于響應(yīng)于系統(tǒng)事件而接收操作系統(tǒng)切換事件的構(gòu)件。
[0072]示例40包括示例37-39中任一項(xiàng)的主題,并且其中用于接收操作系統(tǒng)切換事件的構(gòu)件包括用于響應(yīng)于用戶選擇而接收操作系統(tǒng)切換事件的構(gòu)件。
[0073]示例41包括示例37-40中任一項(xiàng)的主題,并且其中用于接收操作系統(tǒng)切換事件的構(gòu)件包括用于接收硬件切換選擇的構(gòu)件。
[0074]示例42包括示例37-41中任一項(xiàng)的主題,并且其中用于接收操作系統(tǒng)切換事件的構(gòu)件包括用于接收軟件切換選擇的構(gòu)件。
[0075]示例43包括示例37-42中任一項(xiàng)的主題,并且還包括用于響應(yīng)于接收到操作系統(tǒng)切換事件而進(jìn)入休眠電力管理狀態(tài)的構(gòu)件。
[0076]示例44包括示例37-43中任一項(xiàng)的主題,并且其中用于將第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到預(yù)留存儲(chǔ)器區(qū)域的構(gòu)件包括用于攔截指向數(shù)據(jù)存儲(chǔ)設(shè)備的一個(gè)或多個(gè)I/O操作的構(gòu)件;以及用于將一個(gè)或多個(gè)I/o操作路由到預(yù)留存儲(chǔ)器區(qū)域的構(gòu)件。
[0077]示例45包括示例37-44中任一項(xiàng)的主題,并且其中用于攔截一個(gè)或多個(gè)I/O操作的構(gòu)件包括用于攔截指向由數(shù)據(jù)存儲(chǔ)設(shè)備存儲(chǔ)的休眠文件的一個(gè)或多個(gè)I/o操作的構(gòu)件。
[0078]示例46包括示例37-45中任一項(xiàng)的主題,并且其中用于攔截一個(gè)或多個(gè)I/O操作的構(gòu)件包括用于使用第一操作系統(tǒng)的過濾器驅(qū)動(dòng)器來攔截一個(gè)或多個(gè)I/o操作的構(gòu)件。
[0079]示例47包括示例37-46中任一項(xiàng)的主題,并且其中用于執(zhí)行第二操作系統(tǒng)的構(gòu)件包括用于從由數(shù)據(jù)存儲(chǔ)設(shè)備存儲(chǔ)的休眠文件加載第二操作系統(tǒng)的構(gòu)件。
[0080]示例48包括示例37-47中任一項(xiàng)的主題,并且其中用于將第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到數(shù)據(jù)存儲(chǔ)設(shè)備的構(gòu)件包括用于與執(zhí)行第二操作系統(tǒng)同時(shí)期地復(fù)制第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)的構(gòu)件。
[0081]示例49包括示例37-48中任一項(xiàng)的主題,并且其中用于執(zhí)行第二操作系統(tǒng)的構(gòu)件包括用于與將第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到數(shù)據(jù)存儲(chǔ)設(shè)備同時(shí)期地執(zhí)行應(yīng)用的構(gòu)件。
[0082]示例50包括示例37-49中任一項(xiàng)的主題,并且其中用于將第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到數(shù)據(jù)存儲(chǔ)設(shè)備的構(gòu)件還包括用于在計(jì)算設(shè)備空閑時(shí)復(fù)制狀態(tài)數(shù)據(jù)的構(gòu)件。
[0083]示例51包括示例37-50中任一項(xiàng)的主題,并且其中用于將第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到數(shù)據(jù)存儲(chǔ)設(shè)備的構(gòu)件包括用于將第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到計(jì)算設(shè)備的硬盤驅(qū)動(dòng)器、固態(tài)驅(qū)動(dòng)器或嵌入式閃速存儲(chǔ)器模塊的構(gòu)件。
[0084]示例52包括示例37-51中任一項(xiàng)的主題,并且還包括用于在執(zhí)行第一操作系統(tǒng)之前將計(jì)算設(shè)備的存儲(chǔ)器的部分預(yù)留為預(yù)留存儲(chǔ)器區(qū)域的構(gòu)件。
[0085]示例53包括示例37-52中任一項(xiàng)的主題,并且其中用于預(yù)留存儲(chǔ)器的部分的構(gòu)件包括用于使用計(jì)算設(shè)備的固件來預(yù)留存儲(chǔ)器的部分的構(gòu)件。
【主權(quán)項(xiàng)】
1.一種用于在操作系統(tǒng)之間轉(zhuǎn)變的計(jì)算設(shè)備,所述計(jì)算設(shè)備包括: 主存儲(chǔ)器,其包括預(yù)留存儲(chǔ)器區(qū)域; 數(shù)據(jù)存儲(chǔ)設(shè)備;以及 切換事件模塊,其通過計(jì)算設(shè)備在第一操作系統(tǒng)的執(zhí)行期間接收操作系統(tǒng)切換事件以引起從第一操作系統(tǒng)向第二操作系統(tǒng)的轉(zhuǎn)變; 其中第一操作系統(tǒng)包括響應(yīng)于接收到操作系統(tǒng)切換事件而將第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到預(yù)留存儲(chǔ)器區(qū)域的第一預(yù)留復(fù)制模塊; 第二操作系統(tǒng)包括在第二操作系統(tǒng)的執(zhí)行期間將第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到數(shù)據(jù)存儲(chǔ)設(shè)備的第一寫出模塊;并且 切換事件模塊還響應(yīng)于狀態(tài)數(shù)據(jù)向預(yù)留存儲(chǔ)器區(qū)域的復(fù)制而執(zhí)行第二操作系統(tǒng)。2.權(quán)利要求1的計(jì)算設(shè)備,其中: 切換事件模塊還在第二操作系統(tǒng)的執(zhí)行期間接收第二操作系統(tǒng)切換事件; 第二操作系統(tǒng)還包括響應(yīng)于接收到第二操作系統(tǒng)切換事件而將第二操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到預(yù)留存儲(chǔ)器模塊的第二預(yù)留復(fù)制模塊; 切換事件模塊還響應(yīng)于第二操作系統(tǒng)的狀態(tài)數(shù)據(jù)的復(fù)制而第二次執(zhí)行第一操作系統(tǒng);并且 第一操作系統(tǒng)還包括在第一操作系統(tǒng)的第二執(zhí)行期間將第二操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到數(shù)據(jù)存儲(chǔ)設(shè)備的第二寫出模塊。3.權(quán)利要求1的計(jì)算設(shè)備,其中接收操作系統(tǒng)切換事件包括響應(yīng)于系統(tǒng)事件而接收操作系統(tǒng)切換事件或者響應(yīng)于用戶選擇而接收操作系統(tǒng)切換事件。4.權(quán)利要求3的計(jì)算設(shè)備,其中接收操作系統(tǒng)切換事件包括接收硬件切換選擇或者接收軟件切換選擇。5.權(quán)利要求1-4中任一項(xiàng)的計(jì)算設(shè)備,其中切換事件模塊還響應(yīng)于接收到操作系統(tǒng)切換事件而使計(jì)算設(shè)備進(jìn)入休眠電力管理狀態(tài)。6.權(quán)利要求1-4中任一項(xiàng)的計(jì)算設(shè)備,其中將第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到預(yù)留存儲(chǔ)器區(qū)域包括: 攔截指向數(shù)據(jù)存儲(chǔ)設(shè)備的一個(gè)或多個(gè)I/O操作;以及 將一個(gè)或多個(gè)I/O操作路由到預(yù)留存儲(chǔ)器區(qū)域。7.權(quán)利要求6的計(jì)算設(shè)備,其中攔截一個(gè)或多個(gè)I/O操作包括攔截指向由數(shù)據(jù)存儲(chǔ)設(shè)備存儲(chǔ)的休眠文件的一個(gè)或多個(gè)I/O操作。8.權(quán)利要求6的計(jì)算設(shè)備,其中攔截一個(gè)或多個(gè)I/O操作包括使用第一操作系統(tǒng)的過濾器驅(qū)動(dòng)器來攔截一個(gè)或多個(gè)I/O操作。9.權(quán)利要求1-4中任一項(xiàng)的計(jì)算設(shè)備,其中執(zhí)行第二操作系統(tǒng)包括從由數(shù)據(jù)存儲(chǔ)設(shè)備存儲(chǔ)的休眠文件加載第二操作系統(tǒng)。10.權(quán)利要求1-4中任一項(xiàng)的計(jì)算設(shè)備,其中第二操作系統(tǒng)還與第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)向數(shù)據(jù)存儲(chǔ)設(shè)備的復(fù)制同時(shí)期地執(zhí)行應(yīng)用。11.權(quán)利要求1-4中任一項(xiàng)的計(jì)算設(shè)備,其中將第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到數(shù)據(jù)存儲(chǔ)設(shè)備還包括在計(jì)算設(shè)備空閑時(shí)復(fù)制狀態(tài)數(shù)據(jù)。12.權(quán)利要求1-4中任一項(xiàng)的計(jì)算設(shè)備,其中數(shù)據(jù)存儲(chǔ)設(shè)備包括硬盤驅(qū)動(dòng)器、固態(tài)驅(qū)動(dòng)器或嵌入式閃速存儲(chǔ)器模塊。13.權(quán)利要求1-4中任一項(xiàng)的計(jì)算設(shè)備,還包括在執(zhí)行第一操作系統(tǒng)之前將主存儲(chǔ)器的部分預(yù)留為預(yù)留存儲(chǔ)器區(qū)域的存儲(chǔ)器預(yù)留模塊。14.權(quán)利要求13的計(jì)算設(shè)備,其中預(yù)留存儲(chǔ)器的部分包括使用計(jì)算設(shè)備的固件來預(yù)留存儲(chǔ)器的部分。15.—種用于在操作系統(tǒng)之間轉(zhuǎn)變的方法,所述方法包括: 通過計(jì)算設(shè)備執(zhí)行計(jì)算設(shè)備的第一操作系統(tǒng); 通過計(jì)算設(shè)備在執(zhí)行第一操作系統(tǒng)時(shí)接收操作系統(tǒng)切換事件; 通過計(jì)算設(shè)備響應(yīng)于接收到操作系統(tǒng)切換事件而將第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到計(jì)算設(shè)備的預(yù)留存儲(chǔ)器區(qū)域; 通過計(jì)算設(shè)備響應(yīng)于將狀態(tài)數(shù)據(jù)復(fù)制到預(yù)留存儲(chǔ)器區(qū)域而執(zhí)行計(jì)算設(shè)備的第二操作系統(tǒng);以及 通過計(jì)算設(shè)備響應(yīng)于執(zhí)行第二操作系統(tǒng)而將第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到計(jì)算設(shè)備的數(shù)據(jù)存儲(chǔ)設(shè)備。16.權(quán)利要求15的方法,還包括: 通過計(jì)算設(shè)備在執(zhí)行第二操作系統(tǒng)時(shí)接收第二操作系統(tǒng)切換事件; 通過計(jì)算設(shè)備響應(yīng)于接收到第二操作系統(tǒng)切換事件而將第二操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到預(yù)留存儲(chǔ)器區(qū)域; 通過計(jì)算設(shè)備響應(yīng)于復(fù)制第二操作系統(tǒng)的狀態(tài)數(shù)據(jù)而第二次執(zhí)行第一操作系統(tǒng);以及通過計(jì)算設(shè)備響應(yīng)于第二次執(zhí)行第一操作系統(tǒng)而將第二操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到數(shù)據(jù)存儲(chǔ)設(shè)備。17.權(quán)利要求15的方法,其中接收操作系統(tǒng)切換事件包括響應(yīng)于用戶選擇而接收操作系統(tǒng)切換事件,其中接收操作系統(tǒng)切換事件包括接收硬件切換選擇。18.權(quán)利要求15的方法,還包括通過計(jì)算設(shè)備響應(yīng)于接收到操作系統(tǒng)切換事件而進(jìn)入休眠電力管理狀態(tài)。19.權(quán)利要求15的方法,其中將第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到預(yù)留存儲(chǔ)器區(qū)域包括: 攔截指向數(shù)據(jù)存儲(chǔ)設(shè)備的一個(gè)或多個(gè)I/O操作;以及 將一個(gè)或多個(gè)I/O操作路由到預(yù)留存儲(chǔ)器區(qū)域。20.權(quán)利要求15的方法,其中: 將第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到數(shù)據(jù)存儲(chǔ)設(shè)備包括與執(zhí)行第二操作系統(tǒng)同時(shí)期地復(fù)制第一操作系統(tǒng)的狀態(tài)數(shù)據(jù);并且 執(zhí)行第二操作系統(tǒng)包括與將第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到數(shù)據(jù)存儲(chǔ)設(shè)備同時(shí)期地執(zhí)行應(yīng)用。21.權(quán)利要求15的方法,其中: 將第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到數(shù)據(jù)存儲(chǔ)設(shè)備包括與執(zhí)行第二操作系統(tǒng)同時(shí)期地復(fù)制第一操作系統(tǒng)的狀態(tài)數(shù)據(jù);并且 將第一操作系統(tǒng)的狀態(tài)數(shù)據(jù)復(fù)制到數(shù)據(jù)存儲(chǔ)設(shè)備還包括在計(jì)算設(shè)備空閑時(shí)復(fù)制狀態(tài)數(shù)據(jù)。22.權(quán)利要求15的方法,還包括通過計(jì)算設(shè)備在執(zhí)行第一操作系統(tǒng)之前將計(jì)算設(shè)備的存儲(chǔ)器的部分預(yù)留為預(yù)留存儲(chǔ)器區(qū)域。23.—種計(jì)算設(shè)備,包括: 處理器;以及 在其中存儲(chǔ)多個(gè)指令的存儲(chǔ)器,所述指令在由處理器執(zhí)行時(shí)使計(jì)算設(shè)備執(zhí)行權(quán)利要求15-22中任一項(xiàng)的方法。24.—種或多種機(jī)器可讀存儲(chǔ)介質(zhì),其包括存儲(chǔ)在其上的多個(gè)指令,所述指令響應(yīng)于被執(zhí)行而導(dǎo)致計(jì)算設(shè)備執(zhí)行權(quán)利要求15-22中任一項(xiàng)的方法。25.—種計(jì)算設(shè)備,其包括用于執(zhí)行權(quán)利要求15-22中任一項(xiàng)的方法的構(gòu)件。
【文檔編號(hào)】G06F9/44GK105874428SQ201580003799
【公開日】2016年8月17日
【申請(qǐng)日】2015年1月30日
【發(fā)明人】M.A.羅思曼, V.J.齊默, Z.尤
【申請(qǐng)人】英特爾公司