隨著計算機(jī)技術(shù)的推進(jìn),計算機(jī)處理器的性能已經(jīng)增長。然而,這樣的計算機(jī)處理器的性能有時候受計算機(jī)中的其它瓶頸的阻礙。例如,可用于運(yùn)行進(jìn)程的隨機(jī)存取存儲器(RAM)的數(shù)量是計算機(jī)性能方面的瓶頸。降低計算機(jī)中的瓶頸的影響的一種方式是增加RAM的數(shù)量。然而,RAM仍然昂貴,并且因而向計算機(jī)添加RAM可能是有問題的。
技術(shù)實現(xiàn)要素:
提供本發(fā)明內(nèi)容來以簡化形式介紹以下在具體實施例中進(jìn)一步描述的概念的選擇。本發(fā)明內(nèi)容不意圖標(biāo)識所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不意圖用于限制所要求保護(hù)的主題的范圍。
依照一個或多個方面,針對從存儲器交換的計算設(shè)備的進(jìn)程標(biāo)識出一個或多個候選可共享存儲器頁面。一個或多個候選可共享存儲器頁面包括由該進(jìn)程與計算設(shè)備的一個或多個其它過程可共享的存儲器頁面。維持標(biāo)識出一個或多個候選可共享存儲器頁面的記錄,并且允許存儲器管理器在已經(jīng)記錄一個或多個候選可共享存儲器頁面之后重新目的化一個或多個候選可共享存儲器頁面。
依照一個或多個方面,計算設(shè)備包括存儲器、存儲設(shè)備和存儲器管理器。存儲器管理器被配置為將計算設(shè)備的進(jìn)程交換到存儲器中,該進(jìn)程使用與計算設(shè)備的其它進(jìn)程可共享的一個或多個可共享存儲器頁面。存儲器管理器還被配置為允許進(jìn)程恢復(fù)運(yùn)行,并且在進(jìn)程運(yùn)行時異步地預(yù)取一個或多個可共享存儲器頁面。
附圖說明
貫穿附圖,相同標(biāo)號用于引用相同特征。
圖1圖示了依照一個或多個實施例的采用異步預(yù)取可共享存儲器頁面的示例系統(tǒng)。
圖2是圖示了依照一個或多個實施例的用于向外交換進(jìn)程的可共享存儲器頁面的示例過程的流程圖。
圖3是圖示了依照一個或多個實施例的用于向內(nèi)交換進(jìn)程的可共享存儲器頁面的示例過程的流程圖。
圖4圖示了依照一個或多個實施例的示例I/O隊列。
圖5圖示了包括代表可以實現(xiàn)本文描述的各種技術(shù)的一個或多個系統(tǒng)和/或設(shè)備的示例計算設(shè)備的示例系統(tǒng)。
具體實施方式
本文討論了異步預(yù)取可共享存儲器頁面。系統(tǒng)中的存儲器包括被稱為存儲器頁面(簡單地頁面)的多個塊或部分。一些存儲器頁面可由系統(tǒng)中的多個程序共享,并且這些存儲器頁面可以由文件系統(tǒng)中的文件或者由頁面文件所備份??晒蚕泶鎯ζ黜撁媸侵缚梢杂上到y(tǒng)中的多個程序所共享的存儲器頁面,而不管存儲器頁面在任何給定的時間是否實際上由系統(tǒng)中的多個程序共享。當(dāng)要向外交換程序時,維持可共享存儲器頁面的記錄。可共享存儲器頁面然后可以重新目的化(在寫入到頁面文件或其備份文件之后,如果可共享存儲器頁面是臟的話)。對于其它存儲器頁面,諸如程序的私有存儲器頁面,頁面文件中的空間可以可選地被預(yù)留,并且這樣的存儲器頁面可選地在隨后的時間寫出到頁面文件。
當(dāng)隨后要向內(nèi)交換經(jīng)向外交換的程序時,允許程序運(yùn)行,可選地在從頁面文件讀取了程序的其它存儲器頁面(諸如私有存儲器頁面)之后。在程序運(yùn)行的同時,發(fā)出預(yù)取程序的可共享存儲器頁面的I/O(輸入/輸出)請求。這些I/O請求被維持在I/O隊列中。如果程序請求當(dāng)前沒有處于物理存儲器中的存儲器頁面,則針對該存儲器頁面發(fā)出高優(yōu)先級I/O請求。高優(yōu)先級I/O請求被放置在I/O隊列的前面,或者以其它方式適當(dāng)?shù)靥幹?,使得高?yōu)先級I/O請求在I/O隊列中的其它I/O請求之前被處理。如果針對存儲器頁面的預(yù)取I/O請求已經(jīng)處于I/O隊列中,則隨后允許該I/O請求被執(zhí)行,并且所返回的數(shù)據(jù)可以簡單地被丟棄或者以其它方式適當(dāng)?shù)靥幹谩?/p>
圖1圖示了依照一個或多個實施例的采用異步預(yù)取可共享存儲器頁面的示例系統(tǒng)100。系統(tǒng)100包括存儲器管理器102、策略管理器104和分頁存儲器106。一般地,存儲器管理器102管理分頁存儲器106中的數(shù)據(jù)的存儲。存儲器管理器102將分頁存儲器106的部分分配給系統(tǒng)100中的各種程序108。在運(yùn)行時,程序108在本文中還被稱為進(jìn)程(其是運(yùn)行程序108的實例),所以分配給程序108的分頁存儲器106的部分還被稱為分配給程序108的進(jìn)程。程序108可以是應(yīng)用、操作系統(tǒng)程序或者其它組件或模塊。存儲器管理器102從這些程序108接收請求以從分頁存儲器106獲取數(shù)據(jù)并且將數(shù)據(jù)寫入到分頁存儲器106。分頁存儲器106可以例如是任何類型的CPU(中央處理單元)可尋址存儲器,諸如易失性存儲器(例如RAM)或非易失性存儲器(例如閃速存儲器)。
存儲器管理器102使用分頁來管理分頁存儲器106。存儲器管理器102將存儲器106(例如RAM)組織成頁面,所述頁面是數(shù)據(jù)的特定(例如固定)大小單位。分頁動作是指在數(shù)據(jù)沒有處于存儲器106中時從系統(tǒng)100中的備份文件112或頁面文件114以頁面為單位讀取數(shù)據(jù)。分頁動作還指的是以頁面為單位將臟(經(jīng)修改)數(shù)據(jù)寫回到備份文件112或頁面文件114中。存儲器頁面因而還稱為文件備份的存儲器頁面或者頁面文件備份的存儲器頁面。這樣的分頁技術(shù)是本領(lǐng)域技術(shù)人員所公知的。
系統(tǒng)100還包括存儲設(shè)備110。存儲設(shè)備110是系統(tǒng)100中的輔助存儲設(shè)備(輔助于存儲器106),并且在一個或多個實施例中相比于分頁存儲器106而言,具有更慢的讀取/寫入時間,但是更大的存儲容量。存儲設(shè)備110可以例如是閃速存儲器(例如固態(tài)盤(SSD))或磁盤。一個或多個備份文件112存儲在存儲設(shè)備110上。所述一個或多個備份文件112可以備份分頁存儲器106的一些存儲器頁面,諸如可共享存儲器頁面,其存儲包括在存儲器頁面中的內(nèi)容(例如,數(shù)據(jù)或指令)。如果分頁存儲器106的存儲器頁面重新目的化,則該存儲器頁面的內(nèi)容可以從備份了該存儲器頁面的備份文件112讀取回到分頁存儲器106中。備份文件可以采取各種形式中的任何一種,諸如庫文件(例如動態(tài)鏈接庫)、二進(jìn)制或其它可執(zhí)行文件等等。
系統(tǒng)100還包括存儲器頁面可以存儲在其中的頁面文件114。頁面文件可以包括在存儲器106(例如RAM)中或者存儲設(shè)備110上。盡管在圖1中圖示了單個頁面文件114,但是應(yīng)當(dāng)指出的是,多個頁面文件可以包括在系統(tǒng)100中。可共享存儲器頁面典型地由備份文件112所備份,但是可以可替換地由頁面文件114所備份。應(yīng)當(dāng)指出的是,在本文中涉及由備份文件112備份可共享存儲器頁面的討論中,可共享存儲器頁面可以可替換地由頁面文件114所備份。
存儲器管理器102包括操作成實施存儲器管理器102的功能性的存儲器控制器116,以及作為關(guān)于分頁存儲器106的存儲器頁面的各種信息的記錄的頁面表118。頁面表118包括指示存儲器頁面在任何給定時間存儲在哪里的信息。存儲器頁面典型地存儲在物理存儲器(分頁存儲器106)中或者在輔助存儲設(shè)備110上。存儲在輔助存儲設(shè)備110上的存儲器頁面可以存儲在它們被備份的頁面文件或其它文件(例如備份文件112)中。對于存儲在物理存儲器中的存儲器頁面,存儲器管理器102直接地訪問存儲器頁面。對于存儲在存儲設(shè)備110上的存儲器頁面,存儲器管理器102向存儲設(shè)備110發(fā)出I/O請求以從適當(dāng)文件獲取存儲器頁面并且將存儲器頁面存儲在物理存儲器中??商鎿Q地,存儲器管理器102可以向繼而管理存儲器頁面從存儲設(shè)備110的獲取的其它組件(諸如管理存儲器頁面在存儲設(shè)備110上(或者可替換地,其它地方)的壓縮存儲的壓縮模塊)發(fā)出I/O請求。
分頁存儲器106包括多個頁面,每個頁面在任何給定時間可以被分類為多個不同類型的頁面中的一個,并且這種分類可以隨時間而改變。一種類型的存儲器頁面是已經(jīng)分配給程序108并且當(dāng)前正被程序108使用的存儲器頁面,這種類型的存儲器頁面被稱為程序108的進(jìn)程的工作集合(還稱為程序108的工作集合)中的工作集合頁面(或者可替換地,所分配的頁面)。當(dāng)前正被使用的存儲器頁面是程序108在閾值的時間量(例如,前20秒)內(nèi)已經(jīng)訪問過的存儲器頁面,或者是,另外地由程序108以使得存儲器頁面不會被存儲器管理器102重新目的化的這種方式訪問的存儲器頁面。重新目的化存儲器頁面是指,存儲器頁面被存儲器管理器102重新用于其它事情,諸如存儲用于相同或不同程序的不同數(shù)據(jù)或者用于系統(tǒng)中的其它用途。存儲器頁面可以通過例如被分配給不同程序等而重新目的化。
另一種類型的存儲器頁面是已經(jīng)分配給程序108并且當(dāng)前不由程序108所使用的存儲器頁面,并且這種類型的存儲器頁面稱作備用頁面(或者可替換地,可再分配的頁面)。當(dāng)前沒有使用的存儲器頁面是指其內(nèi)容尚未被修改(或者自最后的修改起已經(jīng)寫入到頁面文件114或備份文件112)以及尚未由程序108在閾值的時間量(例如,前20秒)內(nèi)訪問的頁面,或者是,另外地由程序108以使得存儲器頁面可以被存儲器管理器102重新目的化的這種方式訪問的頁面。
另一種類型的存儲器頁面是其內(nèi)容已經(jīng)被修改但是尚未復(fù)制到頁面文件114或備份文件112的存儲器頁面,并且這種類型的存儲器頁面被稱為經(jīng)修改的頁面(或者可替換地,臟頁面)。經(jīng)修改的存儲器頁面不會被存儲器管理器102重新目的化。然而,在將經(jīng)修改的存儲器頁面存儲于頁面文件114或備份文件112中之后,存儲器頁面的分類可以改變(例如,改變成備用頁面或自由頁面)。
另一種類型的存儲器頁面是當(dāng)前沒有分配給程序108并且存儲器管理器102可以利用其做任何事情(包括重新目的化)的存儲器頁面。這種類型的存儲器頁面稱為自由頁面(或者可替換地,去分配的頁面)。
存儲器管理器102使用各種規(guī)則或準(zhǔn)則來確定何時將分頁存儲器106的存儲器頁面分配給程序108,將哪些存儲器頁面分配給哪些程序108,將之前分配給程序108的哪些存儲器頁面重新目的化等等。存儲器管理器102還確定針對存儲器頁面的類型的分類,從而在適當(dāng)?shù)那闆r下改變存儲器頁面的分類。在一個或多個實施例中,存儲器管理器102維持分頁存儲器106的哪些存儲器頁面被分類為哪種類型的頁面的列表或其它記錄。例如,存儲器管理器102可以維持工作集合頁面的列表或其它記錄,備用頁面的列表或其它記錄,經(jīng)修改的頁面的列表或記錄,自由頁面的列表或記錄等等。
存儲器頁面還可以稱為私有頁面或可共享頁面。私有頁面是由特定進(jìn)程所擁有或?qū)S糜谔囟ㄟM(jìn)程并且由該特定進(jìn)程使用而沒有由其它進(jìn)程使用的存儲器頁面??晒蚕眄撁媸强梢杂啥鄠€進(jìn)程共享并且可以由所述多個進(jìn)程中的每一個進(jìn)程使用的存儲器頁面。在任何給定時間,可共享存儲器頁面可以由一個或多個進(jìn)程使用。對于可共享存儲器頁面,存儲器頁面在給定時間存儲于其中的物理存儲器可以被映射為多個進(jìn)程的地址空間。然而,對于私有存儲器頁面,存儲器頁面在給定時間存儲于其中的物理存儲器被映射為僅僅是擁有所述存儲器頁面的進(jìn)程的地址空間。
系統(tǒng)100表示一個或多個設(shè)備。在一個或多個實施例中,在系統(tǒng)100中圖示的組件102、104、106和110作為同一計算設(shè)備的部件而包括??商鎿Q地,這些組件可以跨兩個或更多設(shè)備分布。
就何時從存儲器向外交換程序的可共享存儲器頁面或者何時將程序的可共享存儲器頁面向內(nèi)交換到存儲器中,做出確定。這樣的確定可以由存儲器管理器102做出,或者通過向存儲器管理器102通知確定的另一組件(例如,如上文所討論的策略管理器104,或者可替換地,在內(nèi)核模式或用戶模式中運(yùn)行的其它組件)來做出。向外交換(還稱為交換出來)程序的可共享存儲器頁面是指,允許作為程序的運(yùn)行實例的進(jìn)程的可共享存儲器頁面中的至少一些從該進(jìn)程的工作集合(或地址空間)移除,由此使得可共享存儲器頁面可用于重新目的化。維持進(jìn)程地址空間中的可共享存儲器頁面的地址集合的記錄,使得隨后可以向內(nèi)交換存儲器頁面。向外交換程序的可共享存儲器頁面還稱為,向外交換作為程序的運(yùn)行實例的進(jìn)程的可共享存儲器頁面。
向內(nèi)交換(還稱為交換進(jìn)來)程序的可共享存儲器頁面是指,從備份文件112和/或頁面文件114獲取用于作為程序的運(yùn)行實例的進(jìn)程的可共享存儲器頁面中的至少一些,并且將存儲器頁面放置在物理存儲器中。向內(nèi)交換程序的可共享存儲器頁面還稱為,向內(nèi)交換作為程序的運(yùn)行實例的進(jìn)程的可共享存儲器頁面。
應(yīng)當(dāng)指出,可共享存儲器頁面典型地沒有被修改并且因而典型地可以在不被寫回到備份文件112的情況下重新目的化。然而,如果可共享存儲器頁面被修改,則它們在重新目的化之前被寫入到備份文件112(或者可替換地,頁面文件114)。應(yīng)當(dāng)指出,因為可共享存儲器頁面可以由多個進(jìn)程所共享,所以典型地不存在可共享存儲器頁面可以作為部分而存儲的單個連續(xù)塊——這樣的連續(xù)塊中的其它存儲器頁面將必須對于共享可共享存儲器頁面的不同進(jìn)程而不同。
在一個或多個實施例中,進(jìn)程的私有存儲器頁面也可以向外交換。維持私有存儲器頁面的記錄,并且將私有存儲器頁面寫入到連續(xù)塊中的頁面文件114,從而允許高效地使用順次寫入和讀取而將存儲器頁面寫入到頁面文件114(并且當(dāng)隨后向內(nèi)交換頁面時,允許從頁面文件114讀取頁面)。例如,可以計算私有存儲器頁面的總大小,然后在頁面文件114中預(yù)留的空間足以存儲私有存儲器頁面。另外,用于每一個私有存儲器頁面的位置可以預(yù)留在所預(yù)留的空間中,位置根據(jù)私有存儲器頁面的虛擬地址次序而順次地排序。在一個或多個寫入操作中,每一個私有存儲器頁面被寫入到其在頁面文件114的所預(yù)留空間中的特定預(yù)留位置。盡管私有存儲器頁面可以在工作集合中是非連續(xù)的,但是它們被寫入到頁面文件114中的連續(xù)位置中。進(jìn)程的私有存儲器頁面可以通過從頁面文件114讀取私有存儲器頁面并且將私有存儲器頁面放置在物理存儲器中而進(jìn)行向內(nèi)交換。候選頁面在向外交換時向連續(xù)的順次排序的所預(yù)留空間中的寫入可以使得隨后的讀取操作能夠在隨后的向內(nèi)交換操作期間在將頁面讀取回到工作集合中時讀取頁面文件114的順次排序的大塊。
盡管進(jìn)程的私有存儲器頁面可以向外交換和向內(nèi)交換,但是本文討論的技術(shù)可以獨立于私有存儲器頁面的任何這樣的向外交換或向內(nèi)交換而操作。不管進(jìn)程的私有存儲器頁面是向內(nèi)交換還是向外交換,都可以使用本文討論的技術(shù)。
圖2是圖示了依照一個或多個實施例的用于向外交換進(jìn)程的可共享存儲器頁面的示例過程200的流程圖。過程200由存儲器管理器或者其它操作系統(tǒng)模塊(諸如圖1的存儲器管理器102)實施,并且可以以軟件、固件、硬件或其組合實現(xiàn)。過程200被示為動作集合并且不限于被示為用于執(zhí)行各種動作的操作的次序。過程2000是用于向外交換進(jìn)程的可共享存儲器頁面的示例過程;參照不同圖而在本文中包括向外交換進(jìn)程的可共享存儲器頁面的附加討論。
在過程200中,做出確定以向外交換進(jìn)程的可共享存儲器頁面(動作202)。該確定可以基于各種準(zhǔn)則而做出(例如,通過策略管理器104,或者可替換地,諸如存儲器管理器102之類的另一模塊),諸如確定進(jìn)程是非活躍或者掛起的,與進(jìn)程相關(guān)聯(lián)的一個或多個線程在特定時間量內(nèi)尚未活躍,進(jìn)程已經(jīng)在后臺中持續(xù)了特定時間量,進(jìn)程在特定時間量期間尚未使用某個數(shù)目的頁面,系統(tǒng)作為整體已經(jīng)掛起或是非活躍的等等。確定還可以基于其它準(zhǔn)則而做出,諸如確定從進(jìn)程接收到向外交換進(jìn)程的請求(例如,以用于使進(jìn)程記錄進(jìn)程的當(dāng)前存儲器狀態(tài)的保存點),系統(tǒng)的當(dāng)前用戶從系統(tǒng)登出,進(jìn)程的顯示已經(jīng)最小化等等。
標(biāo)識出一個或多個候選可共享存儲器頁面(動作204)。在一個或多個實施例中,存儲器管理器102分析進(jìn)程的每一個可共享存儲器頁面并且基于某一準(zhǔn)則而確定每一個可共享存儲器頁面是否是用于向外交換的候選者。準(zhǔn)則可以例如指示處于進(jìn)程的工作集合中的可共享頁面是用于向外交換的候選者??商鎿Q地,可以使用其它準(zhǔn)則。例如,準(zhǔn)則可以指示處于進(jìn)程的地址空間中的可共享存儲器頁面是用于向外交換的候選者,而不管可共享存儲器頁面是否處于進(jìn)程的工作集合中。作為另一示例,準(zhǔn)則可以指示處于進(jìn)程的地址空間中但是不處于進(jìn)程的工作集合中的可共享存儲器頁面是用于向外交換的候選者。作為另一示例,準(zhǔn)則可以指示不臟的可共享存儲器頁面是用于向外交換的候選者。準(zhǔn)則還可以是基于歷史的。例如,典型地(例如,至少閾值百分比的時間)由進(jìn)程在其被交換進(jìn)來之后恢復(fù)運(yùn)行時所訪問的可共享存儲器頁面可以被標(biāo)識(例如,由策略管理器104),并且那些所標(biāo)識出的可共享存儲器頁面可以是候選可共享存儲器頁面。
維持在動作204中標(biāo)識出的可共享存儲器頁面的記錄(動作206)??晒蚕泶鎯ζ黜撁娴挠涗浛梢圆扇「鞣N形式,并且是在動作204中標(biāo)識出的可共享存儲器頁面的指示。記錄可以是例如在動作206中生成的所標(biāo)識出的可共享存儲器頁面的虛擬地址列表。
過程200基于是否存在從工作集合中移除可共享存儲器頁面的確定而繼續(xù)(動作208)。這樣的確定可以以各種方式做出,諸如通過存儲器管理器102確定由于存儲器壓力而使得一些物理存儲器可用。策略管理器104或存儲器管理器102可以可替換地使用各種其它策略或準(zhǔn)則來做出這種確定??商鎿Q地,用戶模式服務(wù)或者其它組件可以指令存儲器管理器何時從分頁存儲器106移除可共享存儲器頁面,使得可共享存儲器頁面可以重新目的化。
響應(yīng)于確定存在從工作集合移除可共享存儲器頁面的期望,進(jìn)程的所述可共享存儲器頁面中的一個或多個可共享存儲器頁面從工作集合移除(動作210)。從工作集合移除的可共享存儲器頁面被添加到備用列表或自由列表,在此之后,存儲器頁面可以如存儲器管理器所期望的那樣重新目的化。在動作206中維持的記錄中的所有可共享存儲器頁面可以從工作集合移除,或者可以從工作集合移除那些可共享存儲器頁面的子集??梢允褂酶鞣N各樣的策略或準(zhǔn)則中的任何一個來確定要從工作集合移除可共享存儲器頁面的哪個子集。
在一個或多個實施例中,可能出現(xiàn)其中所述可共享存儲器頁面中的一個或多個可共享存儲器頁面已經(jīng)被修改(變臟)的情況。在這樣的情況下,在動作210中,已經(jīng)被修改的一個或多個可共享存儲器頁面在被添加到備用列表或自由列表之前被寫回到備份一個或多個可共享存儲器頁面的備份文件112。
圖3是圖示了依照一個或多個實施例的用于向內(nèi)交換進(jìn)程的可共享存儲器頁面的示例過程300的流程圖。過程300由存儲器管理器或者其它操作系統(tǒng)模塊實施,諸如圖1的存儲器管理器102,并且可以以軟件、固件、硬件或其組合來實現(xiàn)。過程300被示為動作集合并且不限于被示出用于執(zhí)行各種動作的操作的次序。過程300是用于向內(nèi)交換進(jìn)程的可共享存儲器頁面的示例過程;參照不同圖而在本文中包括向內(nèi)交換進(jìn)程的可共享存儲器頁面的附加討論。
在過程300中,做出確定以向內(nèi)交換進(jìn)程的可共享存儲器頁面(動作302)。在一個或多個實施例中,這個確定由存儲器管理器102或策略管理器104做出,并且可以基于各種準(zhǔn)則而做出。這樣的準(zhǔn)則可以包括接收進(jìn)程不再非活躍或掛起的指示,導(dǎo)致在圖2的動作202中向外交換的決定的那些條件的中止等等。這樣的準(zhǔn)則可以包括從進(jìn)程接收請求以向內(nèi)交換進(jìn)程(例如,以復(fù)原進(jìn)程的之前記錄的保存點),用戶登入系統(tǒng),進(jìn)程恢復(fù)用戶接口的顯示(例如,顯示不再最小化)等等。
異步地預(yù)取進(jìn)程的可共享存儲器頁面,并且將存儲器頁面添加(放置)到物理存儲器中(動作304)。存儲器頁面可以在它們被接收到時添加到物理存儲器,或者可替換地可以在已經(jīng)接收到所有預(yù)取的可共享存儲器頁面之后添加到物理存儲器。異步預(yù)取的可共享存儲器頁面是在之前向外交換進(jìn)程時(在圖2的動作206中)所記錄的可共享存儲器頁面。在一個或多個實施例中,異步地預(yù)取在圖2的動作206中記錄的所有可共享存儲器頁面??商鎿Q地,僅僅異步地預(yù)取在圖2的動作206中記錄的可共享存儲器頁面的子集。
在一個或多個實施例中,通過將針對可共享存儲器頁面的預(yù)取/IO請求添加到I/O列表或隊列而異步地預(yù)取可共享存儲器頁面。這些預(yù)取I/O請求是針對可共享存儲器頁面的讀取請求。I/O隊列通過被稱為存儲堆棧的系統(tǒng)100的操作系統(tǒng)的模塊或組件來維持,其包括允許與存儲設(shè)備110的通信的至少一個驅(qū)動器或其它模塊??商鎿Q地,I/O隊列可以通過存儲器管理器102或者系統(tǒng)100的操作系統(tǒng)的其它模塊或組件來維持。可替換地,I/O隊列可以通過與存儲設(shè)備相關(guān)聯(lián)的硬件模塊或組件來維持,諸如存儲設(shè)備控制器(例如,盤控制器)。每一個預(yù)取I/O請求標(biāo)識一個或多個可共享存儲器頁面,并且向存儲設(shè)備110發(fā)出預(yù)取I/O請求以從存儲設(shè)備110上的備份文件112獲取可共享存儲器頁面。存儲設(shè)備110通過將所請求的存儲器頁面返回給存儲器管理器102而滿足預(yù)取I/O請求。
圖4圖示了依照一個或多個實施例的示例I/O隊列400。I/O隊列400包括多個(m個)預(yù)取I/O請求402(1)、……、402(m)。預(yù)取I/O請求402以從隊列的前部或頂部的次序而發(fā)出。例如,在發(fā)出預(yù)取I/O請求402(3)之前發(fā)出預(yù)取I/O請求402(1)。響應(yīng)于所發(fā)出的預(yù)取I/O請求,通過存儲器管理器102從存儲設(shè)備110接收由預(yù)取I/O請求標(biāo)識的一個或多個可共享存儲器頁面,并且存儲器管理器102將所接收的存儲器頁面存儲在物理存儲器中。盡管沒有在圖4中圖示,但是來自其它進(jìn)程的其它I/O請求也可以處于I/O隊列400中。
維持I/O隊列400的模塊或組件支持用于I/O隊列400中的I/O請求的多個優(yōu)先級水平??梢灾С秩魏螖?shù)目的優(yōu)先級水平,并且在一個或多個實施例中,這些多個優(yōu)先級水平包括正常優(yōu)先級和高優(yōu)先級。高優(yōu)先級I/O請求可以例如僅由系統(tǒng)100的操作系統(tǒng)程序(包括存儲器管理器102的模塊)做出。高優(yōu)先級I/O請求被放置在I/O隊列400的前部或頂部處,在已經(jīng)處于I/O隊列400中的任何其它較低優(yōu)先級I/O請求的前面,或者以其它方式被處置以使得高優(yōu)先級I/O請求在較低優(yōu)先級I/O請求之前執(zhí)行和完成。因而,高優(yōu)先級I/O請求能夠有效地跳轉(zhuǎn)至列隊的前面,從而繞過I/O隊列400中的較低優(yōu)先級I/O請求并且在其之前被發(fā)出。
返回到圖3,還允許進(jìn)程恢復(fù)運(yùn)行(動作306)。進(jìn)程正在被向內(nèi)交換,因此假設(shè)進(jìn)程之前運(yùn)行并且向外交換,所以進(jìn)程的運(yùn)行被恢復(fù)。動作304和306可以平行地或者并發(fā)地執(zhí)行,使得在異步地預(yù)取可共享存儲器頁面的同時允許進(jìn)程恢復(fù)運(yùn)行。可共享存儲器頁面被稱為異步預(yù)取的,這是因為可共享存儲器頁面的預(yù)取不會妨礙進(jìn)程——進(jìn)程不需要在運(yùn)行之前等待可共享存儲器頁面的預(yù)取的完成。
在異步預(yù)取期間的某一點處,進(jìn)程請求當(dāng)前沒有處于物理存儲器中的存儲器頁面(動作308)。該請求可以是針對可共享存儲器頁面,或者可替換地另一存儲器頁面(例如,私有存儲器頁面)。針對不處于物理存儲器中的存儲器頁面的請求觸發(fā)頁面故障,其通過存儲器管理器102獲取所請求的存儲器頁面并且將請求存儲器頁面添加到物理存儲器而滿足。
響應(yīng)于來自進(jìn)程的這種請求,針對所請求的存儲器頁面的高優(yōu)先級I/O請求被添加到圖4的I/O隊列400中(動作310),并且在接收到存儲器頁面時將它添加到物理存儲器中。因為針對動作308中所請求的存儲器頁面發(fā)出高優(yōu)先級I/O請求,所以在將響應(yīng)于I/O請求隊列400中的其它較低優(yōu)先級I/O請求而接收的存儲器頁面(異步預(yù)取的存儲器頁面)添加到物理存儲器之前,將所請求的存儲器頁面添加到物理存儲器。
圖4圖示了高優(yōu)先級I/O請求404向I/O隊列400中的插入。高優(yōu)先級I/O請求404放置在I/O隊列400的前面或頂部處,在預(yù)取I/O請求402前面。
返回到圖3,動作308和310繼續(xù)直到所有或至少閾值數(shù)量的預(yù)取I/O請求已經(jīng)被發(fā)出并且已經(jīng)將所請求的存儲器頁面添加到物理存儲器。在所有或至少閾值數(shù)量的預(yù)取I/O請求已經(jīng)被發(fā)出并且已經(jīng)將所請求的存儲器頁面添加到物理存儲器之后,過程300結(jié)束。從而,針對當(dāng)前不處于物理存儲器中的存儲器頁面的隨后請求通過存儲器管理器102使用其它策略或準(zhǔn)則而滿足,并且其不需要以像動作310中那樣的高優(yōu)先級發(fā)出。
在一個或多個實施例中,對于可以針對進(jìn)程在進(jìn)程的頁面的特定向內(nèi)交換期間所發(fā)出的高優(yōu)先級I/O請求的數(shù)目加以限制。該限制有助于防止一個進(jìn)程以其高優(yōu)先級I/O請求而主導(dǎo)對存儲設(shè)備110的訪問。
應(yīng)當(dāng)指出,通過發(fā)出針對當(dāng)前不處于物理存儲器中的存儲器頁面的請求作為高優(yōu)先級I/O請求而同時發(fā)出異步預(yù)取I/O請求,進(jìn)程的可共享存儲器頁面的預(yù)取不會妨礙進(jìn)程的運(yùn)行。在進(jìn)程期望當(dāng)前沒有處于物理存儲器中的存儲器頁面的情況下,進(jìn)程不需要等待異步預(yù)取的完成。
例如,動作308中的請求可以是用于針對其的預(yù)取I/O請求402已經(jīng)處于I/O隊列400中但是尚未向存儲設(shè)備110發(fā)出的存儲器頁面。在這樣的情況下,將針對存儲器頁面的附加I/O請求添加到I/O隊列400,而不是等待已經(jīng)處于I/O隊列400中的預(yù)取I/O請求的發(fā)出并且從存儲設(shè)備110獲取存儲器頁面。然而,該附加I/O請求是高優(yōu)先級I/O請求(例如,動作310)。因而,獲取存儲器頁面并且將其添加到物理存儲器而沒有等待發(fā)出預(yù)取I/O請求以及從存儲設(shè)備110完成預(yù)取I/O請求,并且進(jìn)程不必等待向存儲設(shè)備110發(fā)出預(yù)取I/O請求。預(yù)取I/O請求可以保持在I/O隊列400中并且向存儲設(shè)備110發(fā)出,但是響應(yīng)于預(yù)取I/O請求而獲取的存儲器頁面可以被丟棄或以其它方式被忽略(因為存儲器頁面已經(jīng)處于物理存儲器中)??商鎿Q地,響應(yīng)于預(yù)取I/O請求而獲取的存儲器頁面可以以其它方式處置,諸如將存儲器頁面復(fù)制到存儲器中,更新頁面表條目以指向響應(yīng)于預(yù)取I/O請求而獲取的存儲器頁面而不是已經(jīng)處于物理存儲器中的存儲器頁面等等。
動作308中的請求可以可替換地用于針對其的預(yù)取I/O請求尚未處于I/O隊列400中的存儲器頁面。這樣的請求可以但不需要是針對可共享存儲器頁面的請求。在這樣的情況下,將針對存儲器頁面的高優(yōu)先級I/O請求添加到I/O隊列400(例如,動作310)。高優(yōu)先級I/O請求在較低優(yōu)先級I/O請求之前發(fā)出,使得獲取到存儲器頁面并且將其添加到物理存儲器而沒有等待向存儲設(shè)備110發(fā)出I/O隊列400中的較低優(yōu)先級I/O請求。因而,相比于進(jìn)程必須等待I/O隊列400中的所有I/O請求得以滿足的情況而言,進(jìn)程變得更加快速地訪問物理存儲器中的所請求的頁面。
應(yīng)當(dāng)指出,存儲設(shè)備110或者與存儲設(shè)備110相關(guān)聯(lián)的存儲控制器本身可以具有持有I/O請求的隊列。在這樣的情況下,向存儲設(shè)備110發(fā)出的高優(yōu)先級I/O請求可以被放置在存儲設(shè)備110的I/O隊列中,在較低優(yōu)先級I/O請求后面。這樣的較低優(yōu)先級I/O請求將由存儲設(shè)備110在高優(yōu)先級I/O請求之前滿足??商鎿Q地,如果存儲設(shè)備110或存儲控制器支持高優(yōu)先級I/O請求,則存儲設(shè)備110或存儲控制器也可以將高優(yōu)先級I/O請求放置在其隊列的頂部或前部處。
還應(yīng)當(dāng)指出,本文討論的技術(shù)可以在向內(nèi)交換進(jìn)程的存儲器頁面時基于存儲設(shè)備110的類型而提供不同性能。例如,相比于旋轉(zhuǎn)介質(zhì)類型的設(shè)備(例如,磁盤)而言,使用本文討論的技術(shù)向內(nèi)交換進(jìn)程的存儲器頁面可以通過使用閃存類型的存儲設(shè)備而更快速地執(zhí)行。這種性能差異可能是由于在讀取存儲設(shè)備的不同部分時所涉及的搜尋時間而導(dǎo)致的。本文討論的技術(shù)因而可以是可選配置參數(shù),其中用戶或管理員能夠選擇在向外交換進(jìn)程的存儲器頁面時是否要記錄可共享存儲器頁面并且允許其重新目的化(并且因而能夠選擇在向內(nèi)交換進(jìn)程的存儲器頁面時是否要異步地預(yù)取可共享存儲器頁面)??商鎿Q地,配置參數(shù)可以基于存儲設(shè)備110的所確定的性能特性而自動地設(shè)定(例如,通過存儲器管理器102或策略管理器104)。存儲設(shè)備110的這些性能特性可以以不同方式確定,諸如通過設(shè)備的操作系統(tǒng)自動地確定,通過另一設(shè)備或服務(wù)提供等等。
本文討論的技術(shù)支持各種使用情況??梢韵蛲饨粨Q計算設(shè)備上的進(jìn)程的存儲器頁面,諸如在進(jìn)程被掛起時,以釋放物理存儲器用于其它進(jìn)程。重新目的化可共享存儲器頁面的能力允許超出可以通過重新目的化私有存儲器頁面而釋放的那些而釋放附加物理存儲器。當(dāng)恢復(fù)進(jìn)程時,由進(jìn)程使用或者分配給進(jìn)程的存儲器頁面可以被快速地并且高效地返回到物理存儲器。與進(jìn)程運(yùn)行并行地異步預(yù)取可共享存儲器頁面,并且注意防止頁面故障(進(jìn)程請求不處于物理存儲器中的存儲器頁面)妨礙進(jìn)程的運(yùn)行。這樣,系統(tǒng)主動地引入進(jìn)程極有可能使用的存儲器頁面(例如,在被掛起時處于其工作集合中的存儲器頁面)而沒有迫使進(jìn)程等待所有這樣的主動預(yù)取同步地完成(其繼而將妨礙進(jìn)程恢復(fù)體驗)。
圖5一般地在500處圖示了示例系統(tǒng),其包括代表可以實現(xiàn)本文描述的各種技術(shù)的一個或多個系統(tǒng)和/或設(shè)備的示例計算設(shè)備502。計算設(shè)備502可以是例如服務(wù)提供商的服務(wù)器、與客戶端相關(guān)聯(lián)的設(shè)備(例如,客戶端設(shè)備)、片上系統(tǒng)和/或任何其它適當(dāng)?shù)挠嬎阍O(shè)備或計算系統(tǒng)。
所圖示的示例計算設(shè)備502包括彼此通信耦合的處理系統(tǒng)504、一個或多個計算機(jī)可讀介質(zhì)506和一個或多個IO接口508。盡管沒有示出,但是計算設(shè)備502還可以包括將各種組件彼此耦合的系統(tǒng)總線或其它數(shù)據(jù)和命令傳輸系統(tǒng)。系統(tǒng)總線可以包括不同總線結(jié)構(gòu)中的任何一個或組合,諸如存儲器總線或存儲器控制器、外圍總線、通用串行總線、和/或利用各種各樣的總線架構(gòu)中的任何一種的處理器或本地總線。還設(shè)想到各種各樣的其它示例,諸如控制和數(shù)據(jù)線路。
處理系統(tǒng)504代表使用硬件執(zhí)行一個或多個操作的功能性。相應(yīng)地,處理系統(tǒng)504被圖示為包括可以被配置成處理器、功能塊等等的硬件元件510。這可以包括作為專用集成電路或者使用一個或多個半導(dǎo)體形成的其它邏輯器件的按照硬件的實現(xiàn)。硬件元件510不受形成它們的材料或者其中所采用的處理機(jī)制的限制。例如,處理器可以包括(多個)半導(dǎo)體和/或晶體管(例如,電子集成電路(IC))。在這樣的上下文中,處理器可執(zhí)行指令可以是電子可執(zhí)行指令。
計算機(jī)可讀介質(zhì)506被圖示為包括存儲器/存儲裝置512。存儲器/存儲裝置512表示與一個或多個計算機(jī)可讀介質(zhì)相關(guān)聯(lián)的存儲器/存儲裝置容量。存儲器/存儲裝置512可以包括易失性介質(zhì)(諸如隨機(jī)存取存儲器(RAM))和/或非易失性介質(zhì)(諸如只讀存儲器(ROM)、閃存、光盤、磁盤等)。存儲器/存儲裝置512可以包括固定介質(zhì)(例如,RAM、ROM、固定硬驅(qū)動器等)以及可移除介質(zhì)(例如,閃存、可移除硬驅(qū)動器、光盤等)。計算機(jī)可讀介質(zhì)506可以以各種各樣的其它方式配置,如在下文進(jìn)一步所述。
(多個)輸入/輸出接口508代表允許用戶向計算設(shè)備502錄入命令和信息,并且還允許使用各種輸入/輸出設(shè)備將信息呈現(xiàn)給用戶和/或其它組件或設(shè)備的功能性。輸入設(shè)備的示例包括鍵盤、光標(biāo)控制設(shè)備(例如,鼠標(biāo))、麥克風(fēng)(例如,用于語音輸入)、掃描儀、觸摸功能性(例如,被配置成檢測物理觸摸的電容式或其它傳感器)、相機(jī)(例如,其可以采用可見或諸如紅外頻率之類的不可見波長以檢測不涉及觸摸的作為手勢的移動)等等。輸出設(shè)備的示例包括顯示設(shè)備(例如,監(jiān)視器或投影儀)、揚(yáng)聲器、打印機(jī)、網(wǎng)卡、觸覺響應(yīng)設(shè)備等等。因而,計算設(shè)備502可以以各種各樣的方式配置,如在下文進(jìn)一步所述,以支持用戶交互。
計算設(shè)備502還包括存儲器管理器514。存儲器管理器514提供針對可共享存儲器頁面的各種異步預(yù)取的功能性,如上文所討論。存儲器管理器514可以實現(xiàn)例如圖1的存儲器管理器102。盡管被圖示為與計算機(jī)可讀介質(zhì)506分離,但是應(yīng)當(dāng)指出,存儲器管理器514可以可替換地被實現(xiàn)為計算機(jī)可讀介質(zhì)506的部分。
本文可以在軟件、硬件元件或程序模塊的一般上下文中描述各種技術(shù)。一般地,這樣的模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對象、元件、組件、數(shù)據(jù)結(jié)構(gòu)等。如本文中使用的術(shù)語“模塊”、“功能性”和“組件”一般地表示軟件、固件、硬件或其組合。本文描述的技術(shù)的特征是獨立于平臺的,這意味著技術(shù)可以實現(xiàn)在具有各種各樣的處理器的各種各樣的計算平臺上。
所描述的模塊和技術(shù)的實現(xiàn)可以存儲在某種形式的計算機(jī)可讀介質(zhì)上或者跨其傳送。計算機(jī)可讀介質(zhì)可以包括可以由計算設(shè)備502訪問的各種各樣的介質(zhì)。作為示例而非限制,計算機(jī)可讀介質(zhì)可以包括“計算機(jī)可讀存儲介質(zhì)”和“計算機(jī)可讀信號介質(zhì)”。
“計算機(jī)可讀存儲介質(zhì)”是指使得能夠?qū)崿F(xiàn)信息的持久性存儲的介質(zhì)和/或設(shè)備和/或相對于單純的信號傳送、載波或信號本身而言的有形的存儲裝置。因而,計算機(jī)可讀存儲介質(zhì)是指非信號承載介質(zhì)。計算機(jī)可讀存儲介質(zhì)包括硬件,諸如易失性和非易失性、可移除和不可移除介質(zhì)和/或以適用于存儲諸如計算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊、邏輯元件/電路或其它數(shù)據(jù)之類的信息的方法或技術(shù)實現(xiàn)的存儲設(shè)備。計算機(jī)可讀存儲介質(zhì)的示例可以包括但不限于RAM、ROM、EEPROM、閃存或其它存儲器技術(shù)、CD-ROM、數(shù)字多用盤(DVD)或其它光學(xué)存儲裝置、硬盤、磁盒、磁帶、磁盤存儲或其它磁性存儲設(shè)備、或者適于存儲期望信息并且可以由計算機(jī)訪問的其它存儲設(shè)備、有形介質(zhì)或制造品。
“計算機(jī)可讀信號介質(zhì)”是指配置為諸如經(jīng)由網(wǎng)絡(luò)向計算設(shè)備502的硬件傳送指令的信號承載介質(zhì)。信號介質(zhì)典型地可以具體實現(xiàn)計算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊、或者調(diào)制數(shù)據(jù)信號(諸如載波、數(shù)據(jù)信號或者其它輸運(yùn)機(jī)制)中的其它數(shù)據(jù)。信號介質(zhì)還包括任何信息遞送介質(zhì)。術(shù)語“調(diào)制數(shù)據(jù)信號”意指這樣的信號,使其一個或多個特性按照將信息編碼在其中的這種方式進(jìn)行設(shè)定或改變。作為示例而非限制,通信介質(zhì)包括諸如有線網(wǎng)絡(luò)或直接有線連接之類的有線介質(zhì),以及諸如聲學(xué)、RF、紅外和其它無線介質(zhì)之類的無線介質(zhì)。
如之前所述,硬件元件510和計算機(jī)可讀介質(zhì)506代表以硬件形式實現(xiàn)的指令、模塊、可編程設(shè)備邏輯和/或固定設(shè)備邏輯,其在一些實施例中可以用于實現(xiàn)本文描述的技術(shù)的至少一些方面。硬件元件可以包括以下器件的組件:集成電路或片上系統(tǒng)、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)、復(fù)雜可編程邏輯器件(CPLD)、以及在硅或其它硬件設(shè)備中的其它實現(xiàn)。在該上下文中,硬件元件可以作為執(zhí)行由硬件元件具體實現(xiàn)的指令、模塊和/或邏輯所限定的程序任務(wù)的處理設(shè)備以及用于存儲指令以供執(zhí)行的硬件設(shè)備(例如之前描述的計算機(jī)可讀存儲介質(zhì))進(jìn)行操作。
前述內(nèi)容的組合也可以用于實現(xiàn)本文描述的各種技術(shù)和模塊。相應(yīng)地,軟件、硬件或程序模塊以及其它程序模塊可以實現(xiàn)為具體實現(xiàn)在某種形式的計算機(jī)可讀存儲介質(zhì)上和/或由一個或多個硬件元件510具體實現(xiàn)的一個或多個指令和/或邏輯。計算設(shè)備502可以配置為實現(xiàn)與軟件和/或硬件模塊對應(yīng)的特定指令和/或功能。相應(yīng)地,作為可由計算設(shè)備502作為軟件執(zhí)行的模塊的模塊實現(xiàn)可以至少部分地以硬件實現(xiàn),例如通過使用計算機(jī)可讀存儲介質(zhì)和/或處理系統(tǒng)的硬件元件510。指令和/或功能可以由一個或多個制造品(例如,一個或多個計算設(shè)備502和/或處理系統(tǒng)504)可執(zhí)行/可操作以實現(xiàn)本文描述的技術(shù)、模塊和示例。
如圖5中進(jìn)一步圖示,示例系統(tǒng)500使得在個人計算機(jī)(PC)、電視設(shè)備和/或移動設(shè)備上運(yùn)行應(yīng)用時能夠?qū)崿F(xiàn)用于無縫用戶體驗的普遍存在的環(huán)境。服務(wù)和應(yīng)用在所有三個環(huán)境中基本上類似地運(yùn)行以在利用應(yīng)用、播放視頻游戲、觀看視頻等的同時從一個設(shè)備向下一個設(shè)備轉(zhuǎn)變時得到共同的用戶體驗。
在示例系統(tǒng)500中,通過中央計算設(shè)備互連多個設(shè)備。中央計算設(shè)備可以在多個設(shè)備的本地或者可以位于多個設(shè)備的遠(yuǎn)方。在一個或多個實施例中,中央計算設(shè)備可以是通過網(wǎng)絡(luò)、互聯(lián)網(wǎng)或其它數(shù)據(jù)通信鏈路連接到多個設(shè)備的一個或多個服務(wù)器計算機(jī)的云。
在一個或多個實施例中,該互連架構(gòu)使得能夠跨多個設(shè)備遞送功能性以向多個設(shè)備的用戶提供共同且無縫的體驗。多個設(shè)備中的每一個可以具有不同的物理要求和能力,并且中央計算設(shè)備使用平臺以使得能夠向設(shè)備遞送既針對設(shè)備定制又是所有設(shè)備所共同的體驗。在一個或多個實施例中,創(chuàng)建目標(biāo)設(shè)備分類并且針對通用設(shè)備分類定制體驗。設(shè)備分類可以由設(shè)備的物理特征、使用類型或者其它共同特性來限定。
在各種實現(xiàn)中,計算設(shè)備502可以采取各種各樣的不同配置,諸如以用于計算機(jī)516、移動裝置518和電視520用途。這些配置中的每一個包括可以具有一般不同的構(gòu)造和性能的設(shè)備,并且因而計算設(shè)備502可以根據(jù)不同設(shè)備分類中的一個或多個進(jìn)行配置。例如,計算設(shè)備502可以實現(xiàn)為計算機(jī)516分類的設(shè)備,其包括個人計算機(jī)、桌上型計算機(jī)、多屏幕計算機(jī)、膝上型計算機(jī)、上網(wǎng)本等。
計算設(shè)備502還可以實現(xiàn)為移動裝置518分類的設(shè)備,其包括移動設(shè)備,諸如移動電話、便攜式音樂播放器、便攜式游戲設(shè)備、平板計算機(jī)、多屏幕計算機(jī)等。計算設(shè)備502還可以實現(xiàn)為電視520分類的設(shè)備,其包括在非正式觀看環(huán)境中具有或連接到一般更大的屏幕的設(shè)備。這些設(shè)備包括電視、機(jī)頂盒、游戲操控臺等。
本文描述的技術(shù)可以由計算設(shè)備502的這些各種配置來支持并且不限于本文描述的技術(shù)的具體示例。該功能性還可以全部地或者部分地通過使用分布式系統(tǒng)而實現(xiàn),諸如在“云”522之上經(jīng)由平臺524,如下文所述。
云522包括和/或代表用于資源526的平臺524。平臺524對云522的硬件(例如服務(wù)器)和軟件資源的底層功能性進(jìn)行抽象。資源526可以包括在遠(yuǎn)離計算設(shè)備502的服務(wù)器上執(zhí)行計算機(jī)處理的同時可以利用的應(yīng)用和/或數(shù)據(jù)。資源526還可以包括在互聯(lián)網(wǎng)之上和/或通過訂戶網(wǎng)絡(luò)(諸如蜂窩或Wi-Fi網(wǎng)絡(luò))提供的服務(wù)。
平臺524可以對資源和功能進(jìn)行抽象以將計算設(shè)備502與其它計算設(shè)備連接。平臺524還可以服務(wù)于抽象資源的伸縮以針對所遇到的經(jīng)由平臺524而實現(xiàn)的資源526的需求而提供對應(yīng)級別的規(guī)模。相應(yīng)地,在互連設(shè)備環(huán)境中,本文描述的功能性的實現(xiàn)可以遍及系統(tǒng)500而分布。例如,功能性可以部分地在計算設(shè)備502上以及經(jīng)由抽象云522的功能性的平臺524而實現(xiàn)。
盡管已經(jīng)以特定于結(jié)構(gòu)特征和/或方法動作的語言描述了主題,但是要理解到,在隨附權(quán)利要求中限定的主題未必限于以上描述的具體特征或動作。相反,以上描述的具體特征和動作是作為實現(xiàn)權(quán)利要求的示例形式而公開的。