專利名稱:增強(qiáng)時(shí)效器有效性的方法和手段的制作方法
本申請(qǐng)的主題與下列申請(qǐng)有關(guān),它們與本申請(qǐng)并存并且被賦予同一受托人由S.Parikh遞交的美國(guó)申請(qǐng)S.N.07/872,732號(hào),題為“頁時(shí)效多位矢量”(IBM紀(jì)要DA9-92-028號(hào));由S.Parikh遞交的申請(qǐng)S.N.07/872,935號(hào),題為“有效處理頁表?xiàng)l目的方法和設(shè)備(IBM紀(jì)要DA9-92-027號(hào));由S.Parikh的申請(qǐng)S.N.07/872,221,題為“多位矢量歷程列表”(IBM紀(jì)要DA9-92-032);以及由S.Parikh遞交的申請(qǐng)S.N.07/872,733,題為“從實(shí)際存儲(chǔ)器換出預(yù)定頁的方法和設(shè)備”(IBM紀(jì)要DA9-92-035號(hào))。
上述共同未定(CO-Pending)申請(qǐng)列入這里作為參考。
本發(fā)明概括地講是涉及存儲(chǔ)器管理,具體地說是關(guān)于以頁為基礎(chǔ)的存儲(chǔ)器管理中提高時(shí)效器(ager)有效性的方法和設(shè)備。
在現(xiàn)代微處理器中,虛擬存儲(chǔ)器的概念是和實(shí)際存儲(chǔ)器一起使用的。虛擬存儲(chǔ)器允許以大的和/或多個(gè)應(yīng)用程序來使用較小量的實(shí)際存儲(chǔ)器(由于費(fèi)用的原因,這一點(diǎn)很重要)。這是可能的,這是由于這樣的事實(shí),即在任何時(shí)刻只需要特定應(yīng)用程序的較小部分放在實(shí)際存儲(chǔ)器中。所以,在同時(shí)運(yùn)行幾個(gè)應(yīng)用程序的計(jì)算機(jī)系統(tǒng)中,有可能只把當(dāng)前運(yùn)行的應(yīng)用程序所需要的數(shù)據(jù)和程序代碼放在實(shí)際存儲(chǔ)器中,而將不用的數(shù)據(jù)和程序代碼或者留在虛擬存儲(chǔ)器中或者存儲(chǔ)于硬盤驅(qū)動(dòng)器中。
以頁為基礎(chǔ)的存儲(chǔ)器管理使用頁的概念,每一頁通常包括4K(千字節(jié))存儲(chǔ)器地址。虛擬存儲(chǔ)器使應(yīng)用程序相信可以得到4G(千兆字節(jié))存儲(chǔ)器(對(duì)于32位尋址結(jié)構(gòu)),然而實(shí)際上是在通常小于最多1M(兆字節(jié))的實(shí)際存儲(chǔ)器上的某個(gè)地方。這樣,就必須能夠?qū)⒁恍╉搹膶?shí)際存儲(chǔ)器“換”到另一個(gè)位置(如磁盤/第二存儲(chǔ)器)。
為了允許在以頁為基礎(chǔ)的存儲(chǔ)器管理(例如“INTEL”公司的386和486微處理器,下文中稱作“i386/i486”)中進(jìn)行交換,通常提供一個(gè)分頁系統(tǒng)用于映射和定位每個(gè)單頁。通過建立和維持頁表來實(shí)現(xiàn)映射,該表將每一頁的位置列入一個(gè)頁表?xiàng)l目(PTE)。這樣,當(dāng)應(yīng)用程序需要某一特定頁時(shí),便可以通過掃描一個(gè)頁表來得到這一頁的位置。PTE包含頁地址以及指示最近使用情況的被訪問/未被訪問標(biāo)記。
為了試圖最高效率地?fù)Q入和換出實(shí)際存儲(chǔ)器,給操作系統(tǒng)提供了一個(gè)時(shí)效器(ager)。時(shí)效器的目的是當(dāng)需要空間時(shí)將近期最少使用過的頁換出去。那些在最近不曾使用過的頁將首先被指定列入“閑”頁清單,然后在必要時(shí)被替換出去。這樣,如果有一些頁沒有被使用,那么更有效的辦法是將它們放到(外)存儲(chǔ)器(即磁盤)中而不是讓它們占用實(shí)際存儲(chǔ)器中的那些可能被需要的空間。所以,時(shí)效器和分頁系統(tǒng)聯(lián)合工作以跟蹤一頁的位置并將實(shí)際需要的那些頁保持在實(shí)際存儲(chǔ)器中。
基本操作系統(tǒng)性能的一個(gè)關(guān)鍵性決定因素是以分頁為基礎(chǔ)的存儲(chǔ)器管理的性能,因?yàn)樗苤苯佑绊懝ぷ鲄^(qū)(workingset)、響應(yīng)時(shí)間和容量(Capacity)各方面系統(tǒng)的其他性能。這樣,認(rèn)真設(shè)計(jì)基本存儲(chǔ)器管理是絕對(duì)必要的。在現(xiàn)代微處理機(jī)中,存在對(duì)分頁存儲(chǔ)器管理的支持,但都是有限的。
分頁存儲(chǔ)器管理的效率直接受下列因素的影響(1)“時(shí)效(aging)”的有效性和效率,(2)正確識(shí)別不再屬于工作區(qū)內(nèi)的各頁,以及(3)時(shí)效周期的長(zhǎng)度。通過縮短時(shí)效周期,通常將使工作區(qū)也出現(xiàn)成比例的減小。對(duì)于提交任務(wù)過多的系統(tǒng),必須使時(shí)效器足夠有效,因?yàn)槿鄙龠@種有效性將使錯(cuò)誤頁面占據(jù)實(shí)際存儲(chǔ)器。
在“i386/i486”之類某些現(xiàn)代微處理器的以分頁為基礎(chǔ)的存儲(chǔ)器管理體系結(jié)構(gòu)中,存在有對(duì)應(yīng)于存儲(chǔ)器中每一頁的PTE,如前面已經(jīng)描述過的那樣。頁表?xiàng)l目存于頁表中,每個(gè)過程有它自己?jiǎn)为?dú)的一組頁表和PTE。每次一頁的內(nèi)容被訪問時(shí),便由基本硬件在對(duì)應(yīng)于該頁的PTE中置“被訪問”標(biāo)志。這個(gè)標(biāo)志告知時(shí)效器自從對(duì)那個(gè)頁表的最后一次時(shí)效服務(wù)(agingservice)或周期以來該頁已被訪問過(或未被訪問過)。時(shí)效器在掃描PTE后便清除該標(biāo)志。通常,時(shí)效器必須掃描系統(tǒng)中所有過程的全部頁表以完成一個(gè)時(shí)效周期。時(shí)效器周期性地掃描所有PTE,檢查各位的狀態(tài),并采取相應(yīng)的動(dòng)作,這些動(dòng)作可能包括將近期未被訪問的頁劃分出去(Pagingout)。在“i386/i486”微處理器中,對(duì)于識(shí)別確切的頁訪問圖象(包括訪問的確切順序)所給予的支持只限于PTE中的“被訪問/未被訪問”位。在基本硬件中,沒有提供告知分頁存儲(chǔ)器管理子系統(tǒng)頁訪問確切順序的頁計(jì)時(shí)標(biāo)記。
精心地利用分配給時(shí)效器的時(shí)間是很重要的(1)在其選擇的識(shí)別要被劃分出去的下一組頁面這個(gè)任務(wù)方面,時(shí)效器應(yīng)該是高效率的,(2)在識(shí)別需要被劃分出去的頁面方面時(shí)效器應(yīng)該是準(zhǔn)確的。在這方面的不正確決定能顯著增加將頁面錯(cuò)誤地劃分出去的情況,增加對(duì)實(shí)際存儲(chǔ)器的需求,并最終降低系統(tǒng)的競(jìng)爭(zhēng)力。時(shí)效器所消耗的中央處理單元(CPU)時(shí)間以占用系統(tǒng)中其他過程的時(shí)間為代價(jià),而一個(gè)完整的時(shí)效周期能占用幾個(gè)CPU時(shí)間片(timeslice)。為了有效地利用被時(shí)效器消耗的資源(例如CPU時(shí)間),時(shí)效器將這些可得到的資源適當(dāng)?shù)胤峙浣o不同的過程是重要的。
除了時(shí)效器功能的效率之外,利用優(yōu)越的選擇方法來選擇列入“閑頁清單”從而在其后將被劃分出去的頁面也是重要的。當(dāng)前的系統(tǒng)利用一種“近期最少使用過(leastrecentlyused)(LRU)方法”近似來將一頁換出存儲(chǔ)器。這種方法經(jīng)常能導(dǎo)致錯(cuò)誤的決定,特別是對(duì)于高度動(dòng)態(tài)和委托任務(wù)過多的系統(tǒng)更是如此。如前面描述過的那樣,一旦設(shè)置了對(duì)應(yīng)于兩個(gè)實(shí)際頁的訪問標(biāo)記,操作系統(tǒng)沒有辦法確定哪一頁是先訪問的。此外,一旦對(duì)應(yīng)于兩個(gè)不同頁的兩個(gè)PTE的被訪問標(biāo)志被復(fù)位,則操作系統(tǒng)無法確定哪一個(gè)是最后被訪問的。這樣,完全有可能時(shí)效器選擇一個(gè)不正確的頁(即最近使用過的頁),使其被換出去。
例如,當(dāng)掃描PTE時(shí),時(shí)效器可能選出兩個(gè)訪問標(biāo)志復(fù)位的PTE,對(duì)于時(shí)效器而言,這意味著自這些標(biāo)志最后一次復(fù)位后這些頁未被訪問過。時(shí)效器將把這兩頁統(tǒng)統(tǒng)指定列入閑頁清單(即將被劃分出去的潛在候選頁清單)并最終將它們都劃分出去,如果這些頁不能在足夠近的時(shí)間內(nèi)被訪問的話。換句話說,從時(shí)效器的角度來看,這兩頁是被同等對(duì)待的。然而,一頁會(huì)是使用率很高的(例如包含使用率高的軟件代碼的一頁),但它恰好在剛才的瞬間未被訪問,而另一頁可能是真正的使用率低的一頁。然而,在未來第一頁被訪問的概率高于第二頁。由于時(shí)效器的局限性,有可能在需要將一頁劃分出去時(shí)將第一頁(即高使用率的那一頁)選中,因?yàn)閺臅r(shí)效器的有限觀察能力來看,這兩頁看來是同樣的。所以,如果第一頁被換出去之后又需要被參照,便將發(fā)生頁錯(cuò)(pagefault)。一個(gè)頁錯(cuò)通常會(huì)引起處理時(shí)間的延遲,因?yàn)樵趯?duì)該頁定位并將其換回到實(shí)際存儲(chǔ)器時(shí),在運(yùn)行的過程必須暫停。
每當(dāng)一頁被訪問時(shí),便在相應(yīng)的PTE中設(shè)置被訪問位標(biāo)志。時(shí)效處理過程按順序掃描PTE以識(shí)別出已被訪問/未被訪問的頁,最后將未被訪問的頁面列入閑頁清單,這些頁可能被劃分出去。掃描過程先天地是費(fèi)時(shí)間的。并不是一個(gè)頁表中的所有PTE都需要被掃描,因?yàn)橹挥袑?duì)應(yīng)于這些PTE的頁面的一個(gè)子集將存在于實(shí)際存儲(chǔ)器中。通常,大量的PTE可能要被掃描僅只是為了找出與實(shí)際存儲(chǔ)器中存在的一個(gè)頁面相對(duì)應(yīng)的一個(gè)條目。實(shí)質(zhì)上非常大量的PTE可能要被掃描是為了確定與實(shí)際存儲(chǔ)器中存在的各頁對(duì)應(yīng)的PTE的位置。
這樣,需要一種在計(jì)算機(jī)系統(tǒng)中更有效地管理存儲(chǔ)器的方法和設(shè)備。特別是,需要一種在以分頁為基礎(chǔ)的存儲(chǔ)器管理中更有效地利用時(shí)效器的方法和設(shè)備。
這里公開的發(fā)明包括更有效地利用時(shí)效器的方法和設(shè)備,它基本上消除或減少了先有技術(shù)的時(shí)效器所存在的問題。這里所描述的方法和設(shè)備通過建立類別使各個(gè)過程安排到這些類別中來提高時(shí)效器的效率。
根據(jù)本發(fā)明的一個(gè)方面,提供了一種提高時(shí)效器效率的方法。在一個(gè)計(jì)算機(jī)系統(tǒng)中的所有過程被分類到一組類別中。然后,根據(jù)被訪問/未被訪問歷程將取自這些過程的頁潛在地?fù)Q出實(shí)際存儲(chǔ)器。
在一個(gè)實(shí)施例中,將過程放入四個(gè)不同類別之一。如果在一次時(shí)效服務(wù)之后該過程已接受的CPU時(shí)間片數(shù)目大于預(yù)定數(shù)目,該過程為1類。如果在一次時(shí)效服務(wù)之后該過程已接受的CPU時(shí)間片數(shù)目小于預(yù)定數(shù)目,該過程為2類。如果在一次時(shí)效服務(wù)之后該過程尚未接受過CPU時(shí)間片,該過程為3類。如果經(jīng)過預(yù)定次數(shù)時(shí)效服務(wù)之后,該過程一直未曾接受過CPU時(shí)間片,該過程為4類。將必需確定可能要換出的頁時(shí),按照先是4類然后是1類然后是2類的順序向各過程提供時(shí)效服務(wù)。
此外,可以建立一個(gè)表來維持對(duì)每個(gè)過程計(jì)劃分配給它的每個(gè)CPU時(shí)間片。每次時(shí)效器“觀察”那個(gè)過程或者說完成對(duì)該過程的一次時(shí)效服務(wù),被分配時(shí)間片計(jì)數(shù)便被復(fù)位。
本發(fā)明的一個(gè)技術(shù)優(yōu)點(diǎn)是將正確的下一個(gè)過程指定給時(shí)效器去進(jìn)行時(shí)效服務(wù)。通過對(duì)過程分類,當(dāng)時(shí)間很重要時(shí),即當(dāng)系統(tǒng)分配任務(wù)過多而現(xiàn)在需要實(shí)際存儲(chǔ)器空間時(shí),時(shí)效器將能夠去觀察正確的過程。
為了更全面地理解本發(fā)明及其優(yōu)點(diǎn),現(xiàn)在參考“詳細(xì)描述”及其附圖。其中
圖1是虛擬存儲(chǔ)器、實(shí)際存儲(chǔ)器及外存儲(chǔ)器相互關(guān)系的圖形表示;
圖2是根據(jù)先有技術(shù)的頁表和頁表?xiàng)l目;
圖3是根據(jù)本發(fā)明使用的表格式;
圖4是一個(gè)流程圖,說明根據(jù)本發(fā)明的調(diào)度一分配程序(Scheduler-disPatcher)的流程。
圖5是一個(gè)流程圖,說明每次時(shí)效器得到一個(gè)CPU時(shí)間片時(shí)本發(fā)明的動(dòng)作;以及圖6是根據(jù)本發(fā)明的一個(gè)數(shù)據(jù)處理系統(tǒng)的示意圖。
首先參考圖1,存儲(chǔ)器系統(tǒng)的圖形表示總體上由參考數(shù)字10標(biāo)識(shí)。當(dāng)寫一個(gè)計(jì)算機(jī)程序時(shí),它是在理解成可尋址使用的可用存儲(chǔ)器大于實(shí)際上物理存在的存儲(chǔ)器的情況下寫成的。通常,提供4千兆字節(jié)(G)虛擬(即不是實(shí)際存在的)可尋址存儲(chǔ)器12。盡管實(shí)際存儲(chǔ)器(RAM)14的容量隨計(jì)算機(jī)系統(tǒng)而變化,但所能得到的實(shí)際存儲(chǔ)器14總是小于虛擬存儲(chǔ)器12。如圖1所示,存儲(chǔ)器14有nM(兆字節(jié))存儲(chǔ)器,這里n表示一個(gè)可變數(shù),通常在5和64之間。這樣,對(duì)計(jì)算機(jī)硬件可能提供一個(gè)外存儲(chǔ)設(shè)備16,例如一個(gè)硬盤驅(qū)動(dòng)器,和實(shí)際存儲(chǔ)器14聯(lián)合使用。
當(dāng)一個(gè)過程(即一個(gè)計(jì)算機(jī)程序)在一個(gè)計(jì)算機(jī)系統(tǒng)中運(yùn)行時(shí)(見圖5),如參考數(shù)字18所指示的一個(gè)頁面(包含4K數(shù)據(jù))可以從虛擬存儲(chǔ)器12傳送到實(shí)際存儲(chǔ)器14。各頁面從虛擬存儲(chǔ)器向?qū)嶋H存儲(chǔ)器的傳送沒有特定的順序,所以在虛擬存儲(chǔ)器12中按順序排列的頁面可以不是實(shí)際存儲(chǔ)器中按順序排列的頁面。
一旦在計(jì)算機(jī)系統(tǒng)上運(yùn)行的過程已經(jīng)用到該頁,另一個(gè)過程可能需要實(shí)際存儲(chǔ)器14中的物理空間。如果沒有可使用的空間,則必須將實(shí)際存儲(chǔ)器14中的一頁從實(shí)際存儲(chǔ)器14“換出”到存儲(chǔ)設(shè)備16。再有,如果一個(gè)過程需要已被放入存儲(chǔ)設(shè)備16中的一頁,那么那一頁必須從存儲(chǔ)設(shè)備16換回到實(shí)際存儲(chǔ)器14中。
一個(gè)以分頁為基礎(chǔ)的存儲(chǔ)器管理的任務(wù)就是在虛擬存儲(chǔ)器12、實(shí)際存儲(chǔ)器14及存儲(chǔ)設(shè)備16之間映射(map)和定位各個(gè)頁面。參考圖2,在以“i386/i486”為基礎(chǔ)的微處理機(jī)中,以分頁為基礎(chǔ)的存儲(chǔ)器管理通常使用一個(gè)頁表30,它包括許多頁表?xiàng)l目32。每個(gè)頁表?xiàng)l目32由地址部分34和一系列信息位或標(biāo)志36組成。信息標(biāo)志36用于多種目的,例如,指示該頁在實(shí)際存儲(chǔ)器中是否存在。指示該頁是否為讀/寫頁等等,還包括一個(gè)被訪問/未被訪問標(biāo)志,圖中用參考數(shù)字38表示。標(biāo)志38的目的是允許以分頁為基礎(chǔ)的存儲(chǔ)器管理系統(tǒng)力圖跟蹤一個(gè)頁面是否在最近已被使用或未被使用。標(biāo)志38是在每次該頁被訪問時(shí)由基本硬件(i386/i486芯片)設(shè)置。
與以分頁為基礎(chǔ)的存儲(chǔ)器管理相結(jié)合,使用一個(gè)時(shí)效器來輔助實(shí)際存儲(chǔ)器14和存儲(chǔ)設(shè)備16之間的交換。該時(shí)效器的目的是掃描被訪問/未被訪問標(biāo)志38,并在實(shí)際存儲(chǔ)器14中需要空間時(shí)將近期最少使用頁(leastrecentlyusedpaqes)從實(shí)際存儲(chǔ)器14換到存儲(chǔ)設(shè)備16。由于時(shí)效器從單一的被訪問/未被訪問標(biāo)志38所能得到的信息量有限,時(shí)效器選出錯(cuò)誤的頁從實(shí)際存儲(chǔ)器14中換出是可能的。這種可能性是由于如下事實(shí)造成的一旦對(duì)不同的PTE設(shè)置了標(biāo)志38,時(shí)效器無法知道哪一個(gè)標(biāo)記38是最新近設(shè)置的。再有,一旦時(shí)效器掃描全部PTE,標(biāo)志38被復(fù)位,因而無法確定哪一頁是最后被訪問的。
時(shí)效器以操作系統(tǒng)其余部分為代價(jià)來完成它的全部工作。如果該系統(tǒng)是空閑的,有大量時(shí)間供時(shí)效器去做它的事,如果不然,則時(shí)效器必從操作系統(tǒng)“偷”時(shí)間以保證有足夠多頁被列入“閑”清單(一個(gè)預(yù)定頁數(shù)的清單,這些頁最后一次時(shí)效器掃描以來未被訪問過,每當(dāng)必須從實(shí)際存儲(chǔ)器換出一頁時(shí)便使用這個(gè)清單)。
操作時(shí),時(shí)效器必須走過每個(gè)過程的每個(gè)頁表中的每個(gè)頁表?xiàng)l目以發(fā)現(xiàn)哪一個(gè)在近期被訪問過/未被訪問過。如果標(biāo)志38被置位,這一頁是已被用過的。如果標(biāo)志38未被設(shè)置,這一頁是未曾被用過的,時(shí)效器能把該頁列入閑頁清單。
操作系統(tǒng)的一部分稱作“調(diào)度程序”,它與時(shí)效器獨(dú)立地工作。調(diào)度程序的任務(wù)是對(duì)正在運(yùn)行的不同過程分配CPU時(shí)間。調(diào)度程序利用某種優(yōu)先系統(tǒng)來給各個(gè)過程分配時(shí)間。因?yàn)闀r(shí)效器不與調(diào)度程序一起工作,時(shí)效器不知道一個(gè)過程在調(diào)度程序的優(yōu)先清單中的位置。這樣,一個(gè)在調(diào)度程序的清單上處于高優(yōu)先級(jí)的過程有可能在得到CPU時(shí)間去運(yùn)行該過程的那一頁之前被時(shí)效器將該頁換了出去。所以,會(huì)發(fā)生一個(gè)錯(cuò)誤,造成時(shí)間和效率的損失。
時(shí)效器最好應(yīng)該向那些自上一次對(duì)該過程完成時(shí)效周期以來被訪問過或被給予過CPU時(shí)間的那些過程提供時(shí)效服務(wù),也就是那些真有被訪問的可能性的頁。另外,系統(tǒng)中還將有一些過程,它們由于各種原因?qū)⒉粫?huì)得到任何CPU時(shí)間,因此應(yīng)該成為被替換出去的“強(qiáng)有力候選者”。如果存在這類過程,時(shí)效器應(yīng)給那些未用過程以較高優(yōu)先級(jí)并把它們替換出去,因?yàn)橛休^大可能性它們?cè)谧罱膶聿粫?huì)被訪問。
例如,使用先有技術(shù)的分頁存儲(chǔ)器管理時(shí),那些未曾得到任何CPU時(shí)間的過程即使處于調(diào)度程序的高優(yōu)先級(jí)上也會(huì)由于未被訪問而受到不公正的處罰。N個(gè)運(yùn)行于完全相同調(diào)度優(yōu)先級(jí)的過程中可能有M個(gè)過程自上次時(shí)效周期以來未曾得到任何CPU時(shí)間。這樣,只觀察那些實(shí)際得到過CPU時(shí)間的(N-M)個(gè)過程可能是更正確的作法。
這樣,為了只考察真正使用率低的那些過程或?qū)嶋H接收過CPU時(shí)間的過程,本發(fā)明在這里提供了多個(gè)不同的類別,所有的過程都能歸到這些類別中。在一個(gè)最佳實(shí)施例中,這組類別的組成是1類-自上一次時(shí)效服務(wù)以來已經(jīng)重復(fù)得到CPU時(shí)間片的那些過程;
2類-自上一個(gè)時(shí)效周期以來已經(jīng)得到過一些CPU時(shí)間片但少于某一預(yù)先選擇的門限值的那些過程;
3類-自上一個(gè)時(shí)效周期以來未曾得到任何CPU時(shí)間片的那些過程;以及4類-在若干個(gè)(由另一個(gè)門限值預(yù)先確定)時(shí)效周期期間一直未曾得到CPU時(shí)間片的那些過程。
參考圖3,根據(jù)本發(fā)明構(gòu)成一個(gè)格式化表50,對(duì)計(jì)算機(jī)系統(tǒng)中的每個(gè)過程在表中有一個(gè)條目。每個(gè)條目包括自上次時(shí)效服務(wù)以來該過程得到的CPU時(shí)間片數(shù)量的一個(gè)記錄。每次一個(gè)過程從調(diào)度程序得到一個(gè)時(shí)間片,計(jì)數(shù)器C1(由參考數(shù)字54表示)中的計(jì)數(shù)便增加1。每次時(shí)效器對(duì)一個(gè)過程給予時(shí)效服務(wù),計(jì)數(shù)器54便將復(fù)位。第二個(gè)計(jì)數(shù)器C2(由參考數(shù)字56表示)將記錄時(shí)效器對(duì)那個(gè)過程檢測(cè)出“未被分配時(shí)間”的次數(shù)。在計(jì)數(shù)器C1中的“0”值將指出那個(gè)過程“未被分配時(shí)間”。例如,如果對(duì)于兩個(gè)相繼周期時(shí)效器檢測(cè)到該過程未曾得到任何CPU時(shí)間,則計(jì)數(shù)器C2將含有值“2”。當(dāng)該過程收到一個(gè)CPU時(shí)間片時(shí)C2計(jì)數(shù)器便被復(fù)位。
如果一個(gè)過程的C1計(jì)數(shù)在一定的預(yù)定門限值范圍內(nèi),而且C2計(jì)數(shù)為零,則該過程被分到2類。如果一個(gè)過程的C1計(jì)數(shù)為零而C2計(jì)數(shù)在一定的預(yù)定門限值范圍內(nèi),則該過程被分到3類。對(duì)每個(gè)計(jì)算機(jī)系統(tǒng)通過調(diào)節(jié)和測(cè)量可以確定其準(zhǔn)確的門限值。
C2計(jì)數(shù)器的高值(大于3類所采用的最大門限值)表明相應(yīng)的過程未曾得到任何時(shí)間片,而且可能該過程的優(yōu)先級(jí)很低或者是低使用率類型的過程,所以看作是頁面要被劃分出去的好候選者。這種過程被歸于4類。
類似地,C1計(jì)數(shù)器的很高值(大于2類所采用的最大門限值)和C2計(jì)數(shù)器中的“0”值表明該過程未曾得到時(shí)效服務(wù)和一直得到大量CPU時(shí)間。C1計(jì)數(shù)器中的高值將表明“近期最少使用”信息會(huì)造成“模糊”,即難于確定實(shí)際頁訪問的順序。有C1高值和C2“0”值的過程被歸于1類。
這樣,四類別為時(shí)效器掃描頁表?xiàng)l目以得到替換出去的頁面提供了建立一個(gè)順序所需要的信息。在最佳實(shí)施例中,掃描的順序是4類、1類、最后是2類。3類將不被掃描,因?yàn)槟菚?huì)有太高的概率使錯(cuò)誤的頁被替換出去。
現(xiàn)在參考圖4和圖5,圖中顯示了本發(fā)明的流程圖。首先參考圖4,圖中顯示出描述調(diào)度程序與本發(fā)明結(jié)合執(zhí)行的流程圖。在塊60,識(shí)別出一個(gè)將要得到CPU時(shí)間片的過程。在塊62,表50(見圖3)中對(duì)應(yīng)于該過程的計(jì)數(shù)器C1增加1。在塊64,該流程繼續(xù)以時(shí)間片給予在塊60識(shí)別出的那個(gè)過程。
下面參考圖5,圖中給出每次時(shí)效器得到一個(gè)CPU時(shí)間片的本發(fā)明的過程的流程圖。在塊66時(shí)效器開始,接著是在塊68選擇表50(見圖3)中的第一個(gè)條目。在決策塊70,確定計(jì)數(shù)器C1是否為零。如果對(duì)決策塊70的反應(yīng)是“是”,則在塊72使計(jì)數(shù)器C2加1。如果對(duì)決策塊70的反應(yīng)是“否”,則說明計(jì)數(shù)器C1大于零,于是在塊74對(duì)計(jì)數(shù)器C2復(fù)位。在決策塊76確定是否所有條目都被“光顧”過或者說服務(wù)過。如果對(duì)決策塊76的反應(yīng)為“否”,則在塊78選擇下一個(gè)條目,然后返回決策塊70。如果對(duì)決策塊76的反應(yīng)為“是”,則在塊80由時(shí)效器繼續(xù)從表50(見圖3)中選擇第一個(gè)條目。在決策塊82,確定計(jì)數(shù)器C1是否大于Z1(Z1是可調(diào)節(jié)的門限值)以及C2是否等于零。如果對(duì)決策塊82的反應(yīng)為“是”,在塊84對(duì)該條目標(biāo)記為1類。如果對(duì)決策塊82的反應(yīng)為“否”,則在決策塊86確定計(jì)數(shù)器C1是否小于t1和大于t2(t2是第二個(gè)可調(diào)節(jié)門限值),以及是否計(jì)數(shù)器C2等于零。如果對(duì)決策塊86的反應(yīng)為“是”,則在塊88對(duì)該條目標(biāo)計(jì)為2類。如果對(duì)決策塊86的反應(yīng)為“否”,則在決策塊90確定計(jì)數(shù)器C1是否等于零以及計(jì)數(shù)器C2是否大于t3(t3是第三個(gè)可調(diào)節(jié)門限值)和小于t4(t4是第四個(gè)可調(diào)節(jié)門限值)??烧{(diào)節(jié)門限值t1、t2、t3和t4將隨系統(tǒng)而變,而且依賴于工作負(fù)載特性。如果對(duì)決策塊90的反應(yīng)為“是”,則在塊92對(duì)該條目標(biāo)記為3類。如果對(duì)決策塊90的反應(yīng)為“否”,則決策塊94確定計(jì)數(shù)器C1是否等于零及計(jì)數(shù)器C2是否大于t4。如果對(duì)決策塊94的反應(yīng)為“是”,則在塊96對(duì)該條目標(biāo)記為4類。如果對(duì)決策塊94的反應(yīng)為“否”,或者在塊84、88、92及96之后,在決策塊98確定是否所有條目都已被光顧過。如果對(duì)決策塊98的反應(yīng)為“否”,則在塊130選擇下一個(gè)條目,然后返回塊82。如果對(duì)決策塊98的反應(yīng)為“是”,則首先在塊132對(duì)所有標(biāo)為4類的過程提供時(shí)效服務(wù)(當(dāng)能得到CPU時(shí)間的時(shí)候)。然后在塊134。由時(shí)效器對(duì)所有標(biāo)為1類的過程提供時(shí)效服務(wù)(當(dāng)能得到CPU時(shí)間的時(shí)候)。在塊136,時(shí)效服務(wù)提供給所有標(biāo)為2類的條目(當(dāng)能得到CPU時(shí)間的時(shí)候)。在完成塊136之后,時(shí)效器在塊138退出,于是該周期結(jié)束。
下面參考圖6,圖中以框圖形式給出根據(jù)本發(fā)明的一個(gè)數(shù)據(jù)處理系統(tǒng),它總體上用參考數(shù)字100標(biāo)識(shí)。系統(tǒng)100包括處理器102,它包括中央處理單元(CPU)104和存儲(chǔ)器106。以硬盤存儲(chǔ)器108形式的附加存儲(chǔ)器和軟盤設(shè)備110與處理器102相連。軟盤設(shè)備接受軟盤112,軟盤112中記錄有在系統(tǒng)100中實(shí)現(xiàn)本發(fā)明的計(jì)算機(jī)程序代碼。系統(tǒng)100包括用戶接口硬件,包括鼠標(biāo)器114和鍵盤116讓用戶向處理器102輸入以及顯示器118用于向用戶顯示可見數(shù)據(jù)。系統(tǒng)100也可以包括打印機(jī)120。
雖然已經(jīng)參考一個(gè)最佳實(shí)施例具體顯示和描述了本發(fā)明,精通本領(lǐng)域技術(shù)的人們將會(huì)理解,可以在形式和細(xì)節(jié)上做各種改變而不偏離本發(fā)明的精神和范圍。
權(quán)利要求
1.在一個(gè)可以運(yùn)行多個(gè)過程的計(jì)算機(jī)系統(tǒng)的以分頁為基礎(chǔ)的存儲(chǔ)器管理中提高時(shí)效器有效性的一種方法,其將點(diǎn)在于下列步驟將每個(gè)過程歸類到一組類別中的一類;以及根據(jù)所述類別和被訪問/未被訪問歷程將過程的一些頁面指定列入閑頁清單。
2.如權(quán)利要求1的方法,這里分類步驟的特點(diǎn)是用預(yù)先確定的判據(jù)評(píng)價(jià)各個(gè)過程以將這些過程放入四個(gè)不同類別之一。
3.如權(quán)利要求2的方法,其特點(diǎn)在于所述評(píng)價(jià)步驟包括如果在一次時(shí)效服務(wù)之后該過程已得到多個(gè)中央處理單元時(shí)間片,且其數(shù)目大于預(yù)定數(shù)目,則把該過程放入第一類;如果在一次時(shí)效服務(wù)之后該過程已得到的中央處理單元時(shí)間片數(shù)目小于預(yù)定數(shù)目,則把該過程放入第二類;如果在一次時(shí)效服務(wù)之后該過程未曾得到過中央處理單元時(shí)間片,則把該過程放入第三類;以及如果在預(yù)定次數(shù)時(shí)效服務(wù)之后該過程還不曾得到過中央處理單元時(shí)間片,則把該過程放入第四類。
4.如權(quán)利要求3的方法,其特點(diǎn)在于“指定”步驟包括首先向來自所述第四類的頁面提供時(shí)效服務(wù);如果需要,則接著向來自所述第一類的頁面提供時(shí)效服務(wù);以及如果需要,則接著向來自所述第二類的頁面提供時(shí)效服務(wù)。
5.如權(quán)利要求1的方法,其特點(diǎn)在于下述步驟構(gòu)成一個(gè)表,用以保持對(duì)每個(gè)過程分配到中央處理單元時(shí)間片的次數(shù)計(jì)數(shù)和對(duì)時(shí)效器檢測(cè)到?jīng)]有被分配到時(shí)間片的檢測(cè)次數(shù)計(jì)數(shù)。
6.如權(quán)利要求5的方法,其特點(diǎn)在于下述步驟每次時(shí)效器對(duì)該過程提供服務(wù)時(shí),將所述時(shí)間片計(jì)數(shù)復(fù)位。
7.在一個(gè)可以運(yùn)行多個(gè)過程的計(jì)算機(jī)系統(tǒng)的以分頁為基礎(chǔ)的存儲(chǔ)器管理中提高時(shí)效器有效性的一個(gè)系統(tǒng),其特點(diǎn)在于一組類別,每個(gè)過程將被分類到這組類別中,所述類別建立起時(shí)效器提供服務(wù)的優(yōu)先級(jí)。
8.如權(quán)利要求7的系統(tǒng),這里所述一組類別的特點(diǎn)在于第一類接收的過程,是在一次時(shí)效服務(wù)后所收到的中央處理單元時(shí)間片數(shù)目大于一個(gè)預(yù)定數(shù)目的過程;第二類接收的過程,是在一次時(shí)效服務(wù)后所收到的中央處理單元時(shí)間片數(shù)目小于所述預(yù)定數(shù)目的過程;第三類接收的過程,是在一次時(shí)效服務(wù)后未曾收到中央處理單元時(shí)間片的過程;以及第四類接收的過程,是在預(yù)定次數(shù)時(shí)效服務(wù)后還未曾收到中央處理單元時(shí)間片的過程。
9.如權(quán)利要求7的系統(tǒng),其特點(diǎn)在于一個(gè)表,用以保持對(duì)每個(gè)過程分配到中央處理單元時(shí)間片的次數(shù)計(jì)數(shù)和對(duì)時(shí)效器檢測(cè)到?jīng)]有被分配到時(shí)間片的檢測(cè)次數(shù)計(jì)數(shù)。
10.有效地利用一個(gè)分頁為基礎(chǔ)的存儲(chǔ)器管理中的時(shí)效器的計(jì)算機(jī)系統(tǒng),其中可以運(yùn)行多個(gè)過程,其特點(diǎn)是將每個(gè)過程分類到一組類別之一的裝置;根據(jù)所述分類和被訪問/未被訪問歷程將過程的一些頁面指定分配到閑頁清單的裝置。
11.如權(quán)利要求10的系統(tǒng),其特點(diǎn)在于所述分類裝置包括以預(yù)定制據(jù)評(píng)價(jià)過程從而將過程放入四個(gè)不同類別之一的裝置。
12.如權(quán)利要求11的系統(tǒng),其特點(diǎn)在于所述評(píng)價(jià)的裝置包括如果一個(gè)過程在一次時(shí)效服務(wù)后已得到的中央處理單元時(shí)間片的數(shù)目大于一個(gè)預(yù)定數(shù)目則將該過程放入第一類的裝置;如果一個(gè)過程在一次時(shí)效服務(wù)后得到的中央處理單元時(shí)間片數(shù)目少于所述預(yù)定數(shù)目則將該過程放入第二類的裝置;如果一個(gè)過程在一次時(shí)效服務(wù)后未曾得到過中央處理單元時(shí)間片則將該過程放入第三類的裝置;以及如果一個(gè)過程在預(yù)定次數(shù)時(shí)效服務(wù)后還未曾得到過中央處理單元時(shí)間片則將該過程放入第四類的裝置。
13.如權(quán)利要求12的系統(tǒng),其特點(diǎn)在于上述的指定裝置包括首先對(duì)來自所述第四類的頁面提供時(shí)效服務(wù)的裝置;如果需要?jiǎng)t接著向來自所述第一類的頁面提供時(shí)效服務(wù)的裝置;以及如果需要?jiǎng)t接著向來自所述第二類的頁面提供時(shí)效服務(wù)的裝置。
14.如權(quán)利要求10的系統(tǒng),其特點(diǎn)是構(gòu)成一個(gè)表的裝置,該表用以保持對(duì)每個(gè)過程分配到中央處理單元時(shí)間片的次數(shù)計(jì)數(shù)和對(duì)時(shí)效器檢測(cè)到?jīng)]有被分配到時(shí)間片的檢測(cè)次數(shù)計(jì)數(shù)。
15.如權(quán)利要求14的系統(tǒng),其特點(diǎn)在于每次時(shí)效器訪問一個(gè)過程時(shí)對(duì)所述被分配時(shí)間片的計(jì)算復(fù)位的裝置。
全文摘要
本發(fā)明中建立了四個(gè)類別,用于對(duì)利用時(shí)效器和以分頁為基礎(chǔ)的存儲(chǔ)器管理的計(jì)算機(jī)系統(tǒng)上的所有過程進(jìn)行分類。第一類將包括自上次時(shí)效器服務(wù)以來反復(fù)接受中央處理單元(CPU)時(shí)間片的所有過程。第二類將包括自上次時(shí)效器服務(wù)以來接受CPU時(shí)間片數(shù)目少于某一預(yù)選門限值的所有過程。第三類將包括自上次時(shí)效器服務(wù)以來未曾接受過CPU時(shí)間片的所有過程。第四類將包括在時(shí)效器服務(wù)過某一預(yù)定次數(shù)期間未接受過CPU時(shí)間片的所有過程。
文檔編號(hào)G06F12/02GK1094172SQ9310320
公開日1994年10月26日 申請(qǐng)日期1993年3月22日 優(yōu)先權(quán)日1992年4月22日
發(fā)明者施瑞肯特·N·帕瑞科 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司