国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于提供無上下文切換屬性的方法和系統(tǒng)的制作方法

      文檔序號:6562475閱讀:184來源:國知局
      專利名稱:用于提供無上下文切換屬性的方法和系統(tǒng)的制作方法
      技術(shù)領(lǐng)域
      一般而言,本發(fā)明涉及計算機操作系統(tǒng),具體來說,涉及用于提供允許用戶模式線程變?yōu)榻咏怪袛鄡?yōu)先級的無上下文切換(nocontext switch)屬性的方法、設(shè)備和程序存儲設(shè)備。
      背景技術(shù)
      在計算機技術(shù)中,操作系統(tǒng)(OS)是負(fù)責(zé)對硬件和基本系統(tǒng)操作進行直接控制和管理的系統(tǒng)軟件。另外,它還提供了諸如文字處理程序和Web瀏覽器之類的應(yīng)用程序軟件運行所依賴的基礎(chǔ)。許多現(xiàn)代操作系統(tǒng)都支持多重任務(wù)處理,通過該功能,多個線程共享諸如處理器之類的共同的處理資源。計算機科學(xué)中的線程是執(zhí)行的線程或指令序列的簡稱。線程基本上是在同一個存儲器上下文中運行的進程。多個線程可以并行地在許多計算機系統(tǒng)上執(zhí)行。這種多線程處理一般是通過時間分片進行的(其中,單個處理器在不同的線程之間切換)或通過多重處理進行的(其中,線程在單獨的處理器上執(zhí)行)。線程類似于進程,但在它們共享資源的方式方面不同。
      在計算機具有單一處理器的情況下,如果說只有一個線程在任何時間點正在運行,就是說,處理器正在積極地執(zhí)行該線程的指令。多任務(wù)處理通過安排哪一個線程可以在任何給定時間運行以及何時該輪到另一個正在等待的線程來解決問題。將處理器從一個線程重新分配到另一個線程的動作叫做“上下文切換”。每當(dāng)一個進程從對處理器的訪問離開時,必須存儲足夠的有關(guān)其當(dāng)前操作狀態(tài)的信息,以便當(dāng)它被再次安排到在處理器上運行時,它可以從相同的位置恢復(fù)其操作。此操作狀態(tài)數(shù)據(jù)被稱為“其上下文”,將執(zhí)行的進程的線程從處理器中刪除的動作(以及用另一個替換它)被稱為“進程切換”或上下文切換。當(dāng)足夠頻繁地發(fā)生上下文切換時,會出現(xiàn)并行性的錯覺。甚至在具有一個以上的處理器的計算機上,多任務(wù)處理也允許比處理器的數(shù)量更多的任務(wù)運行。
      操作系統(tǒng)對系統(tǒng)進行管理,并為該系統(tǒng)運行第三方應(yīng)用程序軟件。如此,通常的理解是,操作系統(tǒng)不僅包括直接與硬件進行交互的低級別的“內(nèi)核”,而且還包括應(yīng)用程序以及基本程序?qū)ξ募M行操縱和對系統(tǒng)進行配置所需庫。操作系統(tǒng)內(nèi)核允許程序員通過系統(tǒng)調(diào)用接口對線程進行操縱。
      操作系統(tǒng)可以采用許多不同調(diào)度策略中的一個,一般屬于下列類別中的一個類別。在多程序系統(tǒng)中,運行的任務(wù)一直運行,直到它執(zhí)行需要等待外部事件(例如從磁帶讀取)的操作。多程序系統(tǒng)能夠最大化處理器使用率,在時間共享系統(tǒng)中,正在運行的任務(wù)需要放棄處理器,要么是自愿地,要么通過諸如硬件中斷之類的外部事件。時間共享系統(tǒng)能夠允許多個程序顯然同時執(zhí)行。在實時系統(tǒng)中,可保證當(dāng)發(fā)生外部事件時,給予某些正在等待的任務(wù)處理器。
      操作系統(tǒng)的體系結(jié)構(gòu)包括兩個主要層用戶模式和內(nèi)核模式。用戶模式下的程序和子系統(tǒng)在它們可以訪問哪些系統(tǒng)資源方面受到限制,而內(nèi)核模式的對系統(tǒng)存儲器和外部設(shè)備的訪問沒有限制。用戶模式是非特惠的狀態(tài),其中,硬件禁止正在執(zhí)行的代碼執(zhí)行某些可能會使系統(tǒng)不穩(wěn)定或造成安全漏洞的操作(如寫入到?jīng)]有分配給它的存儲器)。
      當(dāng)今的操作系統(tǒng),例如,Linux、Windows、Unix,支持在用戶模式下運行的程序和在內(nèi)核模式下運行的程序。例如,所有的Windows 2000子系統(tǒng)和應(yīng)用程序都在用戶模式下運行,而每一個子系統(tǒng)和應(yīng)用程序都在其自己的受保護的地址空間中運行。如此,一個進程始終要么在用戶模式下運行,要么在內(nèi)核模式下運行。用戶程序的主體在用戶模式下執(zhí)行,而系統(tǒng)調(diào)用在內(nèi)核模式下執(zhí)行。內(nèi)核模式包括用于給受保護的存儲器模式提供完全權(quán)限的代碼。用戶模式包括訪問其自己的存儲區(qū)的權(quán)限。用戶應(yīng)用程序和環(huán)境子系統(tǒng)在此模式下執(zhí)行。此外,用戶模式是某些操作系統(tǒng)(例如,Linux、Windows等等)中的讓用戶在更大的操作系統(tǒng)內(nèi)安裝操作系統(tǒng)的單獨的實例的機制。如此,用戶模式讓用戶在計算機內(nèi)創(chuàng)建虛擬機,從而提供了創(chuàng)建測試情況的能力,無需冒險在主系統(tǒng)內(nèi)產(chǎn)生問題。
      在用戶模式下操作有多個優(yōu)點。在用戶模式下操作可使工程師無需單獨的測試機器即可對代碼進行調(diào)試,安裝軟件內(nèi)核(主存儲器和軟件的處理區(qū)域)的不同版本,培訓(xùn)新用戶。用戶模式還可以隔離在其內(nèi)部運行的進程,以便可以防止病毒或其他惡意代碼感染更大的機器,從而節(jié)省未計劃的重新安裝和重建的時間。用戶模式還有助于測試新網(wǎng)絡(luò)配置和創(chuàng)建災(zāi)難恢復(fù)操練,因為它將主要安裝與非故意的或故意的損壞隔離開來。
      在1998年2月成立了開放源代碼倡議(OSI)。OSI希望使用“開放源代碼”這一標(biāo)簽將消除歧義,特別是對于感覺“自由軟件”是反商業(yè)的那些人。如此,OSI試圖使較高的profile產(chǎn)生自由地可用的源代碼的實際好處,并希望使主要的軟件企業(yè)及其他高科技行業(yè)加入到開放源代碼倡議中來。開放源代碼軟件將計算機軟件和其源代碼的可用性稱為根據(jù)研究、改變,并改進其設(shè)計的開放源代碼許可證的開放源代碼。如此,開放源代碼是指其中的源代碼自由地可供其他人查看、修改和改編的軟件。通常,它是由跨機構(gòu)和國界的開發(fā)人員的團隊創(chuàng)建和維護的。如此,開放源代碼軟件不能被一個大型專有的供應(yīng)商據(jù)為己有。
      Linux是自由軟件和開放源代碼開發(fā)的最著名的示例之一與諸如Windows和Mac OS之類的專有的操作系統(tǒng)不同,所有其基礎(chǔ)源代碼都對公眾可用,任何人都可以自由地使用、修改和重新分發(fā)它。從狹義上來講,術(shù)語Linux是指Linux內(nèi)核,但它通常用于描述基于Linux內(nèi)核的,并與來自GNU項目的庫和工具及其他源代碼相結(jié)合的全部類似于Unix操作系統(tǒng)(也稱為GNU/Linux)。從廣義上來講,Linux分發(fā)將大量的應(yīng)用程序軟件與核心系統(tǒng)捆綁起來,并提供對用戶更友好的安裝和升級。但是Linux(或更準(zhǔn)確地說GNU/Linux)只是冰山一角。當(dāng)今有各式各樣的開放源代碼軟件可用,一直有新項目啟動。
      隨著開放源代碼內(nèi)核(例如Linux)越來越流行,越來越多的控制器程序正在移向用戶模式。然而,控制器程序不斷地以實時的方式對硬件進行訪問,因此需要允許用戶模式線程在接近禁止中斷優(yōu)先級運行。某些實時操作系統(tǒng)提供特殊的實時優(yōu)先級。然而,為提供靈活性,它們?nèi)钥赡軙谙嗤膶崟r優(yōu)先級與其他線程共享優(yōu)先級。
      可以看出,需要用于提供允許用于提供無上下文切換屬性(該屬性允許用戶模式線程變?yōu)榻咏怪袛鄡?yōu)先級)的方法、設(shè)備和程序存儲設(shè)備。

      發(fā)明內(nèi)容
      為克服上文所描述的現(xiàn)有技術(shù)中的限制,并克服在閱讀和理解本說明書之后將變得顯而易見的其他限制,本發(fā)明說明了用于提供無上下文開關(guān)屬性(該屬性允許用戶模式線程變?yōu)榻咏怪袛鄡?yōu)先級)的方法、設(shè)備和程序存儲設(shè)備。
      本發(fā)明通過提供無上下文切換屬性來解決上文所描述的問題,該屬性比實時優(yōu)先級更有效,因為無上下文切換屬性回避了調(diào)度的開銷。此外,無上下文切換屬性可以用來檢測線程是否執(zhí)行可能使線程在關(guān)鍵部分時被掛起的任何不希望的操作。
      根據(jù)本發(fā)明的實施例,提供了計算機可讀存儲器中包含的執(zhí)行線程的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)包括無上下文切換屬性。無上下文切換屬性可配置為指出線程的執(zhí)行是否可被掛起。
      在本發(fā)明的另一個實施例中,提供了計算機系統(tǒng)。計算機系統(tǒng)包括用于執(zhí)行應(yīng)用程序所需的進程的操作系統(tǒng),用于協(xié)調(diào)線程的執(zhí)行并管理對系統(tǒng)資源的訪問的由操作系統(tǒng)控制的調(diào)度程序,還包括用于提供可執(zhí)行的指令的線程,其中,線程包括無上下文切換屬性,無上下文切換屬性可配置為指出線程的執(zhí)行是否可被調(diào)度程序掛起。
      本發(fā)明的其他實施例包括程序存儲設(shè)備,該設(shè)備包括可由處理設(shè)備執(zhí)行的程序指令,以執(zhí)行用于將用戶模式線程配置為接近禁止中斷優(yōu)先級的操作。還提供了將用戶模式線程配置為接近禁止中斷優(yōu)先級的方法。
      在本發(fā)明的權(quán)利要求書中指出了作為本發(fā)明新穎性特征的各種其他的優(yōu)點和特征,該權(quán)利要求書附在后面,并形成本申請文件的一部分。但是,為了更好地理解本發(fā)明及其在使用中實現(xiàn)的優(yōu)點和目的,應(yīng)該結(jié)合同樣作為本申請文件一部分的附圖以及關(guān)于附圖描述性內(nèi)容,在這部分描述性內(nèi)容中,說明并描述了根據(jù)本發(fā)明的設(shè)備的特定實施例。


      現(xiàn)在請參看附圖,在附圖中,類似的附圖標(biāo)記表示對應(yīng)的部件圖1顯示了根據(jù)本發(fā)明的實施例的計算機系統(tǒng)的方框圖;圖2顯示了根據(jù)本發(fā)明的實施例的執(zhí)行多線程處理的計算機系統(tǒng);圖3顯示了根據(jù)本發(fā)明的實施例的操作系統(tǒng)的運轉(zhuǎn);圖4是根據(jù)本發(fā)明的實施例的使用具有無上下文切換屬性的線程的方法的流程圖;以及圖5顯示了根據(jù)本發(fā)明的實施例的系統(tǒng)。
      具體實施例方式
      在下面對實施例進行的描述中,參考了構(gòu)成了本發(fā)明的組成部分的附圖,在附圖中,通過例圖,顯示了其中可以實施本發(fā)明的特定實施例。應(yīng)該理解,也可以利用其他實施例,因為在不偏離本發(fā)明的范圍的情況下,可以進行結(jié)構(gòu)更改。
      本發(fā)明提供了用于提供無上下文切換的屬性的方法、設(shè)備和程序存儲設(shè)備,該屬性允許用戶模式線程變?yōu)榻咏怪袛鄡?yōu)先級。無上下文切換屬性比實時優(yōu)先級更有效,因為無上下文切換屬性回避了調(diào)度的開銷。此外,無上下文切換屬性可以用來檢測線程是否執(zhí)行可能使線程在關(guān)鍵部分時被掛起的任何不希望的操作。
      圖1顯示了根據(jù)本發(fā)明的實施例的計算機系統(tǒng)100的方框圖。在圖1中,計算機系統(tǒng)100包括一個或多個處理器130,每一個處理器都能夠在許多并行多線程進程中的一個進程內(nèi)執(zhí)行線程。如在多重任務(wù)數(shù)據(jù)處理系統(tǒng)中的典型情況,可以給每一個用戶進程分配其自己的虛擬存儲器空間,該空間可以由存儲器管理器136部分地映射到高速主存儲器132,并部分地映射到較低速度輔助存儲器134。
      計算機系統(tǒng)100和系統(tǒng)資源向計算機系統(tǒng)100的分配是由操作系統(tǒng)138進行控制的。為便于本討論,假設(shè)操作系統(tǒng)138駐留在主存儲器132內(nèi),雖然那些精通相關(guān)技術(shù)的人將認(rèn)識到,操作系統(tǒng)138的某些不經(jīng)常使用的段可以由存儲器管理器136轉(zhuǎn)儲到輔助存儲器134。操作系統(tǒng)138包括內(nèi)核140,該內(nèi)核包括操作系統(tǒng)138的最直接與計算機系統(tǒng)100進行交互的最低層。內(nèi)核140將內(nèi)核線程調(diào)度到處理器130供其執(zhí)行,向與計算機系統(tǒng)100內(nèi)的硬件連接的設(shè)備驅(qū)動程序提供服務(wù),并實現(xiàn)由計算機系統(tǒng)100使用的系統(tǒng)服務(wù)、存儲器管理、網(wǎng)絡(luò)訪問以及文件系統(tǒng)。除了內(nèi)核140之外,主存儲器132還存儲了應(yīng)用程序軟件142的頻繁使用的段。如那些精通本技術(shù)的人所知道的,應(yīng)用程序軟件142通過應(yīng)用程序編程接口(API)與操作系統(tǒng)138進行通信。
      計算機系統(tǒng)100還包括總線接口144,通過該總線接口,多個節(jié)點可以連接到計算機系統(tǒng)100內(nèi)可用的系統(tǒng)資源。如那些精通本技術(shù)的人所理解的,計算機系統(tǒng)100還可以包括連接到系統(tǒng)總線146的對于理解本發(fā)明不需要的額外的硬件,相應(yīng)地,為簡單起見,省略這些硬件。
      圖2顯示了根據(jù)本發(fā)明的實施例的執(zhí)行多線程處理的計算機系統(tǒng)200。在圖2中,總線218將一個處理器212連接到各種I/O設(shè)備214和存儲設(shè)備216。存儲設(shè)備216包括線程集合220,每一個線程與特定進程關(guān)聯(lián)。每一個線程都包括數(shù)據(jù),例如,執(zhí)行堆棧224和無上下文切換屬性。當(dāng)由處理器212執(zhí)行線程時,線程值被加載到處理器寄存器中。當(dāng)線程被掛起時,值被保存回存儲器216中。存儲設(shè)備216進一步包括由進程所使用的數(shù)據(jù)和指令的所有邏輯地址,包括各種線程的堆棧。在創(chuàng)建線程之后并在終止之前,線程將最有可能利用系統(tǒng)資源來訪問進程上下文222。通過進程上下文222,進程線程可以共享數(shù)據(jù),并以簡便易行和直接的方式彼此進行通信。
      線程調(diào)度是實現(xiàn)線程的一個重要方面。在第一種類別中,有協(xié)作線程,它們不依賴調(diào)度程序并在它們本身之間合作,以共享處理器。由于編制這樣的線程的復(fù)雜性,并且因為它們不能快速對外部事件作出反應(yīng),協(xié)作線程在當(dāng)今的技術(shù)中使用得不太多。第二種類別是搶先式線程。這樣的線程依賴于調(diào)度程序,該調(diào)度程序可以在執(zhí)行過程中的任一點決定將處理器從一個線程切換到另一個線程。搶先式線程快速對外部事件作出反應(yīng),因為在需要時另一個線程可用比當(dāng)前正在運行的線程先搶先處理器用接管來處理緊急情況。與協(xié)作線程不同,搶先式調(diào)度免除了程序員在應(yīng)用程序內(nèi)實現(xiàn)調(diào)度機制的負(fù)擔(dān)。
      正在運行的線程取得優(yōu)先權(quán)一般可以在程序執(zhí)行過程中的任一點發(fā)生。通常,當(dāng)允許調(diào)度程序干涉并在線程之間切換處理器的計時器屆滿時,發(fā)生搶先的情況。在技術(shù)界,這被稱為在線程之間對處理器進行“時間分片”,每一個線程在“時間片”內(nèi)運行。這種干涉形式允許調(diào)度程序?qū)崿F(xiàn)各種調(diào)度機制,包括循環(huán)復(fù)用、優(yōu)先級調(diào)度等等。另外,還可以響應(yīng)可能需要對某些線程進行及時處理的外部事件發(fā)生搶先。
      如上文所描述的,開放源代碼內(nèi)核(例如Linux)越來越流行,導(dǎo)致越來越多的控制器程序正在移向用戶模式。然而,控制器程序不斷地以實時的方式對硬件進行訪問,因此需要允許用戶模式線程在接近禁止中斷優(yōu)先級運行。某些實時操作系統(tǒng)提供特殊的實時優(yōu)先級。然而,為提供靈活性,它們?nèi)钥赡軙谙嗤膶崟r優(yōu)先級與其他線程共享優(yōu)先級。
      圖3顯示了根據(jù)本發(fā)明的實施例的操作系統(tǒng)300的運轉(zhuǎn)。在圖3中,操作系統(tǒng)包括調(diào)度程序320。操作系統(tǒng)300執(zhí)行線程310、312、314以執(zhí)行用戶模式應(yīng)用程序所需的進程。操作系統(tǒng)提供了調(diào)度程序320,以協(xié)調(diào)線程的執(zhí)行并管理它們的對系統(tǒng)資源的訪問。調(diào)度程序320必須確保線程在相對于其指定的優(yōu)先級和類的時間內(nèi)能夠訪問處理器,并且沒有線程對處理器的訪問發(fā)生饑餓,不管它是否是可用的最低優(yōu)先級任務(wù)。調(diào)度程序320可以搶先地從處理器中刪除線程,例如,在實現(xiàn)了時間分片調(diào)度時,在給它分配的時間量屆滿時。調(diào)度程序320選擇哪一個是接下來運行的最合適的進程。
      根據(jù)本發(fā)明的實施例,給線程310、312、314提供了無上下文切換屬性330、332 334以控制是否要搶先線程。提供了系統(tǒng)調(diào)用340,以允許設(shè)置和/或清除無上下文切換線程屬性330、332、334。無上下文切換屬性330、332 334是每個線程都有的,即,每一個線程310、312、314都包括無上下文切換屬性330、332、334。調(diào)度程序320在調(diào)用了調(diào)度程序320的任何時間都檢查無上下文切換屬性330、332、334。當(dāng)設(shè)置了無上下文切換屬性330、332、334時,調(diào)度程序320將繞過所有調(diào)度進程,只允許線程繼續(xù)。如果在設(shè)置了上下文切換屬性330、332、334的情況下線程310、312、314中的某一個被迫掛起,則調(diào)度程序320將清除無上下文切換屬性330、332、334,并向線程310、312、314發(fā)送信號,以指出發(fā)生了異常。當(dāng)無上下文切換屬性330、332、334是設(shè)置的屬性時,線程310、312、314將繼續(xù)運行,不管優(yōu)先級和時間片如何。只有中斷處理程序350才能搶先352設(shè)置了其無上下文切換屬性330、332、334的線程310、312、314。當(dāng)中斷處理程序350退出時,控制立刻回到設(shè)置了無上下文切換屬性330、332、334的被中斷的線程310、312、314。
      圖4是根據(jù)本發(fā)明的實施例的使用具有無上下文切換屬性的線程的方法的流程圖。在圖4中,調(diào)用了調(diào)度程序410。調(diào)度程序?qū)€程進行分析420。就是否為線程設(shè)置了無上下文切換屬性作出判斷430。如果設(shè)置了無上下文切換屬性432,則調(diào)度程序允許線程繼續(xù)運行440。判斷是否要搶先設(shè)置了無上下文切換屬性的線程450。如果是452,則搶先線程,并向線程發(fā)送指出發(fā)生了異常的信號460。被搶先的線程開始再次執(zhí)行480。如果將不搶先線程454,則退出調(diào)度程序,不進行上下文切換。如果沒有設(shè)置無上下文切換屬性434,即,清除,則調(diào)度程序根據(jù)普通優(yōu)先級對線程進行處理480。
      圖5顯示了根據(jù)本發(fā)明的實施例的系統(tǒng)500。本發(fā)明的實施例可以呈現(xiàn)完全是硬件、完全是軟件、或結(jié)合了軟件和硬件元件的組合的形式。在優(yōu)選實施例中,本發(fā)明是以軟件實現(xiàn)的,包括,但不僅限于固件、常駐軟件、微代碼等等。此外,本發(fā)明的實施例可以呈現(xiàn)可以從計算機可使用的或計算機可讀的介質(zhì)568訪問的計算機程序產(chǎn)品590的形式,提供供計算機或任何指令執(zhí)行系統(tǒng)使用的或與它們一起使用的程序代碼。
      對于此描述,計算機可使用的或計算機可讀介質(zhì)568可以是任何設(shè)備,可以包含、存儲、通信、傳播或輸送供指令執(zhí)行系統(tǒng)、設(shè)備使用的,或與它們一起使用的程序。介質(zhì)568可以是電子、磁性、光學(xué)、電磁、紅外線或半導(dǎo)體系統(tǒng)(或設(shè)備)或傳播介質(zhì)。計算機可讀的介質(zhì)的示例包括半導(dǎo)體或固態(tài)存儲器、磁帶、可移動計算機磁盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、硬磁盤和光盤。光盤的當(dāng)前示例包括光盤-只讀存儲器(CD-ROM)、光盤-讀取/寫入(CD-R/W)和DVD。
      適用于存儲和/或執(zhí)行程序代碼的系統(tǒng)將包括通過系統(tǒng)總線520直接或間接地連接到存儲器元件592的至少一個處理器596。存儲器元件592可以包括在程序代碼的實際執(zhí)行過程中使用的本地存儲器、大容量存儲器、高速緩存存儲器,這種高速緩存存儲器提供用于存儲至少某些程序代碼的臨時存儲器,以便減少在執(zhí)行過程中必須從大容量存儲器中檢索代碼的次數(shù)。
      輸入/輸出或I/O設(shè)備540(包括但不僅限于鍵盤、顯示器、指示設(shè)備等等)可以直接或者通過干涉I/O控制器連接到系統(tǒng)。
      也可以將網(wǎng)絡(luò)適配器550連接到系統(tǒng),以使系統(tǒng)通過干涉專用或公共網(wǎng)絡(luò)560連接到其他數(shù)據(jù)處理系統(tǒng)552,遠程打印機554或存儲設(shè)備556。調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器和以太網(wǎng)卡是現(xiàn)行的幾種網(wǎng)絡(luò)適配器。
      相應(yīng)地,計算機程序590包括指令,當(dāng)由圖5的系統(tǒng)500讀取和執(zhí)行指令時,使系統(tǒng)500執(zhí)行為了執(zhí)行本發(fā)明的步驟或元素所需的步驟。
      本發(fā)明的實施例的上述描述只是為了說明和描述。它沒有窮盡一切,也不將本發(fā)明限制到所述準(zhǔn)確的形式。根據(jù)上文的講述,許多修改和變化也是可以的。本發(fā)明的范圍不是由此詳細說明進行限制,而是由所附的權(quán)利要求進行限制。
      權(quán)利要求
      1.計算機可讀存儲器中包含的執(zhí)行線程的數(shù)據(jù)結(jié)構(gòu),包括無上下文切換屬性,無上下文切換屬性可配置為指出線程的執(zhí)行是否可被掛起。
      2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)結(jié)構(gòu),其中,當(dāng)設(shè)置了無上下文切換屬性時,線程被允許繼續(xù)而不會被基于優(yōu)先級調(diào)度而掛起。
      3.根據(jù)權(quán)利要求1所述的數(shù)據(jù)結(jié)構(gòu),其中,無上下文切換屬性是通過系統(tǒng)調(diào)用設(shè)置的。
      4.一種計算機系統(tǒng),包括用于執(zhí)行應(yīng)用程序所需的進程的操作系統(tǒng);用于協(xié)調(diào)線程的執(zhí)行并管理對系統(tǒng)資源的訪問的由操作系統(tǒng)控制的調(diào)度程序;以及用于提供可執(zhí)行的指令的線程,其中,線程包括無上下文切換屬性,無上下文切換屬性可配置為指出線程的執(zhí)行是否可被調(diào)度程序掛起。
      5.根據(jù)權(quán)利要求4所述的計算機系統(tǒng),其中,當(dāng)設(shè)置了無上下文切換屬性時,線程被允許繼續(xù)而不會被基于優(yōu)先級調(diào)度而掛起。
      6.根據(jù)權(quán)利要求4所述的計算機系統(tǒng),其中,無上下文切換屬性是通過系統(tǒng)調(diào)用設(shè)置的。
      7.根據(jù)權(quán)利要求4所述的計算機系統(tǒng),其中,調(diào)度程序確保了線程在相對于其指定的優(yōu)先級和類的時間內(nèi)獲得處理器的訪問,并且防止線程對處理器的訪問發(fā)生饑餓。
      8 根據(jù)權(quán)利要求4所述的計算機系統(tǒng),其中,調(diào)度程序搶先地刪除線程,使其不被處理。
      9.根據(jù)權(quán)利要求8所述的計算機系統(tǒng),其中,調(diào)度程序在分配給線程的時間量屆滿時搶先地從處理器中刪除線程。
      10.根據(jù)權(quán)利要求4所述的計算機系統(tǒng),其中,調(diào)度程序選擇執(zhí)行線程的順序。
      11.根據(jù)權(quán)利要求4所述的計算機系統(tǒng),其中,當(dāng)調(diào)用調(diào)度程序時,調(diào)度程序檢查無上下文切換屬性。
      12.根據(jù)權(quán)利要求11所述的計算機系統(tǒng),其中,當(dāng)設(shè)置了無上下文切換屬性時,調(diào)度程序繞過所有調(diào)度進程,并允許線程繼續(xù)。
      13.根據(jù)權(quán)利要求4所述的計算機系統(tǒng),其中,當(dāng)線程被迫掛起并且為線程設(shè)置了無上下文切換屬性時,調(diào)度程序清除無上下文切換屬性,并向線程發(fā)送信號以指出發(fā)生了異常。
      14.根據(jù)權(quán)利要求13所述的計算機系統(tǒng),其中,當(dāng)為線程設(shè)置了無上下文切換屬性時,只有中斷處理程序才迫使線程掛起。
      15.根據(jù)權(quán)利要求14所述的計算機系統(tǒng),其中,當(dāng)中斷處理程序退出時,控制返回到被中斷的線程。
      16.一種用于將用戶模式線程配置為接近禁止中斷優(yōu)先級的方法,操作包括提供用于提供可由操作系統(tǒng)執(zhí)行的指令的線程;以及為線程提供無上下文切換屬性,無上下文切換屬性可配置為指出線程的執(zhí)行是否可被調(diào)度程序掛起。
      17.根據(jù)權(quán)利要求16所述的方法,進一步包括使用系統(tǒng)調(diào)用為線程設(shè)置無上下文切換屬性。
      18.根據(jù)權(quán)利要求16所述的方法,進一步包括,當(dāng)設(shè)置了無上下文切換屬性時,對無上下文切換屬性進行分析,以判斷是否允許該線程繼續(xù)而不會被基于優(yōu)先級調(diào)度而掛起,并允許線程繼續(xù)。
      19.根據(jù)權(quán)利要求16所述的方法,進一步包括,當(dāng)線程被迫掛起并且為線程設(shè)置了無上下文切換屬性時,清除無上下文切換屬性,并向線程發(fā)送信號以指示發(fā)生了異常。
      全文摘要
      說明了用于提供無上下文切換的屬性的方法、設(shè)備和程序存儲設(shè)備,該屬性允許用戶模式線程變?yōu)榻咏怪袛鄡?yōu)先級。數(shù)據(jù)包括無上下文切換屬性?;跓o上下文切換屬性的線程的控制比實時優(yōu)先級更有效,因為無上下文切換屬性回避了調(diào)度的開銷。此外,無上下文切換屬性可以用來檢測線程是否執(zhí)行可能使線程在關(guān)鍵部分時被掛起的任何不希望的操作。無上下文切換屬性可配置為指示線程的執(zhí)行是否可被掛起。
      文檔編號G06F9/46GK1975677SQ200610142390
      公開日2007年6月6日 申請日期2006年10月11日 優(yōu)先權(quán)日2005年12月1日
      發(fā)明者宋正中, 柯文正, 丹尼爾·A.·赫弗利 申請人:國際商業(yè)機器公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1