專利名稱:應(yīng)用程序的延遲啟動(dòng)的制作方法
應(yīng)用程序的延遲啟動(dòng)
些旦
NT眾
當(dāng)計(jì)算機(jī)接通電源或用戶登錄時(shí),計(jì)算機(jī)操作系統(tǒng)提供多種方法注冊(cè)將要 運(yùn)行的應(yīng)用程序。這些啟動(dòng)應(yīng)用程序在啟動(dòng)(接通電源)和登錄時(shí)可能是性能 問題的主要原因。在安裝時(shí),軟件應(yīng)用程序通常將其自己注冊(cè)為啟動(dòng)應(yīng)用程序 而不考慮這對(duì)用戶而言是否是必需的。用戶經(jīng)常被搞糊涂且不知道如何關(guān)閉這 一選項(xiàng),結(jié)果是在普通用戶的機(jī)器上出現(xiàn)需要花很長(zhǎng)時(shí)間來初始化的大量啟動(dòng) 應(yīng)用程序。在此初始化期間,雖然對(duì)用戶而言它們不是立即需要或想要的且可 以慢些再啟動(dòng),但是它們消耗了機(jī)器上的系統(tǒng)資源。因?yàn)檫@個(gè)問題,大量
Microsoft Windows顧客在登錄之后不得不等很長(zhǎng)時(shí)間才能開始使用其計(jì)算機(jī)。 當(dāng)然,存在必要的且重要的啟動(dòng)應(yīng)用程序,如即時(shí)消息通信應(yīng)用程序、反病毒 或反間諜軟件應(yīng)用程序。
概述
啟動(dòng)某些應(yīng)用程序中的延遲可以導(dǎo)致改善所感知的系統(tǒng)性能。這可通過延 遲這些進(jìn)程運(yùn)行的時(shí)間、和/或通過對(duì)諸如處理器、I/O或存儲(chǔ)器資源等各系統(tǒng) 資源減少這些進(jìn)程的優(yōu)先級(jí)來完成。這允許用戶更迅速地獲得這些資源而不管 用戶所需目的是什么,而非必須等待啟動(dòng)應(yīng)用程序結(jié)束初始化。此外,公開了 用于允許用戶調(diào)整啟動(dòng)優(yōu)先級(jí)的用戶界面。
附圖
圖1是可以根據(jù)權(quán)利要求來操作的計(jì)算系統(tǒng)的框圖; 圖2可以是根據(jù)權(quán)利要求的方法的一個(gè)高級(jí)說明;以及 圖3可以示出根據(jù)權(quán)利要求的方法的另一實(shí)施例。
描述雖然以下文本闡明了許多不同實(shí)施例的詳細(xì)描述,但是應(yīng)當(dāng)理解,本描述 的合法范圍由本專利所附權(quán)利要求書的文字來定義。本詳細(xì)描述應(yīng)僅被理解為 示例性的,且不描述全部可能的實(shí)施例,因?yàn)槊枋鋈靠赡艿膶?shí)施例是不實(shí)際 的(如果不是不可能的話)??梢允褂矛F(xiàn)有技術(shù)或本專利的申請(qǐng)日后開發(fā)的技 術(shù)實(shí)現(xiàn)許多替換實(shí)施例,它們?nèi)月淙霗?quán)利要求書的范圍。
還應(yīng)當(dāng)理解,除非在此專利中使用句子"如此處所使用,術(shù)語'—,特此定 義為意指......"或類似句子明確地定義一術(shù)語,否則不存在明確地或通過暗示
將該術(shù)語的意思限制在其平?;蚱胀ㄒ馑贾獾囊鈭D,并且這樣的術(shù)語不應(yīng)被 理解為限于基于本專利的任何章節(jié)中的任何語句(除了權(quán)利要求書的語言)的 范圍中。就本專利所附的權(quán)利要求書所敘述的任何術(shù)語在本專利中按與單數(shù)意 思一致的方式被引用來說,這么做是為了清楚以至于不使讀者迷惑,并且不旨 在通過暗示或其他方式將權(quán)利要求術(shù)語限于該單數(shù)意思。最后,除非通過單詞 "意指"以及在沒有敘述任何結(jié)構(gòu)的情況下敘述功能來定義權(quán)利要求元素,否則
不旨在基于申請(qǐng)35 U.S.C § 112的第6段來解釋任何權(quán)利要求元素的范圍。
圖1示出了其上可以實(shí)現(xiàn)用于所要求保護(hù)的方法的步驟和裝置的合適計(jì) 算系統(tǒng)環(huán)境100的示例。計(jì)算系統(tǒng)環(huán)境100只是合適計(jì)算環(huán)境的一個(gè)示例,且 不旨在對(duì)權(quán)利要求的方法和裝置的使用或功能的范圍提出任何限制。計(jì)算環(huán)境 100也不應(yīng)理解為對(duì)示例性操作環(huán)境100中示出的任何一個(gè)組件或其的結(jié)合有 任何依賴或要求。
所要求保護(hù)的方法的步驟和裝置可與許多其他通用或?qū)S糜?jì)算系統(tǒng)環(huán)境 或配置一起操作??蛇m用于與權(quán)利要求書的方法或裝置一起使用的公知計(jì)算系 統(tǒng)、環(huán)境、和/或配置的示例包括但不限于個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持 或膝上型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)者 電子設(shè)備、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、包括任何上述系統(tǒng)或設(shè)備的 分布式計(jì)算環(huán)境等等。
可以在諸如程序模塊等由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文 中描述所要求保護(hù)的方法的步驟和裝置。 一般而言,程序模塊包括執(zhí)行特定任 務(wù)或?qū)崿F(xiàn)特定數(shù)據(jù)結(jié)構(gòu)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等。也可以 在分布式計(jì)算環(huán)境中實(shí)現(xiàn)方法和裝置,其中任務(wù)由通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備來執(zhí)行。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)器存儲(chǔ)設(shè)備 的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。
參見圖1,用于執(zhí)行所要求保護(hù)的方法的步驟和裝置的示例性系統(tǒng)包括計(jì) 算機(jī)110形式的通用計(jì)算設(shè)備。計(jì)算機(jī)110的組件包括但不限于:處理單元120、 系統(tǒng)存儲(chǔ)器130和將包括系統(tǒng)存儲(chǔ)器在內(nèi)的各個(gè)系統(tǒng)組件耦合到處理單元120 的系統(tǒng)總線121。系統(tǒng)總線121可以是幾種類型的總線結(jié)構(gòu)中的任何一種,包
括存儲(chǔ)器總線或存儲(chǔ)控制器、外圍總線、以及使用各種總線體系結(jié)構(gòu)中的任何 一種的局部總線。作為例子而非限制,這樣的體系結(jié)構(gòu)包括工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)
(ISA)總線、微通道體系結(jié)構(gòu)(MCA)總線、增強(qiáng)型ISA (EISA)總線、視 頻電子技術(shù)標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局部總線、外圍部件互連(PCI)總線(也被稱 為夾層(Mezzanine)總線)。
計(jì)算機(jī)IOO通常包括各種計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以是能由計(jì) 算機(jī)IOO訪問的任何可用介質(zhì),且包括易失性和非易失性介質(zhì)、以及可移動(dòng)和 不可移動(dòng)介質(zhì)。作為例子而非限制,計(jì)算機(jī)可讀介質(zhì)可以包括計(jì)算機(jī)存儲(chǔ)介質(zhì) 和通信介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)可以包括以用于存儲(chǔ)如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié) 構(gòu)、程序模塊或其他數(shù)據(jù)這樣的信息的任何方法或技術(shù)實(shí)現(xiàn)的易失性和非易失 性、可移動(dòng)和不可移動(dòng)介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于RAM、 ROM、 EEPROM、閃存或者其它存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或者 其它光盤存儲(chǔ)、磁帶盒、磁帶、磁盤存儲(chǔ)或者其它磁存儲(chǔ)設(shè)備、或者能夠用來 存儲(chǔ)所需信息并且能夠由計(jì)算機(jī)100訪問的任何其它介質(zhì)。通信介質(zhì)通常以諸 如載波或者其它傳輸機(jī)制的已調(diào)制數(shù)據(jù)信號(hào)來體現(xiàn)計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié) 構(gòu)、程序模塊或者其它數(shù)據(jù),并且包括任何信息傳遞介質(zhì)。術(shù)語"已調(diào)制數(shù)據(jù) 信號(hào)"是指以在該信號(hào)中編碼信息的方式來設(shè)置或改變其一個(gè)或多個(gè)特性的信 號(hào)。作為例子而非限制,通信介質(zhì)包括有線介質(zhì),諸如有線網(wǎng)絡(luò)或者直接線連 接,以及無線介質(zhì),諸如聲學(xué)、射頻(RF)、紅外以及其它無線介質(zhì)。任何上 述組合都應(yīng)包括在計(jì)算機(jī)可讀介質(zhì)的范圍之內(nèi)。
系統(tǒng)存儲(chǔ)器130包括易失性和/或非易失性存儲(chǔ)器形式的計(jì)算機(jī)可讀存儲(chǔ) 介質(zhì),諸如只讀存儲(chǔ)器(ROM) 131和隨機(jī)存取存儲(chǔ)器(RAM) 132?;据?入/輸出系統(tǒng)133 (BIOS) —般被存儲(chǔ)在ROM 131中,BIOS包含有助于例如在啟動(dòng)過程中在計(jì)算機(jī)110內(nèi)部的元件之間傳輸信息的基本例程。RAM 132 一般包含可由處理單元120立即訪問和/或當(dāng)前正由處理單元120進(jìn)行操作的數(shù) 據(jù)和/或程序模塊。作為示例而非限制,圖1示出了操作系統(tǒng)134、應(yīng)用程序135、 其他程序模塊136和程序數(shù)據(jù)137。
計(jì)算機(jī)110還可包括其它可移動(dòng)/不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ) 介質(zhì)。僅僅作為示例,圖l示出了從不可移動(dòng)、非易失性磁介質(zhì)讀取或向其寫 入的硬盤驅(qū)動(dòng)器140,從可移動(dòng)、非易失性磁盤152讀取或向其寫入的磁盤驅(qū) 動(dòng)器151,以及從諸如CDROM或其它光學(xué)介質(zhì)等可移動(dòng)、非易失性光盤156 讀取或向其寫入的光盤驅(qū)動(dòng)器155。能在示例性操作環(huán)境中使用的其它可移動(dòng)/ 不可移動(dòng)、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于,盒式磁帶、閃存卡、 數(shù)字多功能盤、數(shù)字錄像帶、固態(tài)RAM、固態(tài)ROM等等。硬盤驅(qū)動(dòng)器141 通常通過諸如接口 140等不可移動(dòng)存儲(chǔ)器接口連接到系統(tǒng)總線121,而磁盤驅(qū) 動(dòng)器151和光盤驅(qū)動(dòng)器155通常通過諸如接口 150等可移動(dòng)存儲(chǔ)器接口連接到 系統(tǒng)總線121。
以上討論且示于圖1中的驅(qū)動(dòng)器及其相關(guān)聯(lián)計(jì)算機(jī)存儲(chǔ)介質(zhì)為計(jì)算機(jī)110 提供了對(duì)計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊及其它數(shù)據(jù)的存儲(chǔ)。在圖1中, 例如,硬盤驅(qū)動(dòng)器141被示為存儲(chǔ)操作系統(tǒng)144、應(yīng)用程序145、其它程序模 塊146和程序數(shù)據(jù)147。應(yīng)當(dāng)注意,這些組件可以和操作系統(tǒng)134、應(yīng)用程序 135、其他程序模塊136和程序數(shù)據(jù)137相同或者相異。操作系統(tǒng)144、應(yīng)用程 序145、其他程序模塊146和程序數(shù)據(jù)147在此處被給予了不同的編號(hào)以示出 至少,它們是不同的副本。用戶可以經(jīng)由輸入設(shè)備,諸如鍵盤162和通常稱之 為鼠標(biāo)、跟蹤球或者觸摸墊的指示設(shè)備161將命令和信息輸入到計(jì)算機(jī)20中。 其它輸入設(shè)備(未示出)可包括話筒、操縱桿、游戲手柄、圓盤式衛(wèi)星天線、 掃描儀等。這些及其它輸入設(shè)備經(jīng)常經(jīng)由耦合到系統(tǒng)總線的用戶輸入接口 160 耦合到處理單元120,但是可以通過其它接口和總線結(jié)構(gòu),諸如并行端口、游 戲端口或通用串行總線(USB)進(jìn)行連接。監(jiān)視器191或其他類型的顯示設(shè)備 也通過諸如視頻接口 190等接口耦合到系統(tǒng)總線121。除了監(jiān)視器之外,計(jì)算 機(jī)100還可以包括諸如揚(yáng)聲器197和打印機(jī)196等其他外圍輸出設(shè)備,它們可 以通過輸出外圍接口 l卯進(jìn)行連接。計(jì)算機(jī)110可以利用與諸如遠(yuǎn)程計(jì)算機(jī)180等一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī)的邏 輯連接在網(wǎng)絡(luò)化環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)180可以是個(gè)人計(jì)算機(jī)、服務(wù)器、路 由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或者其它常見的網(wǎng)絡(luò)節(jié)點(diǎn),而且通常包括許多或者 所有以上相對(duì)于計(jì)算機(jī)IIO所描述的元件,盡管在圖1中僅示出了存儲(chǔ)器存儲(chǔ) 設(shè)備181。圖1中描述的邏輯連接包括局域網(wǎng)(LAN) 171和廣域網(wǎng)(WAN) 173,但是也可以包括其它網(wǎng)絡(luò)。這種網(wǎng)絡(luò)環(huán)境常見于辦公室、企業(yè)范圍計(jì)算 機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)。
當(dāng)在LAN網(wǎng)絡(luò)環(huán)境中使用時(shí),計(jì)算機(jī)110經(jīng)由網(wǎng)絡(luò)接口或適配器170耦 合到LAN 171。當(dāng)在WAN網(wǎng)絡(luò)環(huán)境中使用時(shí),計(jì)算機(jī)IIO通常包括調(diào)制解調(diào) 器172或者用于經(jīng)由如因特網(wǎng)等WAN 173建立通信的其他裝置??梢允莾?nèi)置 或者外置的調(diào)制解調(diào)器172可經(jīng)由用戶輸入接口 160或者其他適當(dāng)?shù)臋C(jī)制連接 到系統(tǒng)總線121。在網(wǎng)絡(luò)化環(huán)境中,相對(duì)于計(jì)算機(jī)IIO描述的程序模塊或其部 分可存儲(chǔ)在遠(yuǎn)程存儲(chǔ)器設(shè)備中。作為示例而非限制,圖1將遠(yuǎn)程應(yīng)用程序185 示為駐留在存儲(chǔ)器設(shè)備181上。應(yīng)當(dāng)明白,所示網(wǎng)絡(luò)連接是示例性的,也可以 使用在計(jì)算機(jī)之間建立通信鏈路的其它手段。
詳細(xì)的應(yīng)用程序啟動(dòng)
向用戶提供通過將啟動(dòng)應(yīng)用程序從諸如"運(yùn)行(RUN)"注冊(cè)表項(xiàng)等各個(gè)注 冊(cè)點(diǎn)移除來將它們從啟動(dòng)進(jìn)程中"移除"的選項(xiàng)是有用的,但這一特征有幾個(gè)問 題。首先,啟動(dòng)應(yīng)用程序經(jīng)常監(jiān)視這些注冊(cè)點(diǎn)且將它們添加回來。其次,通過 從啟動(dòng)序列中完全地移除應(yīng)用程序,可能會(huì)不利地破壞或丟失某些功能。
"延遲"啟動(dòng)應(yīng)用程序的方法是一種解決方案且在以下描述,它允許用戶在 登錄時(shí)收回對(duì)其計(jì)算機(jī)的控制且無需從啟動(dòng)中完全移除啟動(dòng)應(yīng)用程序。可以通 過降低啟動(dòng)應(yīng)用程序用于CPU、 I/O以及存儲(chǔ)器等的各自優(yōu)先級(jí)來限制這些進(jìn) 程對(duì)這類系統(tǒng)資源的消耗,這樣以減少這些進(jìn)程對(duì)用戶系統(tǒng)的影響。在運(yùn)行啟 動(dòng)應(yīng)用程序時(shí),該方法可以降低它們的CPU、 1/0和頁面優(yōu)先級(jí),并且將它們 置于某些跟蹤對(duì)象中。這種方法被稱為"裝箱(boxing)"。在可配置時(shí)間段之 后,該方法可以將其優(yōu)先級(jí)還原為初始設(shè)置。
圖2可以是根據(jù)權(quán)利要求的方法的高級(jí)說明。在方框200處,用戶可以使用用戶界面來設(shè)置要延遲的某個(gè)應(yīng)用程序。在方框205處,該方法可以存儲(chǔ)所
選應(yīng)用程序被存儲(chǔ)在存儲(chǔ)器中。在方框210處,操作系統(tǒng)可以開始。在方框215 處,該方法可以運(yùn)行啟動(dòng)應(yīng)用程序。在方框220處,該方法可以判定特定應(yīng)用 程序是否在方框210處被存儲(chǔ)為要被延遲的進(jìn)程。如果該判定為否,則在方框 225處,該方法可以正常運(yùn)行且該方法結(jié)束。如果方框220處的判定為是,則 該方法可以掛起用于特定應(yīng)用程序230的創(chuàng)建進(jìn)程。在方框235處,該方法可 以將要被延遲的特定應(yīng)用程序添加到作業(yè)容器對(duì)象。在方框240處,該方法可 以降低用于特定應(yīng)用程序的進(jìn)程優(yōu)先級(jí),且該方法可以限制一工作集。在方框 245處,可以啟動(dòng)一計(jì)時(shí)器,并且在方框250處,該計(jì)時(shí)器會(huì)期滿。在方框255 處,可以還原特定應(yīng)用程序的優(yōu)先級(jí),且該方法可以解除對(duì)工作集的限制。
在一實(shí)施例中,系統(tǒng)注冊(cè)表中的受保護(hù)項(xiàng)包含允許基于每個(gè)圖象路徑來打 開或關(guān)閉裝箱的例外列表。例如,未列在該例外列表上的所有應(yīng)用程序可被裝 箱或置于容器對(duì)象中。
操作系統(tǒng)需要跟蹤被裝箱的初始和派生進(jìn)程。例如,如果一啟動(dòng)應(yīng)用程序 被裝箱,且給定應(yīng)用程序進(jìn)程運(yùn)行了一子進(jìn)程,該子進(jìn)程也應(yīng)被裝箱,且當(dāng)父 (初始)進(jìn)程被解除裝箱時(shí),該子進(jìn)程也應(yīng)被解除裝箱。在Microsoft Windows 中,可使用作業(yè)(Job)對(duì)象來完成此任務(wù)。
如果該方法可以在啟動(dòng)應(yīng)用程序應(yīng)被解除裝箱前防止它們重新提升其優(yōu) 先級(jí)(這將大大地減少該方法的好處),那么該方法將是最有效的。在Microsoft Windows中,可以使用作業(yè)對(duì)象來對(duì)進(jìn)程施加進(jìn)程無法逃避的優(yōu)先級(jí)約束,除 非作業(yè)對(duì)象(即箱,且因此為操作系統(tǒng))的初始創(chuàng)建者主動(dòng)決定撤銷約束,如 在對(duì)給定應(yīng)用程序解除裝箱時(shí)。
該方法可以使用系統(tǒng)注冊(cè)表來存儲(chǔ)關(guān)于如果進(jìn)程(通過其可執(zhí)行圖象文件 的名稱)運(yùn)行為啟動(dòng)應(yīng)用程序那么它是否應(yīng)被裝箱的每個(gè)圖象文件名稱設(shè)置。 在Windows系統(tǒng)中,需要特別關(guān)注可以執(zhí)行許多不同特征的如"rundll32.exe" 的通用機(jī)制,且因此,如果存在與對(duì)"rundll32.exe"的普遍約束相比對(duì)這些特征 的更精細(xì)粒度的控制,就可以最佳地反映用戶的意圖。該方法可能需要對(duì)項(xiàng)進(jìn) 行訪問控制限制("ACL"),從而普通啟動(dòng)應(yīng)用程序?qū)⒉荒苄薷脑擁?xiàng)中的其自 已的設(shè)置。一旦該方法運(yùn)行了所有啟動(dòng)應(yīng)用程序,該方法可以在某個(gè)可配置超時(shí)(如 30秒)之后設(shè)置箱對(duì)象以釋放作業(yè)(即從對(duì)進(jìn)程的約束中釋放進(jìn)程且還原其優(yōu) 先級(jí))。
該方法還可以與操作系統(tǒng)的其他部分有聯(lián)系以便檢測(cè)用戶是否正與裝箱 的應(yīng)用程序交互,且使用該信息來在該應(yīng)用程序的裝箱超時(shí)期滿之前解除對(duì)給 定應(yīng)用程序的裝箱。這不僅允許操作系統(tǒng)減少通常情況下的不想要啟動(dòng)應(yīng)用程 序成本,而且也允許操作系統(tǒng)動(dòng)態(tài)地檢測(cè)應(yīng)用程序何時(shí)變?yōu)橛脩粝胍模藭r(shí) 優(yōu)先級(jí)約束對(duì)用戶就系統(tǒng)的體驗(yàn)是不利的。為這些應(yīng)用程序檢測(cè)用戶活動(dòng)的方 法應(yīng)該防止應(yīng)用程序的哄騙活動(dòng),因?yàn)檫@些活動(dòng)將破壞該方法的有效性。也可 以將啟動(dòng)應(yīng)用程序正被交互地使用的知識(shí)保留為歷史數(shù)據(jù),且可使用這些數(shù)據(jù) 來防止其在將來被裝箱,這或許可以改善用戶的體驗(yàn)。確定用戶何時(shí)正與啟動(dòng) 應(yīng)用程序交互的一個(gè)簡(jiǎn)單示例方法就是重復(fù)地檢查是否有任何啟動(dòng)應(yīng)用程序 的窗口變?yōu)榍熬按翱?,且鼠?biāo)光標(biāo)是否位于該窗口內(nèi)。
圖3示出根據(jù)權(quán)利要求書的方法的另一實(shí)施例。在方框300處,該方法可 以允許對(duì)進(jìn)程的優(yōu)先級(jí)類、I/O優(yōu)先級(jí)、優(yōu)先級(jí)頁面、工作集和網(wǎng)絡(luò)能力中的 一個(gè)分配優(yōu)先級(jí)。在方框305處,該方法可以將進(jìn)程置于一作業(yè)對(duì)象中,從而 可以跟蹤該進(jìn)程和從屬進(jìn)程。在方框310處,該方法可以允許優(yōu)先級(jí)在啟動(dòng)時(shí) 被調(diào)低,且在方框315處,該方法可以允許優(yōu)先級(jí)在啟動(dòng)之后的延遲時(shí)段之后 被調(diào)高。在方框320處,該方法可以允許優(yōu)先級(jí)在高度使用期間被調(diào)低。在方 框325處,在高度使用期間之后,該方法可以允許優(yōu)先級(jí)被調(diào)高。在方框330 處,該方法可以創(chuàng)建所有啟動(dòng)應(yīng)用程序都將加入的會(huì)話范圍作業(yè)對(duì)象。在方框 335處,該方法可以將進(jìn)程裝箱為組且不允許單個(gè)進(jìn)程被單獨(dú)解除裝箱。在方 框340處,該方法可以使用線程級(jí)存儲(chǔ)器來向系統(tǒng)傳遞裝箱被請(qǐng)求的信息。這 可通過創(chuàng)建"運(yùn)行啟動(dòng)應(yīng)用程序線程(Run Startup Apps Thread)"中的(Cbox) 對(duì)象以及保留指向鄰接的(Cbox)的線程級(jí)存儲(chǔ)器指針來完成。在方框345處, 該方法可以使用修改的API棧來向系統(tǒng)傳遞裝箱被請(qǐng)求的信息。在方框350處, 該方法可以在進(jìn)程創(chuàng)建時(shí)從線程級(jí)存儲(chǔ)發(fā)出(Cbox)對(duì)象,并確定是否要對(duì)進(jìn) 程裝箱或不裝箱。在方框355處,該方法可以使用作為引用計(jì)數(shù)的指針。在方 框360處,該方法可以將引用計(jì)數(shù)器遞增到由線程級(jí)存儲(chǔ)槽所指向的箱對(duì)象。在方框365處,該方法可以設(shè)置成在可設(shè)置時(shí)間段之后從箱對(duì)象中釋放作業(yè)。
在方框370中,該方法可以使用注冊(cè)表來存儲(chǔ)關(guān)于如果圖象作為啟動(dòng)應(yīng)用程序 運(yùn)行的,則它是否應(yīng)被裝箱的每個(gè)圖象查看器設(shè)置。在方框375處,該方法可 以使注冊(cè)表項(xiàng)受訪問控制列表的管轄,從而通用的啟動(dòng)應(yīng)用程序就不能修改該 項(xiàng)中其自己的設(shè)置。在方框375中,在運(yùn)行進(jìn)程時(shí),該方法可以將該進(jìn)程置于 約束作業(yè)對(duì)象中,使得裝箱的應(yīng)用程序就不能打破優(yōu)先級(jí)設(shè)置,在作業(yè)對(duì)象被 破壞之前與作業(yè)的關(guān)聯(lián)不能被打破,并且由作業(yè)對(duì)象設(shè)置的約束也不能被裝箱 進(jìn)程重寫。在方框380處,該方法可以創(chuàng)建控制I/0和頁面優(yōu)先級(jí)限制的作業(yè) 對(duì)象限制結(jié)構(gòu)。
雖然前述文本闡明了許多不同實(shí)施例的詳細(xì)描述,但是應(yīng)當(dāng)理解,本專利 的范圍是由本專利所附的權(quán)利要書的文字來定義的。本詳細(xì)描述應(yīng)僅被理解為 示例性的,且不描述全部可能實(shí)施例,因?yàn)槊枋鋈靠赡軐?shí)施例是不實(shí)際的(如 果不是不可能的話)。可以使用現(xiàn)有技術(shù)或本專利申請(qǐng)日后開發(fā)的技術(shù)來實(shí)現(xiàn) 許多替換實(shí)施例,它們?nèi)月淙氡緳?quán)利要求書的范圍。
因此,可以對(duì)此處所描述和示出的技術(shù)和結(jié)構(gòu)作出許多修改和變更,而不 脫離本權(quán)利要求書的精神和范圍。因此,應(yīng)當(dāng)理解,此處所描述的方法和裝置 僅是說明性的,且并不是對(duì)本權(quán)利要求書的范圍的限制。
權(quán)利要求
1.一種管理系統(tǒng)優(yōu)先級(jí)的方法,包括允許對(duì)進(jìn)程的CPU(處理器)優(yōu)先級(jí)類、I/O優(yōu)先級(jí)、存儲(chǔ)器頁面優(yōu)先級(jí)、存儲(chǔ)器工作集、網(wǎng)絡(luò)能力中的至少一個(gè)分配優(yōu)先級(jí);將所述進(jìn)程置于一容器對(duì)象中,以便可以跟蹤所述進(jìn)程和從屬進(jìn)程;允許所述優(yōu)先級(jí)在應(yīng)用程序啟動(dòng)時(shí)被調(diào)低;允許所述優(yōu)先級(jí)在啟動(dòng)之后的延遲時(shí)段之后被調(diào)高。
2. 如權(quán)利要求1所述的方法,其特征在于,還包括允許所述優(yōu)先級(jí)在高 度使用時(shí)段期間被調(diào)低。
3. 如權(quán)利要求l所述的方法,其特征在于,還包括在高度使用時(shí)段之后, 允許所述優(yōu)先級(jí)被調(diào)高。
4. 如權(quán)利要求1所述的方法,其特征在于,還包括創(chuàng)建所有啟動(dòng)應(yīng)用程 序都將加入的會(huì)話范圍容器對(duì)象。
5. 如權(quán)利要求1所述的方法,其特征在于,還包括將進(jìn)程添加到所述容 器對(duì)象中作為一組。
6. 如權(quán)利要求1所述的方法,其特征在于,還包括設(shè)置成在可配置時(shí)段 之后從所述容器對(duì)象釋放所述進(jìn)程。
7. 如權(quán)利要求1所述的方法,其特征在于,還包括檢測(cè)用戶與所述容器 對(duì)象中的進(jìn)程的交互、以及動(dòng)態(tài)地移除其約束、和/或使用歷史信息來防止它們 在將來被置于所述容器對(duì)象中。
8. 如權(quán)利要求1所述的方法,其特征在于,還包括使用所述注冊(cè)表來存 儲(chǔ)關(guān)于如果給定進(jìn)程作為啟動(dòng)應(yīng)用程序運(yùn)行則它是否應(yīng)被置于所述容器對(duì)象 中的每個(gè)圖像文件名稱設(shè)置。
9. 如權(quán)利要求1所述的方法,其特征在于,還包括使所述注冊(cè)表項(xiàng)受一 訪問控制列表的管轄,從而通用啟動(dòng)應(yīng)用程序?qū)⒉荒苄薷乃鲰?xiàng)中其自己的設(shè) 置。
10. 如權(quán)利要求l所述的方法,其特征在于,還包括當(dāng)運(yùn)行所述進(jìn)程時(shí), 將所述進(jìn)程置于一約束容器對(duì)象中,使得所述容器對(duì)象中的所述應(yīng)用程序不能打破所述優(yōu)先級(jí)設(shè)置; 在所述容器對(duì)象被破壞之前,與一進(jìn)程的關(guān)聯(lián)不能被打破;以及由所述容器對(duì)象設(shè)置的所述約束不能被所述容器對(duì)象中的所述進(jìn)程重寫。
11. 如權(quán)利要求l所述的方法,其特征在于,還包括創(chuàng)建控制I/O和頁面優(yōu)先級(jí)限制的作業(yè)對(duì)象限制結(jié)構(gòu)。
12. —種包括用于管理系統(tǒng)優(yōu)先級(jí)的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介 質(zhì),包括用于以下各項(xiàng)的計(jì)算機(jī)可執(zhí)行指令允許對(duì)進(jìn)程的CPU優(yōu)先級(jí)類、1/0優(yōu)先級(jí)、存儲(chǔ)器頁面優(yōu)先級(jí)、存儲(chǔ)器工 作集、網(wǎng)絡(luò)能力中的至少一個(gè)分配優(yōu)先級(jí);將所述進(jìn)程置于所有啟動(dòng)應(yīng)用程序都將加入的某一容器對(duì)象中,以便可以 跟蹤所述進(jìn)程和從屬進(jìn)程;允許所述優(yōu)先級(jí)在啟動(dòng)時(shí)被調(diào)低;允許所述優(yōu)先級(jí)在啟動(dòng)之后的延遲時(shí)段之后被調(diào)高。
13. 如權(quán)利要求12所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括用于以 下各項(xiàng)中至少之一的計(jì)算機(jī)可執(zhí)行指令允許所述優(yōu)先級(jí)在高度使用時(shí)段期間被調(diào)低; 在所述高度使用時(shí)段之后,允許所述優(yōu)先級(jí)被調(diào)高; 創(chuàng)建所有啟動(dòng)應(yīng)用程序都將加入的會(huì)話范圍容器對(duì)象; 將進(jìn)程添加到所述容器中作為一組;以及設(shè)置成在一可配置時(shí)段之后,從所述容器對(duì)象中釋放所述進(jìn)程。
14. 如權(quán)利要求12所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括用于檢 測(cè)用戶與所述容器對(duì)象中的進(jìn)程的交互,以及動(dòng)態(tài)地移除其約束,和/或使用歷 史信息來防止它們?cè)趯肀恢糜谒鋈萜鲗?duì)象中的計(jì)算機(jī)可執(zhí)行指令。
15. 如權(quán)利要求12所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括用于使 用所述注冊(cè)表來存儲(chǔ)關(guān)于如果所述進(jìn)程是作為啟動(dòng)應(yīng)用程序運(yùn)行的則所它是 否應(yīng)被置于所述容器對(duì)象中的每個(gè)圖象文件名稱設(shè)置的計(jì)算機(jī)可執(zhí)行指令。
16. 如權(quán)利要求12所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括用于使 所述注冊(cè)表項(xiàng)受一訪問控制列表的管轄從而通用啟動(dòng)應(yīng)用程序?qū)⒉荒苄薷乃?述項(xiàng)中其自己的設(shè)置的計(jì)算機(jī)可執(zhí)行指令。
17. 如權(quán)利要求12所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括用于在 運(yùn)行所述進(jìn)程時(shí),將所述進(jìn)程置于一約束作業(yè)對(duì)象中的計(jì)算機(jī)可執(zhí)行指令,使 得所述容器對(duì)象中的所述應(yīng)用程序不能打破所述優(yōu)先級(jí)設(shè)置; 在所述容器對(duì)象被破壞之前,與一進(jìn)程的關(guān)聯(lián)不能被打破;以及 由所述容器對(duì)象設(shè)置的所述約束不能被所述容器對(duì)象中的所述進(jìn)程重寫。
18. 如權(quán)利要求12所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括用于創(chuàng) 建控制I/O和頁面優(yōu)先級(jí)限制的進(jìn)程對(duì)象限制結(jié)構(gòu)的計(jì)算機(jī)可執(zhí)行指令。
19. 一種計(jì)算機(jī)系統(tǒng),包括處理器、存儲(chǔ)器以及輸入/輸出設(shè)備,所述處 理器適于執(zhí)行包括用于以下各項(xiàng)的指令的指令允許對(duì)進(jìn)程的CPU優(yōu)先級(jí)類、1/0優(yōu)先級(jí)、存儲(chǔ)器頁面優(yōu)先級(jí)、存儲(chǔ)器工 作集、網(wǎng)絡(luò)能力中的至少一個(gè)分配優(yōu)先級(jí);將所述進(jìn)程置于所有啟動(dòng)應(yīng)用程序都將加入的容器對(duì)象中,以便可以跟蹤 所述進(jìn)程和從屬進(jìn)程;允許所述優(yōu)先級(jí)在啟動(dòng)時(shí)被調(diào)低;允許所述優(yōu)先級(jí)在啟動(dòng)之后的延遲時(shí)段之后被調(diào)高。
20. 如權(quán)利要求19所述的計(jì)算機(jī)系統(tǒng),其特征在于,還包括在運(yùn)行所述 進(jìn)程時(shí)將所述進(jìn)程置于一約束作業(yè)對(duì)象中的指令,使得所述容器對(duì)象中的所述應(yīng)用程序不能打破所述優(yōu)先級(jí)設(shè)置; 在所述進(jìn)程對(duì)象被破壞之前,與進(jìn)程的關(guān)聯(lián)不能被打破;以及 由所述容器對(duì)象設(shè)置的所述約束不能被所述容器對(duì)象中的所述進(jìn)程重寫。
全文摘要
某些應(yīng)用程序的啟動(dòng)延遲可以導(dǎo)致系統(tǒng)總體性能的改善。被延遲的應(yīng)用程序可被置于容器對(duì)象或箱中,從而可以追蹤它們且可以適當(dāng)?shù)靥幚硪蕾囉谠撗舆t應(yīng)用程序的其他應(yīng)用程序。
文檔編號(hào)G06F17/00GK101317171SQ200680044759
公開日2008年12月3日 申請(qǐng)日期2006年11月29日 優(yōu)先權(quán)日2005年11月30日
發(fā)明者C·厄?qū)? D·李, M·R·福特恩, R·L·萊伊諾爾, R·杰斯 申請(qǐng)人:微軟公司