專利名稱:計(jì)算裝置中的可搶占語(yǔ)境切換的制作方法
計(jì)算裝置中的可搶占語(yǔ)境切換本發(fā)明涉及改進(jìn)多任務(wù)計(jì)算裝置的性能、響應(yīng)性和效率,并且具體地,涉及通過(guò)使用可搶先(pre-emptible或稱可搶占)的語(yǔ)境切 換來(lái)提供這些種改進(jìn)。5 術(shù)語(yǔ)"計(jì)算裝置"包括但不限于,臺(tái)式及膝上型計(jì)算機(jī)、個(gè)人數(shù)字助理(PDA)、移動(dòng)電話、智能手機(jī)、It碼相機(jī)以及數(shù)字音樂(lè) 播放器。它還包括合并了一種或多種上述裝置的功能的集成裝置, 和許多其他形式的、在其功能上^衣靠于軟件的工業(yè)與家用電子i殳 備。10 多數(shù)先進(jìn)的計(jì)算裝置是由操作系統(tǒng)(OS )控制的,該操作系統(tǒng)控制著裝置的所有操作。在OS中,內(nèi)核代表中心核,它具有超越裝置中其它所有^:件和^i件之上的、非常高的控制等級(jí);典型地,所述內(nèi)核在特權(quán)管理程序^^莫式下運(yùn)行,由此它就;故信任去做普通應(yīng) 用程序(在用戶模式下運(yùn)行)不被信任去做的任務(wù)。15 多任務(wù)計(jì)算裝置可在若千單獨(dú)指令串中的任一個(gè)的執(zhí)行之間快速切換,其中,每個(gè)連貫的串被稱為線程。因此,線程被當(dāng)作該 裝置上的執(zhí)行單元。線程間的切換:帔稱為語(yǔ)境切換。計(jì)算裝置上的內(nèi)存在不同的進(jìn)程之間被分割,其中,每個(gè)進(jìn)程 都由一個(gè)或多個(gè)線禾呈組成。當(dāng)進(jìn)禾呈由多于一個(gè)的線禾呈組成時(shí),該進(jìn) 20 程中的所有線程都可以訪問(wèn)同一個(gè)共享內(nèi)存;但一個(gè)進(jìn)程中的線程除了訪問(wèn)其自身進(jìn)程的內(nèi)存以外不能訪問(wèn)其他進(jìn)程的內(nèi)存。因此, 該進(jìn)程可被當(dāng)作裝置上的內(nèi)存保護(hù)單元。由此得出,當(dāng)計(jì)算裝置在第 一進(jìn)程中的第 一線程和第二進(jìn)程中 的第二線程之間切換時(shí),從第 一線程到第二線程的執(zhí)行的轉(zhuǎn)移也必 5 然伴隨著在所使用的活動(dòng)存儲(chǔ)器中的、從第一進(jìn)程的第一線程到第 二進(jìn)程的第二線程的某種形式的切換。為實(shí)現(xiàn)這個(gè),最普通的方案之一就是利用這樣的事實(shí),即,現(xiàn) 代計(jì)算裝置上的存儲(chǔ)器通常處于非常嚴(yán)密的管理之下,典型處在內(nèi) 核的控制之下。那些本領(lǐng)域的普通技術(shù)人員將意識(shí)到,裝置上的內(nèi)10 存被分組為地址連續(xù)的多個(gè)頁(yè)面,并且裝置上所有可能的可尋址的 內(nèi)存位置的全體(totality)被稱為虛擬內(nèi)存地址。實(shí)際一皮安裝的內(nèi) 存地址的全體^皮稱為物理內(nèi)存地址,且計(jì)算裝置包括由內(nèi)存管理單 元或MMU所維護(hù)的乂人虛擬內(nèi)存頁(yè)面地址到物理內(nèi)存頁(yè)面地址的映 射。通過(guò)改變那些保存此映射的頁(yè)面目錄項(xiàng)的內(nèi)容, 一組虛擬內(nèi)存15 ;也址可用來(lái)指向所有可尋址的物理內(nèi)存的期望區(qū)i或。在如上所述的 方案中,不同進(jìn)程中線程間的語(yǔ)境切換伴隨著內(nèi)存的重新映射以使^ ^f呆護(hù)其線程已孚皮切出(be switched out)的進(jìn),呈的內(nèi)存,且以4更可i^ 問(wèn)其線程已,皮切入(be switched in )的進(jìn)程的內(nèi)存。為加速對(duì)相對(duì)緩慢的主存儲(chǔ)器的訪問(wèn),計(jì)算裝置經(jīng)常利用局部 20 (locality)的現(xiàn)象,該研究延續(xù)了三十多年。局部就是指"內(nèi)存訪問(wèn)在程序寺丸行期間趨于被群集在小內(nèi)存區(qū)域中的現(xiàn)象" (選自《用于在共享內(nèi)存多處理器系統(tǒng)中改進(jìn)內(nèi)存訪問(wèn)局部的排序函數(shù)》作者Youfeng Wu,關(guān)于微架構(gòu)目錄的第25年度國(guó)際研討會(huì)會(huì)議學(xué)報(bào),1992年)因此,計(jì)算裝置維護(hù)高速緩存,它由保存了已被讀取的內(nèi)存最 后幾頁(yè)內(nèi)容的少量更快的內(nèi)存組成。當(dāng)一項(xiàng)讀取內(nèi)存的請(qǐng)求訪問(wèn)了 已被標(biāo)識(shí)成在該高速緩存內(nèi)的頁(yè)面時(shí),就稱為發(fā)生了高速緩存命 中,且可以從更快的高速緩存存儲(chǔ)器而不是相對(duì)緩慢的主存儲(chǔ)器對(duì)5內(nèi)存進(jìn)4亍i方問(wèn)。然而,通常在很多計(jì)算裝置上,用于高速緩存的內(nèi)存地址是虛 擬內(nèi)存地址而不是物理內(nèi)存地址。這意。未著當(dāng)在不同進(jìn)程的線程之 間發(fā)生語(yǔ)境切換時(shí),在該高速緩存工作方式之后的邏輯就—皮無(wú)效, 且因?yàn)樗?qǐng)求的內(nèi)存訪問(wèn)恰好匹配被保存的虛擬地址,故從該高速 10 緩存讀取數(shù)據(jù)就幾乎肯定是錯(cuò)的。因而,這種語(yǔ)境切換需要使該高 速緩存的整個(gè)內(nèi)容無(wú)效從而對(duì)之前保存在該高速緩存內(nèi)的虛擬內(nèi) 存地址的任何訪問(wèn)將導(dǎo)致高速緩存未命中,這就迫使一次來(lái)自物理 內(nèi)存的讀取。這種高速緩存內(nèi)容的無(wú)效叫做刷新高速緩存。以上所有操作對(duì) 15于本^支術(shù)領(lǐng)域工作人員都是熟知的。從上述描述可以看出,由于來(lái)回移動(dòng)潛在的大量?jī)?nèi)存映射的需 求以及在利用被虛擬標(biāo)記的數(shù)據(jù)高速緩存的硬件結(jié)構(gòu)上刷新數(shù)據(jù) 高速緩存的需求,所以屬于不同用戶方進(jìn)程的線程間的語(yǔ)境切換可 能是個(gè)耗時(shí)的過(guò)程。在這期間,該裝置典型是不響應(yīng)的,這是因?yàn)?20 這些操作一般在禁用搶占的情況下運(yùn)行;這表明兩進(jìn)程間的語(yǔ)境切 換并不允許被準(zhǔn)備運(yùn)行的第三進(jìn)程所搶先。沖丸行語(yǔ)境切換的所庫(kù)4時(shí)長(zhǎng)已在ARM結(jié)構(gòu)4與5處理器上纟皮測(cè) 量。在最壞的情況下,這可能包括如下操作* ^f奮改頁(yè)面目錄項(xiàng)以移動(dòng)附于前一進(jìn)禾呈的所有內(nèi)存的虛擬 25 地址*保護(hù)附于前一進(jìn)程的所有內(nèi)存* <奮改頁(yè)面目錄項(xiàng)以移動(dòng)附于新進(jìn)禾呈的所有內(nèi)存的虛擬;也 址*刷新該處理器數(shù)據(jù)高速緩存5 在具有大數(shù)據(jù)高速緩存和慢速內(nèi)存接口的處理器上,這將耗費(fèi)500jus以上,這在計(jì)算期間是相當(dāng)大的延遲。這是來(lái)自一個(gè)這種系 統(tǒng)的測(cè)量值。在禁用搶占的情況下,如果所有這些工作都由計(jì)算裝 置的調(diào)度程序直接執(zhí)行,則這將為最壞情況下的線程等待時(shí)間(從10 時(shí)間)加上半毫秒或更多。這個(gè)延遲對(duì)于很多現(xiàn)代計(jì)算裝置都是不 可接受的,現(xiàn)代計(jì)算裝置需要更好更快的實(shí)時(shí)性以保證操作將在更 短的^f呆^E時(shí)間內(nèi)完成時(shí)間緊急的4壬務(wù)。根據(jù)本發(fā)明的第一方面,提出了一種在計(jì)算裝置上的不同用戶 進(jìn)程的線程間切換語(yǔ)境的方法,在該計(jì)算裝置中,在啟動(dòng)搶占的情 15況下,涉及頁(yè)面目錄項(xiàng)的修改或數(shù)據(jù)高速緩存的刷新的語(yǔ)境切換的 那些部分被執(zhí)行,并且其中,對(duì)于那些部分,該語(yǔ)境切換被內(nèi)核線 程所搶占。才艮據(jù)本發(fā)明的第二方面,提出了一種被安排來(lái)根據(jù)第一方面的 方法進(jìn)行操作的計(jì)算裝置。20 根據(jù)本發(fā)明的第三方面,提出了一種用于使計(jì)算裝置根據(jù)第一方面的方法進(jìn)行操作的才喿作系統(tǒng)?,F(xiàn)在將參照附圖僅通過(guò)另 一個(gè)實(shí)例來(lái)描述本發(fā)明的實(shí)施方式, 其中-.
圖1示出了才艮據(jù)本發(fā)明的可搶占語(yǔ)境切換的實(shí)施方式。本發(fā)明背后的理解是,并非來(lái)自用戶進(jìn)程中運(yùn)行的線程的所有 語(yǔ)境切換都需要上文所概括列出的所有操作。特別地,從用戶進(jìn)程中的線程到內(nèi)核線程(運(yùn)行在管理程序才莫5 式下的特權(quán)線程)與某些固定用戶進(jìn)程(見(jiàn)下文)中的線程的切換 都會(huì)更快的發(fā)生,故應(yīng)該具有更短的保證等待時(shí)間。為達(dá)到此目的, 本發(fā)明考慮到了在啟動(dòng)搶占的情況下進(jìn)行頁(yè)面目錄項(xiàng)的修改以及 數(shù)據(jù)高速緩存的刷新。這里描述的本發(fā)明的下一個(gè)實(shí)施方式涉及Symbian OS操作系 10統(tǒng),用于凄t字啟動(dòng)的高級(jí)移動(dòng)電話的全^求開(kāi)》文性工業(yè)標(biāo)準(zhǔn)才喿作系 統(tǒng)。并々支i殳下面的解釋乂于于那些熟悉Symbian OS習(xí)'貫用i吾的4支術(shù) 人員是容易理解的。存儲(chǔ)器模型提供了具有當(dāng)需要地址空間切換時(shí)就應(yīng)當(dāng)被使用 的回叫的線程調(diào)度程序(內(nèi)核的一部分)。下列說(shuō)明描述了當(dāng)調(diào)度 15禾呈序調(diào)用該回叫時(shí)所發(fā)生的事<牛序列。參根據(jù)先前說(shuō)明的,因?yàn)榍袚Q用戶模式地址空間是復(fù)雜的操 作,且可能要求有相當(dāng)多的時(shí)間周期,所以地址空間切換 在啟動(dòng)4倉(cāng)占的情況下就^皮沖丸-f亍。*基本上,內(nèi)核恢復(fù)用于新線程的寄存器,以便該系統(tǒng)使用 20 新線禾呈的管理:程序堆一戈,然后在恢復(fù)正確的MMU配置之前重豸斤啟動(dòng)才倉(cāng)占。于是,該豸斤線禾呈"i殳定其自己的MMU酉己 置。*用戶模式地址空間在內(nèi)核中是個(gè)共享的數(shù)據(jù)對(duì)象,這是因?yàn)槎嘤谝粋€(gè)的線程會(huì)希望訪問(wèn)不同進(jìn)程的用戶模式內(nèi)存; 例如,在進(jìn)程間通信(IPC)或裝置驅(qū)動(dòng)程序數(shù)據(jù)傳輸期間。 顯然,重新啟動(dòng)搶占需要某些其他保護(hù)手段以避免多個(gè)線 5 程同時(shí)l奮改頁(yè)面目錄項(xiàng)。這是通過(guò)確保當(dāng)4丸行這些操作時(shí)代碼保持系統(tǒng)鎖定快速互斥體而被提供的。在PCT/GB2005/001300的專利申請(qǐng)中公開(kāi)了系統(tǒng)鎖以及快速 互斥體的纟乘作。 這個(gè)決策對(duì)內(nèi)核方軟件具有顯著影響,尤其是對(duì)內(nèi)存模型 10 有顯著影響——無(wú)i侖何時(shí)另一進(jìn)程的用戶才莫式的內(nèi)存正—皮訪問(wèn),系統(tǒng)鎖定都必須^皮保持以確4呆用戶才莫式內(nèi)存的一致 性碎見(jiàn)圖。*語(yǔ)境切換是個(gè)如此長(zhǎng)時(shí)間的操作,以至于為整個(gè)持續(xù)期間 保持系統(tǒng)鎖定會(huì)對(duì)OS的實(shí)時(shí)性能整體上產(chǎn)生影響,這是因 15 為內(nèi)核線程也需獲得這種鎖以傳輸來(lái)自用戶模式內(nèi)存的數(shù)據(jù)和傳輸至用戶才莫式內(nèi)存的數(shù)據(jù)。*才艮據(jù)本發(fā)明,通過(guò)在語(yǔ)境切換期間定期沖企查來(lái)處理這個(gè)問(wèn) 題,以查看另一線程是否在等待系統(tǒng)鎖定。如果找到了等 待線程,則就推測(cè)出該線程一定是內(nèi)核線程,這是因?yàn)樗?20 們是唯一一皮允許保持系統(tǒng)鎖定的線程。所以,在這種情況下,語(yǔ)境切換一皮》文棄,且等待線程:故允許運(yùn)行。*這4吏用戶才莫式地址空間維持在半一致的狀態(tài)內(nèi)核軟件可 定位和操作所需地址空間的任何用戶模式程序塊,但當(dāng)用 戶才莫式線程一皮再次調(diào)度時(shí),更多操作就^皮要求來(lái)完成地址 25 空間切4奐。圖1中示出了一典型過(guò)程。此過(guò)程起始于os內(nèi)核開(kāi)始切換語(yǔ)境至所調(diào)度的線程的時(shí)間。然后,用于所調(diào)度線程的寄存器就被恢復(fù),且4倉(cāng)占就#皮啟動(dòng)。當(dāng)已啟動(dòng)4倉(cāng)占時(shí),就可在4壬一點(diǎn)4倉(cāng)占i吾境切 換。5 然后,調(diào)度程序獲得系統(tǒng)鎖定并調(diào)用內(nèi)存才莫塊回叫以切換地址空間并為該線禾呈'恢復(fù)正確的MMU配置。i也址空間切4灸以及上文所 述的高速緩存刷新被分解為更短的操作序列,而這些更短的操作然 后就被依次執(zhí)行。因此,如圖1所示,序列中的下一操作被執(zhí)行。 然后,確定更高優(yōu)先級(jí)的線程是否在等待系統(tǒng)鎖定。如果答案是否, 10 操作的序列被繼續(xù),在序列中的每個(gè)操作之后,對(duì)在等待系統(tǒng)鎖定 的更高優(yōu)先級(jí)的線程進(jìn)^于4企查,直到該序列完成。 一旦該序列完成, 系統(tǒng)鎖定就一皮解除且i吾境切換完成。如果在操作序列執(zhí)行期間的任何時(shí)候都確定更高優(yōu)先級(jí)的線 程在等待系統(tǒng)鎖定,則系統(tǒng)鎖定一皮解除,語(yǔ)境切4灸就在那時(shí)^皮;故棄, 15且系統(tǒng)讓步于更高優(yōu)先級(jí)的等待線程。這個(gè)過(guò)程可在圖l中看出。上文提到,某些用戶進(jìn)程中的線程被允許搶占語(yǔ)境切換。所討 論的線程是那些固定進(jìn)程的一部分。內(nèi)核線程和屬于使用MMU域 的用戶進(jìn)程(稱為固定進(jìn)程)的用戶線程這兩者都能在任意點(diǎn)處搶 占語(yǔ)境切換并立刻運(yùn)行。屬于其他用戶進(jìn)程的線程仍可以搶占語(yǔ)境 20 切換,但僅在對(duì)系統(tǒng)鎖定的爭(zhēng)用被檢查的點(diǎn)處。之后,MMU表必 須在新線程可以運(yùn)行前就被調(diào)整。固定進(jìn)程的優(yōu)點(diǎn)在于不需刷新數(shù) 據(jù)高速緩存。只有重要的且頻繁使用的服務(wù)器進(jìn)程被標(biāo)記為固定進(jìn)程。將其 與普通用戶進(jìn)程進(jìn)行區(qū)分以及使其能夠搶占語(yǔ)境切換的那些就是, 25OS內(nèi)存才莫塊將在內(nèi)核部分中分配凄t據(jù)程序塊,且這些程序塊從不 被移動(dòng),而并不在用于用戶進(jìn)程的普通凄t據(jù),殳中為這些進(jìn)程分配數(shù)據(jù)程序塊。如果有可能,內(nèi)存模塊還分配MMU域以為固定進(jìn)程內(nèi)存提供保護(hù)。其結(jié)果是,傳至或來(lái)自固定進(jìn)程的語(yǔ)境切換與傳至或來(lái)自內(nèi)核 進(jìn)程的切換相似,而不需頁(yè)面目錄項(xiàng)的任何修改或者高速緩存的刷5 新。使用該特征的 一 個(gè)結(jié)果是,只有固定進(jìn)程的單 一 實(shí)例可以不斷 地運(yùn)行,但這對(duì)OS中的大部分服務(wù)器進(jìn)程來(lái)說(shuō)是個(gè)相當(dāng)合理的約 束。在本實(shí)施方式中,-故標(biāo)記為固定的典型進(jìn)程是文件服務(wù)器、通 信服務(wù)器、窗口服務(wù)器、字體/位圖服務(wù)器以及數(shù)據(jù)庫(kù)服務(wù)器。當(dāng)這 10 個(gè)屬性被有效地用于裝置中時(shí),它就使整體性能得到了顯著的改 善。固定進(jìn)程優(yōu)化依賴于所述跟蹤若干進(jìn)程的內(nèi)存模塊。其保存了 以下進(jìn)程的i己錄TheCurrentProcess:這是內(nèi)核值,實(shí)際上是當(dāng)前一皮調(diào)度線牙呈的 15固有(owning)進(jìn)程。TheCurrentVMProcess:這是最后已運(yùn)行的用戶模式進(jìn)程。其'擁 有,用戶模式內(nèi)存映射,而其內(nèi)存是可訪問(wèn)的。TheCurrentDataSectionProcess:這是用戶才莫式進(jìn)禾呈,其在^>共 地址范圍(即數(shù)據(jù)段)內(nèi)至少具有一個(gè)移動(dòng)程序塊。20 TheCompleteDataSectionProcess:這是用戶才莫式進(jìn)禾呈,其在凄史據(jù)段內(nèi)具有其全部的移動(dòng)程序塊。應(yīng)注意,因?yàn)閮羝?改棄的語(yǔ)境切換或進(jìn)程終止,這些值中的某些 可能是空的。由進(jìn)程語(yǔ)境切換所使用的算法如下1. 如果新進(jìn)程是內(nèi)核或具有MMU域,則跳過(guò)所有這些步驟。2. 如果新進(jìn)程是固定的,則轉(zhuǎn)到步驟7。3. 如果新進(jìn)碎呈不是TheCompleteDataSectionProcess,貝'J因 5 為至少一個(gè)程序塊將不得不一皮移動(dòng),乂人而刷新ft據(jù)高速緩存。4. 如果進(jìn)程(而非新進(jìn)程)占用了數(shù)據(jù)段,則將其所有的 程序塊移至起始4殳(home section)并保護(hù)這些程序塊。5. 如果進(jìn)程(非新進(jìn)程)是最后的用戶進(jìn)程,則保護(hù)其所 10 有#呈序塊。6. 將新進(jìn)程的程序塊移至數(shù)據(jù)賴(如果已不是當(dāng)前的)并 且不保護(hù)它們。轉(zhuǎn)到步-驟9。7. [固定進(jìn)程]保護(hù)TheCurrentVMProcess的程序塊。8. 不保護(hù)新進(jìn)程的程序塊。15 9.如果任何程序塊被移動(dòng)或許可被改變,則刷新翻譯后援緩沖器(TLB)。從上述描述應(yīng)當(dāng)理解,由于來(lái)回移動(dòng)潛在的大量?jī)?nèi)存映射的需 求以及在使用虛擬標(biāo)記的數(shù)據(jù)高速緩存的硬件結(jié)構(gòu)上刷新數(shù)據(jù)高 速緩存的需求,所以屬于不同用戶方進(jìn)程的線程間的語(yǔ)境切換是個(gè) 20 耗費(fèi)時(shí)間的過(guò)程。本發(fā)明允許在啟動(dòng)搶占情況下,在語(yǔ)境切換期間 發(fā)生修改頁(yè)面目錄項(xiàng)和刷新數(shù)據(jù)高速緩存;如果第三進(jìn)程需要在語(yǔ) 境切換期間運(yùn)4亍,且此第三進(jìn)程不擁有或不需要頁(yè)面表的任何用戶內(nèi)存小務(wù)改,則現(xiàn)在是可能的。通過(guò)本發(fā)明,至內(nèi)核線禾呈及固定用戶進(jìn)程中的線程的切換可以發(fā)生地更加快速;這些線程不屬于擁有任 何用戶內(nèi)存的進(jìn)程且恰好是需要用更低的確保等待時(shí)間來(lái)運(yùn)行以 確保實(shí)時(shí)性能的線程。因此,本發(fā)明通過(guò)允許用戶模式線程間的有限數(shù)量的語(yǔ)境切換 的搶占來(lái)改善操作系統(tǒng)的實(shí)時(shí)性能,從而提供了現(xiàn)有技術(shù)之上的更 顯著的優(yōu)勢(shì)。雖然已參考具體實(shí)施例描述了本發(fā)明,但應(yīng)理解,在由所附權(quán) 利要求所限定的本發(fā)明的范圍內(nèi)進(jìn)行的任何修改都是有效的。
權(quán)利要求
1.一種在計(jì)算裝置上的不同用戶進(jìn)程中的線程間切換語(yǔ)境的方法,其中,在啟動(dòng)搶占的情況下,涉及頁(yè)面目錄項(xiàng)修改或數(shù)據(jù)高速緩存刷新的語(yǔ)境切換的那些部分被執(zhí)行,并且其中,對(duì)于那些部分,所述語(yǔ)境切換是被內(nèi)核線程所搶占的。
2. 才艮據(jù)沖又利要求1所述的方法,其中,所述內(nèi)核線程保存^又被內(nèi) 核線程所要求的數(shù)據(jù)對(duì)象,并且其中,所述計(jì)算裝置在所述語(yǔ) 境切換期間查看在所述對(duì)象上是否存在等待的任何線程。
3. 根據(jù)權(quán)利要求2所述的方法,其中,所述數(shù)據(jù)對(duì)象是互斥體。
4. 根據(jù)權(quán)利要求1至3中任一項(xiàng)所述的方法,其中,所述語(yǔ)境切 換的部分被在進(jìn)程中運(yùn)行的用戶線程所搶占,所述進(jìn)程使其內(nèi) 存凈皮分配在一皮正常保留全合MMU域和所述內(nèi)核所用的那部分 存儲(chǔ)器中。
5. —種被配置為以根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法進(jìn)行 操作的計(jì)算裝置。
6. —種用于使計(jì)算裝置根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法 進(jìn)行操作的操作系統(tǒng)。
全文摘要
由于來(lái)回移動(dòng)潛在的大量?jī)?nèi)存映射的需求以及在利用虛擬標(biāo)記的數(shù)據(jù)高速緩存的硬件結(jié)構(gòu)上刷新數(shù)據(jù)高速緩存的需求,所以屬于不同用戶方進(jìn)程的線程間的語(yǔ)境切換是個(gè)耗時(shí)的過(guò)程。本發(fā)明在啟動(dòng)搶占的情況發(fā)生時(shí),允許在語(yǔ)境切換期間修改頁(yè)面目錄項(xiàng)和刷新數(shù)據(jù)高速緩存;如果第三進(jìn)程需要在語(yǔ)境切換期間運(yùn)行,且該第三進(jìn)程不擁有或不需要頁(yè)面表的任何用戶內(nèi)存修改,則現(xiàn)在是可能的。通過(guò)本發(fā)明,至內(nèi)核線程及固定用戶進(jìn)程中的線程的切換可以發(fā)生地更加快速;這些線程不屬于擁有任何用戶內(nèi)存的進(jìn)程且恰好是需要用更低的保證等待時(shí)間來(lái)運(yùn)行以確保實(shí)時(shí)性能的線程。
文檔編號(hào)G06F9/46GK101238441SQ200680028671
公開(kāi)日2008年8月6日 申請(qǐng)日期2006年8月8日 優(yōu)先權(quán)日2005年8月10日
發(fā)明者丹尼斯·梅 申請(qǐng)人:西姆畢恩軟件有限公司