專利名稱:基于存儲(chǔ)器調(diào)頁(yè)行為關(guān)聯(lián)非相關(guān)進(jìn)程內(nèi)線程的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明 一般涉及數(shù)據(jù)處理系統(tǒng)并且特別涉及內(nèi)核進(jìn)程管理。更為特別 地,本發(fā)明涉及一種用于關(guān)聯(lián)來(lái)自非相關(guān)進(jìn)程的線程的改進(jìn)的方法、系統(tǒng) 和程序產(chǎn)品。
背景技術(shù):
典型的個(gè)人計(jì)算機(jī)的存儲(chǔ)器系統(tǒng)包括一個(gè)或多個(gè)諸如磁盤(pán)或光盤(pán)之類(lèi)的非易失性大容量存儲(chǔ)設(shè)備和易失性隨機(jī)讀取存儲(chǔ)器(RAM)、以及易失 性隨機(jī)存取存儲(chǔ)器,其可以包括高速緩沖存儲(chǔ)器和較低速率的主存儲(chǔ)器二 者。為了提供足夠的用于存儲(chǔ)器映射的輸入/輸出(I/O)的地址以及由操 作系統(tǒng)和應(yīng)用軟件所使用的數(shù)據(jù)和指令,個(gè)人計(jì)算機(jī)的處理器通常使用包 括了比RAM中物理上存在的多得多的地址的虛擬地址空間。由此,為了 執(zhí)行存儲(chǔ)器映射的I/O或?yàn)榱嗽L問(wèn)RAM,處理器將虛擬地址映射到已分配 給特定I/O i殳備的物理地址或RAM內(nèi)的物理位置。在PowerPC RISC體系結(jié)構(gòu)中,虛擬地址空間被分區(qū)成許多存儲(chǔ)頁(yè) 面,其中每個(gè)存儲(chǔ)頁(yè)面具有被稱為頁(yè)表項(xiàng)(PTE)的地址描述符。對(duì)應(yīng)著 特定存儲(chǔ)頁(yè)面的PTE包含該存儲(chǔ)頁(yè)面的虛擬地址和該頁(yè)幀的相關(guān)聯(lián)的物 理地址,由此使處理器能夠?qū)⒃摯鎯?chǔ)頁(yè)面內(nèi)的任何虛擬地址翻譯成存儲(chǔ)器 中的物理地址。由操作系統(tǒng)在存儲(chǔ)器中創(chuàng)建的PTE位于頁(yè)表項(xiàng)組(PTEG) 中,每個(gè)頁(yè)表項(xiàng)組(PTEG )可以包含例如多至八個(gè)PTE。根據(jù)PowerPCTM 體系結(jié)構(gòu),特定的PTE可以位于主PTEG或次PTEG中的任何一個(gè)中的 任意位置,主PTEG和次PTEG是通過(guò)分別對(duì)存儲(chǔ)頁(yè)面的虛擬地址執(zhí)4亍主 和次哈希函數(shù)來(lái)選擇的。為了改善性能,處理器還包括轉(zhuǎn)換后備緩沖器 (TLB ),其存儲(chǔ)最近被訪問(wèn)的PTE用于進(jìn)行快速訪問(wèn)。在常規(guī)計(jì)算機(jī)操作系統(tǒng)(OS)中,多個(gè)處理器的線程可以共享單一物理處理器。每個(gè)進(jìn)程線程周期性地被處理器執(zhí)行預(yù)定量的時(shí)間(常稱為時(shí) 間片)。然而,活動(dòng)的進(jìn)程線程很少在一時(shí)鐘周期期間使用現(xiàn)代處理器內(nèi)的所有多個(gè)執(zhí)行單元。同時(shí)多線程(SMT)使多個(gè)進(jìn)程的線程能夠在同一 時(shí)鐘周期中執(zhí)行不同的指令,由此使用了否則將被單個(gè)進(jìn)程線程擱置空閑 的執(zhí)行單元。應(yīng)用程序常需要來(lái)自諸如設(shè)備驅(qū)動(dòng)程序或端口監(jiān)控程序(daemon)之 類(lèi)的另一應(yīng)用(也稱為"伙伴應(yīng)用")或內(nèi)核進(jìn)程的協(xié)助,以完成一個(gè)或 多個(gè)操作。在某些情況下,伙伴應(yīng)用或協(xié)助內(nèi)核進(jìn)程在應(yīng)用程序被編碼時(shí) 是未知的,因?yàn)閼?yīng)用程序、數(shù)據(jù)處理系統(tǒng)硬件以及操作系統(tǒng)常常是獨(dú)立開(kāi) 發(fā)或由不同廠家開(kāi)發(fā)的。當(dāng)存儲(chǔ)器約束或其它操作條件導(dǎo)致應(yīng)用程序被調(diào) 頁(yè)(page)進(jìn)存儲(chǔ)器時(shí),依賴于伙伴應(yīng)用或協(xié)助內(nèi)核進(jìn)程的幫助的應(yīng)用程 序常展現(xiàn)出次優(yōu)的性能,因?yàn)榛锇閼?yīng)用/進(jìn)程將也被以"滯后(lagging)" 的方式調(diào)頁(yè)進(jìn)存儲(chǔ)器。以"滯后"的方式將伙伴應(yīng)用/進(jìn)程調(diào)頁(yè)進(jìn)存儲(chǔ)器延 遲了執(zhí)行所協(xié)助的應(yīng)用,所協(xié)助的應(yīng)用在執(zhí)行路徑上正在等待伙伴應(yīng)用的 調(diào)頁(yè)(page-in)。發(fā)明內(nèi)容所公開(kāi)的是一種在存儲(chǔ)器調(diào)頁(yè)行為方面將非相關(guān)應(yīng)用內(nèi)的相關(guān)進(jìn)程線 程連接(tie)到一起的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品。在數(shù)據(jù)處理系統(tǒng)中, 第一進(jìn)程線程與單獨(dú)的高等待時(shí)間的存儲(chǔ)位置內(nèi)的一個(gè)或多個(gè)"伙伴"線 程相關(guān)。內(nèi)核基于用戶輸入、線程"調(diào)頁(yè),,模式、以力或者這些線程數(shù)據(jù) 結(jié)構(gòu)內(nèi)的預(yù)定義的標(biāo)識(shí)信息來(lái)標(biāo)識(shí)該第一線程的一個(gè)或多個(gè)相關(guān)線程。出 于存儲(chǔ)器管理調(diào)頁(yè)的目的,內(nèi)核用該線程標(biāo)識(shí)信息來(lái)將該第一線程與一個(gè) 或多個(gè)相關(guān)伙伴線程聚集到一起。因此,第一線程和匹配的相關(guān)伙伴線程 在相同或相近的執(zhí)行周期內(nèi)被調(diào)頁(yè)進(jìn)較低等待時(shí)間的存儲(chǔ)器,由此消除了 針對(duì)第 一線程的執(zhí)行延遲,否則第一線程在以滯后的方式將一個(gè)或多個(gè)伙 伴線程從單獨(dú)的較高等待時(shí)間的存儲(chǔ)位置調(diào)頁(yè)進(jìn)較低等待時(shí)間的存儲(chǔ)器時(shí)將必須進(jìn)行等待。因此,在存儲(chǔ)器調(diào)頁(yè)行為方面將來(lái)自非相關(guān)應(yīng)用的相關(guān) 線程連接到一起通過(guò)改善存儲(chǔ)器管理而提高了處理器的執(zhí)行效率。在以下詳細(xì)的書(shū)面描述中,本發(fā)明的上述內(nèi)容以及另外的目標(biāo)、特征 和優(yōu)點(diǎn)將是顯而易見(jiàn)的。
通過(guò)參考以下結(jié)合附圖來(lái)閱讀的說(shuō)明性實(shí)施例的詳細(xì)描述,將能最好地理解本發(fā)明自身及其優(yōu)選的使用模式、別的目標(biāo)、以及優(yōu)點(diǎn),在附圖中圖l描繪了根據(jù)本發(fā)明的示例性數(shù)據(jù)處理系統(tǒng);圖2示出了4艮據(jù)本發(fā)明的在不同進(jìn)程內(nèi)的線程以及相關(guān)"伙伴,,線程 的框圖;圖3A是根據(jù)本發(fā)明的、出于存儲(chǔ)器調(diào)頁(yè)的目的使用內(nèi)核推導(dǎo) (deduction )來(lái)關(guān)聯(lián)來(lái)自非相關(guān)應(yīng)用的相關(guān)進(jìn)程的示例性方法的高層邏輯 流禾呈圖;以及圖3B是根據(jù)本發(fā)明的、出于存儲(chǔ)器調(diào)頁(yè)的目的使用可編程用戶接口 來(lái)把來(lái)自非相關(guān)應(yīng)用的相關(guān)進(jìn)程關(guān)聯(lián)起來(lái)的示例性方法的高層邏輯流程 圖。
具體實(shí)施方式
現(xiàn)在,參考各圖并且特別參考圖1,描繪了其中可以使用本發(fā)明的示 例性計(jì)算機(jī)100的框圖。計(jì)算機(jī)100包括耦合到系統(tǒng)總線106的處理器單 元104。驅(qū)動(dòng)/支持顯示器110的視頻適配器108也耦合到系統(tǒng)總線106。 系統(tǒng)總線106經(jīng)由總線橋112耦合到輸入/輸出(I/O)總線114。 1/0接口 116耦合到I/O總線114。 I/O接口 116提供與各種I/O設(shè)備的通信,各種 1/0設(shè)備包括鍵盤(pán)118、鼠標(biāo)120、數(shù)字通用盤(pán)(DVD)驅(qū)動(dòng)器122、軟盤(pán) 驅(qū)動(dòng)器124以及閃存驅(qū)動(dòng)存儲(chǔ)器126。連接到1/0接口 116的各端口的格 式可以是計(jì)算機(jī)體系結(jié)構(gòu)領(lǐng)域的技術(shù)人員所公知的任何一種,其包括但不 限于通用串行總線(USB)端口。計(jì)算機(jī)100能夠使用耦合到系統(tǒng)總線106的網(wǎng)^!妾口 130經(jīng)由網(wǎng)絡(luò)128 與服務(wù)器150進(jìn)行通信。網(wǎng)絡(luò)128可以是諸如因特網(wǎng)之類(lèi)的外部網(wǎng)絡(luò)或諸 如以太網(wǎng)之類(lèi)的內(nèi)部網(wǎng)絡(luò)或虛擬專用網(wǎng)(VPN)。硬盤(pán)驅(qū)動(dòng)器接口 132也耦合到系統(tǒng)總線106。硬盤(pán)驅(qū)動(dòng)器接口 132與 硬盤(pán)驅(qū)動(dòng)器134進(jìn)行接口 。在優(yōu)選的實(shí)施例中,"慢速"或較高等待時(shí)間 的數(shù)據(jù)存儲(chǔ)設(shè)^(例如,硬盤(pán)驅(qū)動(dòng)器134和DVD驅(qū)動(dòng)器122 )填充(populate ) 一個(gè)或多個(gè)也耦合到系統(tǒng)總線106的"快速"或較低等待時(shí)間的存儲(chǔ)設(shè)備 (例如,系統(tǒng)存儲(chǔ)器136 )。系統(tǒng)存儲(chǔ)器106被定義為計(jì)算機(jī)100中的最 低級(jí)別的易失性存儲(chǔ)器。這種易失性存儲(chǔ)器可以包括另外的更高級(jí)別的易 失性存儲(chǔ)器(未示出),其包括但不限于高速緩沖存儲(chǔ)器、寄存器和緩沖 器。填充系統(tǒng)存儲(chǔ)器136的代碼包括操作系統(tǒng)(OS) 138和應(yīng)用程序144。OS 138包括命令解釋程序(shell) 140,用于提供對(duì)諸如應(yīng)用程序144 之類(lèi)的資源的透明的用戶訪問(wèn)。通常,命令解釋程序140 (如它在UNIX 中所稱呼的那樣)是提供用戶與操作系統(tǒng)之間的接口和解釋器的程序。如 所描繪的那樣,OS 138還包括內(nèi)核142,其包括用于OS 138的較^f氐層的 功能。內(nèi)核142提供OS138的其它部分和應(yīng)用程序144所需的必要服務(wù)。 內(nèi)核142所提供的服務(wù)包括存儲(chǔ)器管理、進(jìn)程和任務(wù)管理、盤(pán)管理、以及 鼠標(biāo)和鍵盤(pán)管理。應(yīng)用程序144包括瀏覽器146和媒體播放器148。瀏覽器146包括使 萬(wàn)維網(wǎng)(WWW)客戶端(也即計(jì)算機(jī)100)能夠發(fā)送和接收到因特網(wǎng)的 網(wǎng)絡(luò)消息的程序模塊和指令。計(jì)算機(jī)100可利用超文本傳送協(xié)議(HTTP) 和簡(jiǎn)單郵件傳送協(xié)議(SMTP)消息傳送來(lái)使能與服務(wù)器150的通信。媒 體播放器148使計(jì)算機(jī)100能夠執(zhí)行來(lái)自諸如DVD驅(qū)動(dòng)器122、硬盤(pán)驅(qū)動(dòng) 器134和服務(wù)器150之類(lèi)的一個(gè)或多個(gè)存儲(chǔ)位置的各種音頻和/或可視媒體 程序。在計(jì)算機(jī)100中所描繪的硬件組件不是旨在進(jìn)行窮舉,而是表示和/ 或突出可以被用來(lái)實(shí)現(xiàn)本發(fā)明的某些部件。例如,計(jì)算機(jī)100可包括諸如 盒式磁帶、致密盤(pán)只讀存儲(chǔ)器(CD-ROM )等等之類(lèi)的可替換的存儲(chǔ)設(shè)備。這些以及其它變體旨在屬于本發(fā)明的精神和范圍內(nèi)?,F(xiàn)在參考圖2,描繪了根據(jù)本發(fā)明的線程200和相關(guān)"伙伴"線程205 的框圖。如此處所使用,相關(guān)伙伴線程是指提供信息和/或執(zhí)行線程200所 需的進(jìn)程的線程。在一個(gè)例子中,線程200形成媒體播放器148(來(lái)自圖1) 的一部分,其在沒(méi)有運(yùn)行時(shí)駐留在硬盤(pán)驅(qū)動(dòng)器134中,而伙伴線程205駐 留于DVD驅(qū)動(dòng)器122 (來(lái)自圖1)中的DVD上。相關(guān)線程可源于不同的 非相關(guān)進(jìn)程、設(shè)備驅(qū)動(dòng)程序或內(nèi)核腳本。線程200包括對(duì)于線程200來(lái)說(shuō) 唯一的線程標(biāo)識(shí)符(ID) 210、標(biāo)簽值225以及觸發(fā)值220a,如在下面在 圖3A和3B中所示出和所討論的那樣,觸發(fā)值220a可以用于將線程200 連接(tie)到獨(dú)立的相關(guān)線程。如此處所使用的,線程ID是指線程的數(shù) 據(jù)結(jié)構(gòu)內(nèi)所包括的預(yù)定義標(biāo)識(shí)信息。類(lèi)似地,伙伴線程205包括對(duì)于線程 205來(lái)說(shuō)唯一的線程ID215、標(biāo)簽值230、觸發(fā)值220b,其將伙伴線程205 連接到線程200。根據(jù)說(shuō)明性的實(shí)施例,當(dāng)處理器單元104執(zhí)行媒體播放器148的線程 200時(shí),線程200需要來(lái)自位于DVD驅(qū)動(dòng)器122 (也即高等待時(shí)間的存儲(chǔ) 裝置)中的伙伴線程205的輸入或處理。內(nèi)核63使用下面所討論的圖3A 和3B中所示出的方法之一將伙伴線程205連接到線程200,以確保在與線 程200相同的或者隨后緊跟著的執(zhí)行周期處開(kāi)始之時(shí)伙伴線程205被調(diào)頁(yè) 進(jìn)系統(tǒng)存儲(chǔ)器136 (也即低等待時(shí)間的存儲(chǔ)裝置)。因此,當(dāng)內(nèi)核63在與 線程200的相同或相近的執(zhí)行周期內(nèi)喚醒系統(tǒng)存儲(chǔ)器136中的伙伴線程 205時(shí),內(nèi)核63能夠消除執(zhí)行延遲,否則如果線程200必須等待用滯后的 方式從DVD驅(qū)動(dòng)器122中調(diào)頁(yè)伙伴線程205 ,則這種執(zhí)行延遲將會(huì)發(fā)生?,F(xiàn)在轉(zhuǎn)到圖3A,示出了根據(jù)本發(fā)明的、出于存儲(chǔ)器調(diào)頁(yè)的目的使用內(nèi) 核推導(dǎo)來(lái)關(guān)聯(lián)相關(guān)進(jìn)程的示例性方法的高層邏輯流程圖。響應(yīng)于處理器單 元104執(zhí)行線程200,進(jìn)程開(kāi)始于方框300處并接著前進(jìn)到方框305,其描 繪了內(nèi)核63建立、訪問(wèn)或確定分析窗口的持續(xù)期。分析窗口是內(nèi)核63在 其間跟蹤并分析處于活動(dòng)和/或休眠狀態(tài)的多個(gè)有效(live)線程的調(diào)頁(yè)才莫 式的時(shí)間段。在一個(gè)實(shí)施例中,分析窗口的持續(xù)期可以是主存儲(chǔ)器50中所存儲(chǔ)的預(yù)定的常數(shù)或缺省值。在另一實(shí)施例中,內(nèi)核63可提供圖形用戶界 面(GUI)以提示用戶來(lái)定義分析窗口的持續(xù)期。在方框310處,內(nèi)核63分析在所定義的分析窗口內(nèi)是活動(dòng)的線程的調(diào) 頁(yè)模式以便標(biāo)識(shí)可能相關(guān)的線程(也即伙伴線程)。如方框315中所示出 那樣,如果在分析窗口內(nèi)線程200在處理器單元104的一個(gè)或多個(gè)執(zhí)行周 期期間"醒來(lái)"或被調(diào)頁(yè)進(jìn)頁(yè)表60,則內(nèi)核63在相同的N (其中N大于 或等于1)個(gè)周期期間確定線程200是否需要來(lái)自任何伙伴線程205的輸 入(也即向任何伙伴線程205發(fā)出調(diào)頁(yè)請(qǐng)求)。如果內(nèi)核63確定在分才斤窗 口內(nèi)沒(méi)有任何伙伴線程205展現(xiàn)出與線程200相同的調(diào)頁(yè)行為,則線程匹 配過(guò)程在方框325處終止。如果在方框315處內(nèi)核63確定一個(gè)或多個(gè)伙伴線程205展現(xiàn)出與線程 200相同的調(diào)頁(yè)行為,則如方框320所示內(nèi)核63用唯一的觸發(fā)值220來(lái)標(biāo) 記線程200和它的一個(gè)或多個(gè)伙伴線程205,并且過(guò)程在方框325處終止。 如此處所使用的,唯一的觸發(fā)值220是指標(biāo)記一個(gè)或多個(gè)線程的組的值, 以使內(nèi)核63能夠?qū)⒐蚕碇嗤挠|發(fā)值220的線程標(biāo)識(shí)為一組,以及在與 處理器單元104的相同或幾乎同步的執(zhí)行周期內(nèi)喚醒該組和/或?qū)⒃摻M調(diào)頁(yè) 進(jìn)系統(tǒng)存儲(chǔ)器136。內(nèi)核63可以出于存儲(chǔ)器調(diào)頁(yè)目的使用多個(gè)唯一觸發(fā)值 220來(lái)標(biāo)識(shí)并聚集不同的線程200和它們對(duì)應(yīng)的伙伴線程205。現(xiàn)在轉(zhuǎn)到圖3B,示出根據(jù)本發(fā)明的、將相關(guān)線程從非相關(guān)進(jìn)程調(diào)頁(yè)進(jìn) 低等待時(shí)間的數(shù)據(jù)存儲(chǔ)裝置的存儲(chǔ)器管理的示例性方法的高層邏輯流程 圖。過(guò)程開(kāi)始于方框330并且接著前進(jìn)到方框335,其描繪內(nèi)核63確定線 程200是否已經(jīng)祐:調(diào)頁(yè)進(jìn)系統(tǒng)存儲(chǔ)器136供執(zhí)行。如果線程200還沒(méi)有被 調(diào)頁(yè)進(jìn)系統(tǒng)存儲(chǔ)器136,則過(guò)程返回到方框335。 一旦內(nèi)核63確定線程200 已經(jīng)被調(diào)頁(yè)進(jìn)系統(tǒng)存儲(chǔ)器136,則如方框340中所描繪的那樣,內(nèi)核63確 定線程200是否在線程200的數(shù)據(jù)結(jié)構(gòu)內(nèi)包括標(biāo)簽值225,該標(biāo)簽值225 向內(nèi)核63指示出線程200具有相關(guān)的伙伴線程205。如果內(nèi)核63確定線程200不包括指示出線程200具有相關(guān)的伙伴線程 205的標(biāo)簽值225 (也即,線程200不依賴于任何伙伴線程205),則線程匹配過(guò)程在方框360處終止。如果內(nèi)核63確定線程200包括標(biāo)簽值225, 其被設(shè)置成指示出線程200具有相關(guān)的伙伴線程205 (也即,線程200依 賴于一個(gè)或多個(gè)伙伴線程205),則如方框345中所描繪的那樣,內(nèi)核63 搜索包括匹配線程200的觸發(fā)值220a的觸發(fā)值220的伙伴線程205。才艮據(jù) 說(shuō)明性的實(shí)施例,在一個(gè)或多個(gè)相關(guān)線程的集合內(nèi)的每個(gè)線程(例如,線 程200和一個(gè)或多個(gè)伙伴線程205)包括相同的觸發(fā)值220。因此,觸發(fā)值 對(duì)于特定集合的相關(guān)線程而言是唯一的,從而內(nèi)核63可以識(shí)別不同集合的 相關(guān)線程。在方框350處,內(nèi)核63確定在方框345處如上所述所執(zhí)行的搜索期間 是否發(fā)現(xiàn)了包括與線程200的觸發(fā)值220a相匹配的觸發(fā)值220的一個(gè)或多 個(gè)伙伴線程205 (也即匹配的伙伴線程205)。如果內(nèi)核63沒(méi)有找到具有 與線程200的觸發(fā)值220a相匹配的觸發(fā)值220的 一個(gè)或多個(gè)伙伴線程205, 則過(guò)程返回到方框345直到一個(gè)或多個(gè)匹配的伙伴線程205 ^皮標(biāo)識(shí)為止。 一旦內(nèi)核63標(biāo)識(shí)一個(gè)或多個(gè)匹配的伙伴線程205,則如方框355中所描繪 那樣,內(nèi)核在相同或相近的執(zhí)行周期中將相關(guān)線程調(diào)頁(yè)進(jìn)系統(tǒng)存儲(chǔ)器136, 并且過(guò)程在方框360處終止。因此,本發(fā)明使內(nèi)核63能夠基于用戶輸入和/或線程數(shù)據(jù)結(jié)構(gòu)內(nèi)的預(yù) 定義標(biāo)識(shí)信息來(lái)標(biāo)識(shí)不同應(yīng)用內(nèi)的相關(guān)的線程組。出于調(diào)頁(yè)目的,內(nèi)核63 使用線程標(biāo)識(shí)信息來(lái)將線程200和一個(gè)或多個(gè)伙伴線程205聚集起來(lái),由 此通過(guò)使一個(gè)或多個(gè)伙伴線程205能夠在與線程200的相同或相近的執(zhí)行 周期內(nèi)被調(diào)頁(yè)進(jìn)系統(tǒng)存儲(chǔ)器136,消除了針對(duì)線程200的執(zhí)行延遲。因此, 本發(fā)明通過(guò)關(guān)聯(lián)駐留于可能不同的高等待時(shí)間的存儲(chǔ)位置中的相關(guān)線程供 在執(zhí)行期間同時(shí)或近似同時(shí)調(diào)頁(yè)進(jìn)低等待時(shí)間的數(shù)據(jù)存儲(chǔ)裝置(例如系統(tǒng) 存儲(chǔ)器136),提高了處理器單元104的執(zhí)行效率。應(yīng)當(dāng)理解,此處對(duì)具體名字的使用僅是用于舉例并且意思不是暗示對(duì) 本發(fā)明的任何限制。因此,本發(fā)明可不受任何限制地通過(guò)被用于描述上面 的設(shè)備/工具等的不同命名/術(shù)語(yǔ)以及相關(guān)聯(lián)的功能來(lái)實(shí)現(xiàn)。盡管在具有已安裝的軟件的功能完整的計(jì)算機(jī)系統(tǒng)的背景中描述了本發(fā)明的說(shuō)明性實(shí)施例,但是本領(lǐng)域的技術(shù)人員將意識(shí)到本發(fā)明的說(shuō)明性實(shí) 施例的軟件方面能夠以各種形式被分布成程序產(chǎn)品,并且本發(fā)明的說(shuō)明性 實(shí)施例同樣適用,而與被用于實(shí)際執(zhí)行這種分布的信號(hào)承栽介質(zhì)的特定類(lèi) 型無(wú)關(guān)。信號(hào)承栽介質(zhì)的例子包括諸如便攜驅(qū)動(dòng)器、軟盤(pán)、硬盤(pán)驅(qū)動(dòng)器、CD ROM、 DVD之類(lèi)的可記錄類(lèi)型的介質(zhì)和諸如數(shù)字和模擬通信鏈路之類(lèi)的傳輸類(lèi)型的介質(zhì)。盡管已參考優(yōu)選的實(shí)施例特別地示出和描述了本發(fā)明,但本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解在不偏離本發(fā)明的精神和范圍的條件下此處可以在形式和細(xì)節(jié)上做出各種改變。
權(quán)利要求
1.數(shù)據(jù)處理系統(tǒng)中的一種方法,包括分析包括了第一和第二線程的多個(gè)線程的存儲(chǔ)器調(diào)頁(yè)模式;基于所述多個(gè)線程的所述存儲(chǔ)器調(diào)頁(yè)模式將所述第二線程標(biāo)識(shí)為與所述第一線程相關(guān);存儲(chǔ)所述第二線程與所述第一線程相關(guān)的指示;以及當(dāng)將所述第一線程從較高等待時(shí)間的數(shù)據(jù)存儲(chǔ)裝置調(diào)頁(yè)進(jìn)較低等待時(shí)間的數(shù)據(jù)存儲(chǔ)裝置時(shí),檢查相關(guān)線程的已存儲(chǔ)的指示并且基于所述已存儲(chǔ)的指示將所述第二線程調(diào)頁(yè)進(jìn)所述較低等待時(shí)間的數(shù)據(jù)存儲(chǔ)裝置。
2. 根據(jù)權(quán)利要求l所述的方法,其中分析所述存儲(chǔ)器調(diào)頁(yè)模式進(jìn)一步 包括定義包括了預(yù)定數(shù)目的執(zhí)行周期的分析窗口 。
3. 根據(jù)權(quán)利要求l所述的方法,其中存儲(chǔ)所述指示包括存儲(chǔ)觸發(fā)值。
4. 根據(jù)權(quán)利要求3所述的方法,其中所述存儲(chǔ)所述觸發(fā)值進(jìn)一步包括 在所述第 一線程的數(shù)據(jù)結(jié)構(gòu)內(nèi)存儲(chǔ)所述觸發(fā)值。
5. 根據(jù)權(quán)利要求4所述的方法,其中所述多個(gè)線程進(jìn)一步包括也與所述第一線程相關(guān)的第三線程;以及 存儲(chǔ)觸發(fā)值的所述步驟進(jìn)一步包括在所述第二和第三線程中存儲(chǔ)所述 觸發(fā)值。
6. 根據(jù)權(quán)利要求l所述的方法,其中將所述第二線程調(diào)頁(yè)進(jìn)較低等待 時(shí)間的數(shù)據(jù)存儲(chǔ)裝置是在與將所述第一線程調(diào)頁(yè)進(jìn)所述存儲(chǔ)器的相同的執(zhí) 行周期中開(kāi)始的。
7. —種數(shù)據(jù)處理系統(tǒng),包括 處理器;存儲(chǔ)器;所述存儲(chǔ)器中的內(nèi)核,其中所述存儲(chǔ)器存儲(chǔ)所述內(nèi)核在所述處理器上 執(zhí)行進(jìn)程期間所使用的多個(gè)線程;用于分析包括了第一和第二線程的所述多個(gè)線程的存儲(chǔ)器調(diào)頁(yè)模式的裝置;用于基于所述多個(gè)線程的所述存儲(chǔ)器調(diào)頁(yè)模式將所述第二線程標(biāo)識(shí)為與所述第一線程相關(guān)的裝置;用于存儲(chǔ)所述第二線程與所述第 一線程相關(guān)的指示的裝置;當(dāng)將所述第 一線程從較高等待時(shí)間的數(shù)據(jù)存儲(chǔ)裝置調(diào)頁(yè)進(jìn)較低等待時(shí)間的數(shù)據(jù)存儲(chǔ)裝置時(shí),用于檢查相關(guān)線程的已存儲(chǔ)的指示并且基于所述已存儲(chǔ)的指示將所述第二線程調(diào)頁(yè)進(jìn)所述較低等待時(shí)間的數(shù)據(jù)存儲(chǔ)裝置的裝置。
8. 根據(jù)權(quán)利要求7所述的數(shù)據(jù)處理系統(tǒng),其中用于分析所述存儲(chǔ)器調(diào) 頁(yè)模式的所述裝置進(jìn)一步包括用于定義包括了預(yù)定數(shù)目的執(zhí)行周期的分析 窗口的裝置。
9. 根據(jù)權(quán)利要求7所述的數(shù)據(jù)處理系統(tǒng),其中用于存儲(chǔ)所述指示的所 述裝置包括用于存儲(chǔ)觸發(fā)值的裝置。
10. 根據(jù)權(quán)利要求9所述的數(shù)據(jù)處理系統(tǒng),其中用于存儲(chǔ)所述觸發(fā)值 的裝置進(jìn)一步包括用于在所述第一線程的數(shù)據(jù)結(jié)構(gòu)內(nèi)存儲(chǔ)所述觸發(fā)值的裝 置。
11. 根據(jù)權(quán)利要求10所述的數(shù)據(jù)處理系統(tǒng),其中 所述多個(gè)線程進(jìn)一步包括也與所述第一線程相關(guān)的第三線程;以及 用于存儲(chǔ)觸發(fā)值的所述裝置進(jìn)一步包括在所述第二和第三線程中存儲(chǔ)所述觸發(fā)值。
12. 根據(jù)權(quán)利要求7所述的數(shù)據(jù)處理系統(tǒng),其中將所述第二線程調(diào)頁(yè) 進(jìn)較低等待時(shí)間的數(shù)據(jù)存儲(chǔ)裝置是在與將所述第一線程調(diào)頁(yè)進(jìn)所述存儲(chǔ)器 的相同的執(zhí)行周期中開(kāi)始的。
全文摘要
一種在存儲(chǔ)器調(diào)頁(yè)行為方面將非相關(guān)應(yīng)用內(nèi)的相關(guān)進(jìn)程線程連接到一起的方法。在數(shù)據(jù)處理系統(tǒng)中,第一進(jìn)程線程與單獨(dú)的高等待時(shí)間的存儲(chǔ)位置內(nèi)的一個(gè)或多個(gè)“伙伴”線程相關(guān)。內(nèi)核分析多個(gè)線程的存儲(chǔ)器“調(diào)頁(yè)”模式并且基于用戶輸入、已觀察的存儲(chǔ)器調(diào)頁(yè)模式、以及/或者這些線程數(shù)據(jù)結(jié)構(gòu)內(nèi)的預(yù)定義的標(biāo)識(shí)信息來(lái)標(biāo)識(shí)第一線程的一個(gè)或多個(gè)伙伴線程。內(nèi)核用唯一的線程標(biāo)識(shí)符來(lái)標(biāo)記第一線程和它的對(duì)應(yīng)的相關(guān)伙伴線程。當(dāng)?shù)谝痪€程隨后被調(diào)頁(yè)進(jìn)更低等待時(shí)間的存儲(chǔ)器時(shí),內(nèi)核也步伐一致地調(diào)頁(yè)用該唯一線程標(biāo)識(shí)符標(biāo)記了的相關(guān)伙伴線程。在存儲(chǔ)器調(diào)頁(yè)行為方面將來(lái)自非相關(guān)應(yīng)用的相關(guān)線程連接到一起消除了存儲(chǔ)器管理延遲。
文檔編號(hào)G06F12/08GK101251811SQ200810081209
公開(kāi)日2008年8月27日 申請(qǐng)日期2008年2月19日 優(yōu)先權(quán)日2007年2月20日
發(fā)明者G·F·麥克布瑞爾蒂, J·C·穆里洛, J·M-H·謝, S·P·馬倫 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司