亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

計(jì)算機(jī)以及基于管理程序的資源調(diào)度方法

文檔序號:10540844閱讀:286來源:國知局
計(jì)算機(jī)以及基于管理程序的資源調(diào)度方法
【專利摘要】除了管理程序以外,在計(jì)算機(jī)上運(yùn)行簡易管理程序。在簡易管理程序上,在管理程序故障時(shí)也想要保證動作持續(xù)的客戶機(jī)操作系統(tǒng)進(jìn)行動作,在管理程序上,除此以外的客戶機(jī)操作系統(tǒng)進(jìn)行動作。管理程序進(jìn)行資源調(diào)度,即決定對各客戶機(jī)操作系統(tǒng)分配或回收的資源,對于想要保證動作持續(xù)的客戶機(jī)操作系統(tǒng),由簡易管理程序代替管理程序來執(zhí)行資源的分配或回收。
【專利說明】
計(jì)算機(jī)以及基于管理程序的資源調(diào)度方法
技術(shù)領(lǐng)域
[0001]本發(fā)明大體上涉及一種基于管理程序(hypervisor)的資源調(diào)度。
【背景技術(shù)】
[0002]已知一種使用管理程序使多個(gè)客戶機(jī)操作系統(tǒng)進(jìn)行動作的計(jì)算機(jī)。在這種計(jì)算機(jī)中,使用管理程序中的動態(tài)資源調(diào)度功能,根據(jù)負(fù)載來調(diào)節(jié)向各客戶機(jī)操作系統(tǒng)分配的資源量。作為資源,一般為物理存儲器和物理CPU(Central Processing Unit:中央處理器)。另外,還存在在同一殼體上共存多個(gè)客戶機(jī)操作系統(tǒng)的計(jì)算機(jī)。
[0003]根據(jù)應(yīng)用這種計(jì)算機(jī)的用途,必須保證高可用性。這種用途的一例為關(guān)鍵任務(wù)的用途。管理程序?yàn)榫哂泻芏喙δ艿臋C(jī)構(gòu)(典型的是計(jì)算機(jī)程序,但也可以是安裝了計(jì)算機(jī)程序的硬件電路),因此,難以將管理程序的可用性提高至能夠應(yīng)用于關(guān)鍵任務(wù)的用途的水平。因此,面向關(guān)鍵任務(wù)的計(jì)算機(jī)通常無法搭載管理程序。
[0004]作為基于管理程序的資源調(diào)度方法,已知非專利文獻(xiàn)I所記載的方法。根據(jù)該方法,管理程序所具有的CPU調(diào)度器(資源調(diào)度器的一例)進(jìn)行與0S(0perating System:操作系統(tǒng))的CHJ調(diào)度器相同的動作。
[0005]管理程序提供虛擬的執(zhí)行環(huán)境(虛擬計(jì)算機(jī)),將在各虛擬計(jì)算機(jī)的虛擬CPU上進(jìn)行動作的客戶機(jī)操作系統(tǒng)的處理作為過程(process)而進(jìn)行處理。而且,決定CPU調(diào)度器在物理CPU上對哪個(gè)客戶機(jī)操作系統(tǒng)(過程)進(jìn)行調(diào)度。并且,管理程序還執(zhí)行物理CPU上的執(zhí)行上下文的切換處理(資源的分派/搶占處理)。
[0006]現(xiàn)有技術(shù)文獻(xiàn)
[0007]非專利文獻(xiàn)1:VMwareInc.,”The CPU scheduler in VMware vSphere 5.1”,VMware technical white paper,2013.

【發(fā)明內(nèi)容】

[0008]發(fā)明要解決的課題
[0009]在上述方法中,在管理程序發(fā)生故障的情況下,所有客戶機(jī)操作系統(tǒng)的動作不能持續(xù)。這是因?yàn)?,由于管理程序故障,不能?zhí)行向客戶機(jī)操作系統(tǒng)的資源的分派/搶占處理(分配/回收處理)。所有客戶機(jī)操作系統(tǒng)無法使用動作所需的資源(CPU、存儲器等),從而動作不能持續(xù)。
[0010]用于解決課題的手段
[0011 ]除了管理程序以外,使簡易管理程序在計(jì)算機(jī)上運(yùn)行。管理程序具有:包含一個(gè)以上的物理存儲器和多個(gè)物理CPU的多個(gè)資源的仿真功能以及資源調(diào)度(對各客戶機(jī)操作系統(tǒng)決定進(jìn)行分配或回收的資源)的功能,但是簡易管理程序具有以下代理功能:代替管理程序進(jìn)行針對客戶機(jī)操作系統(tǒng)的資源分配或資源回收。在簡易管理程序上,第一客戶機(jī)操作系統(tǒng)(例如,在管理程序故障時(shí)也想保證持續(xù)動作的客戶機(jī)操作系統(tǒng))進(jìn)行動作,在管理程序上,第二客戶機(jī)操作系統(tǒng)(第一客戶機(jī)操作系統(tǒng)以外的客戶機(jī)操作系統(tǒng))進(jìn)行動作。管理程序進(jìn)行資源調(diào)度,簡易管理程序代替管理程序?qū)Φ谝豢蛻魴C(jī)操作系統(tǒng)執(zhí)行資源的分配或回收。
[0012]發(fā)明的效果
[0013]即使管理程序發(fā)生故障也能夠保證第一客戶機(jī)操作系統(tǒng)持續(xù)動作。
【附圖說明】
[0014]圖1是在本發(fā)明的實(shí)施方式中設(shè)想的系統(tǒng)結(jié)構(gòu)。
[0015]圖2是在本發(fā)明的實(shí)施例中設(shè)想的硬件結(jié)構(gòu)。
[0016]圖3是分派/搶占請求日志的數(shù)據(jù)結(jié)構(gòu)。
[0017]圖4是CPU分配狀態(tài)的數(shù)據(jù)結(jié)構(gòu)。
[0018]圖5是存儲器分配狀態(tài)的數(shù)據(jù)結(jié)構(gòu)。
[0019]圖6是管理程序上下文保存區(qū)域的數(shù)據(jù)結(jié)構(gòu)。
[0020]圖7是管理程序代理上下文保存區(qū)域的數(shù)據(jù)結(jié)構(gòu)。
[0021]圖8是表示在分派/搶占處理時(shí)使用的代碼區(qū)域和堆棧區(qū)域的配置的圖。
[0022]圖9是地址變換表的數(shù)據(jù)結(jié)構(gòu)。
[0023]圖10是CPU使用履歷管理表的數(shù)據(jù)結(jié)構(gòu)。
[0024]圖11是存儲器使用履歷管理表(1001)的數(shù)據(jù)結(jié)構(gòu)。
[0025]圖12是CPU調(diào)度器的動作流程(定期啟動時(shí))。
[0026]圖13是CPU調(diào)度器的動作流程(從CPU分派代理開始的捕獲返回時(shí))。
[0027]圖14是CPU分派代理和第一客戶機(jī)操作系統(tǒng)CPU調(diào)度器的動作流程(分派請求時(shí))。
[0028]圖15是CPU分派代理和第一客戶機(jī)操作系統(tǒng)CPU調(diào)度器的動作流程(搶占請求時(shí))。
[0029]圖16是存儲器調(diào)度器的動作流程。
[0030]圖17是存儲器分派代理和第一客戶機(jī)操作系統(tǒng)存儲器調(diào)度器的動作流程。
[0031 ]圖18是特權(quán)命令執(zhí)行部和無狀態(tài)CPU仿真器的動作流程。
[0032]圖19是再啟動控制的動作流程(定期啟動時(shí))。
[0033]圖20是再啟動控制的動作流程(再啟動時(shí))。
【具體實(shí)施方式】
[0034]以下,說明一實(shí)施方式。
[0035]此外,在以下說明中,通過“kkk表”的表達(dá)說明信息,但是信息也可以通過表以外的數(shù)據(jù)結(jié)構(gòu)來表達(dá)。為了表示不依賴于數(shù)據(jù)結(jié)構(gòu),能夠?qū)ⅰ発kk表”稱為“kkk信息”。
[0036]另外,在以下說明中,有時(shí)將“程序”作為主語來說明處理,但是程序通過物理CPU來執(zhí)行,由此適當(dāng)?shù)厥褂么鎯Y源(例如存儲器)和/或通信接口設(shè)備(例如通信端口)來進(jìn)行所決定的處理,因此也可以將處理的主語設(shè)為物理CPU。相反,能夠解釋為通過執(zhí)行一個(gè)以上的程序來進(jìn)行物理CPU成為主語的處理。另外,物理CPU可以包含用于進(jìn)行處理器所進(jìn)行的部分或全部處理的的硬件電路,也可以是指多核處理器的各核。計(jì)算機(jī)程序可以從程序源碼安裝于各計(jì)算機(jī)中。程序源碼例如也可以是程序分發(fā)服務(wù)器或存儲介質(zhì)。
[0037]圖1表示實(shí)施方式的概要。
[0038]計(jì)算機(jī)201具有多個(gè)資源(物理資源),該多個(gè)資源包含多個(gè)物理CPU(Ill)和物理存儲器(112)和(113)。物理存儲器(112)為第一物理存儲區(qū)域的一例,物理存儲器(113)為第二物理存儲區(qū)域的一例。物理存儲器(112)和(113)也可以是從一體的物理存儲器的存儲區(qū)域中確保的多個(gè)存儲區(qū)域。
[0039]在計(jì)算機(jī)201中,除了管理程序(101)以外還存在管理程序代理(102),提供虛擬計(jì)算機(jī)環(huán)境。管理程序代理(102)為簡易管理程序的一例。在管理程序代理(102)所提供的虛擬計(jì)算機(jī)上,第一客戶機(jī)操作系統(tǒng)(103)進(jìn)行運(yùn)行,在管理程序(101)所提供的虛擬計(jì)算機(jī)上,第二客戶機(jī)操作系統(tǒng)(104)進(jìn)行運(yùn)行。對第一客戶機(jī)操作系統(tǒng)(103)和第二客戶機(jī)操作系統(tǒng)(104)中的各個(gè)客戶機(jī)操作系統(tǒng)進(jìn)行動態(tài)地對資源進(jìn)行分配或回收的資源調(diào)度。在本實(shí)施方式中,作為動態(tài)地分配或回收的資源,存在物理CPU和存儲區(qū)域(在本實(shí)施方式中還稱為“頁”)。
[0040]在管理程序代理(102)的動作中使用的資源可以只是多個(gè)資源中的第一客戶機(jī)操作系統(tǒng)(103)能夠使用(管理程序(101)不使用)的資源。管理程序代理(102)能夠通過更新地址變換表(134)來進(jìn)行存儲器虛擬化,其中,地址變換表表示從客戶機(jī)操作系統(tǒng)指定的邏輯地址(在本實(shí)施方式中客戶機(jī)物理頁編號)以及與該邏輯地址對應(yīng)的物理地址(在本實(shí)施方式中主機(jī)物理頁編號)之間的對應(yīng)。由此,能夠控制第一客戶機(jī)操作系統(tǒng)(103)可訪問的存儲區(qū)域(頁)。地址變換表(134)例如可以是EPT(擴(kuò)展頁表)或DWAR(DMA(Direct MemoryAccess )Remapping:直接存儲器訪問重映射)表。
[0041]決定資源調(diào)度的是管理程序(101),但是對第一客戶機(jī)操作系統(tǒng)(103)的資源分配或資源回收,由管理程序代理(102)代替管理程序來執(zhí)行。
[0042]管理程序(101)通過向非易失性區(qū)域(非易失性存儲區(qū)域)(114)寫入資源的分派/搶占(分配/回收)請求發(fā)布來進(jìn)行該請求發(fā)布。管理程序代理(102)從非易失性區(qū)域(114)讀出該請求,按該請求執(zhí)行處理。也可以采用易失性的存儲區(qū)域來代替非易失性區(qū)域
(114)。另外,非易失性區(qū)域(114)也可以存在于計(jì)算機(jī)(201)外(參照圖2)。
[0043]如果請求為CPU的分派請求,則將分派對象的物理CPU的上下文從管理程序(101)切換到管理程序代理(102),在該物理CPU上管理程序代理(102)進(jìn)行動作。并且,管理程序代理(102)向第一客戶機(jī)操作系統(tǒng)(103)通知能夠使用該物理CPU。結(jié)果,第一客戶機(jī)操作系統(tǒng)(103)能夠在該物理CPU上開始動作。
[0044]如果請求為物理CHJ的搶占請求,則管理程序代理(102)向第一客戶機(jī)操作系統(tǒng)(103)通知無法使用該物理CPU。結(jié)果,第一客戶機(jī)操作系統(tǒng)(103)不在該物理CPU上進(jìn)行動作。并且,搶占對象的物理(PU的上下文從管理程序代理(102)切換到管理程序(101)。
[0045]如果請求為存儲器分派請求或存儲器搶占請求,則執(zhí)行地址變換表(134)的更新處理,從而使第一客戶機(jī)操作系統(tǒng)(103)能夠訪問所指定的存儲區(qū)域或不能訪問。此時(shí),管理程序代理(102)向第一客戶機(jī)操作系統(tǒng)(103)進(jìn)行通知,第一客戶機(jī)操作系統(tǒng)(103)也能夠識別能夠訪問或不能訪問該存儲區(qū)域。
[0046]在管理程序代理(102)所提供的虛擬計(jì)算機(jī)環(huán)境中,物理CPU不被虛擬化,但是物理存儲器(112和113)被虛擬化。即,第一客戶機(jī)操作系統(tǒng)(103)對物理CPU(Ill)上的寄存器
(115)—邊直接進(jìn)行更新一邊占用執(zhí)行。但是,第一客戶機(jī)操作系統(tǒng)(103)經(jīng)由地址變換表
(134)向物理存儲器(112和113)進(jìn)行存取。此時(shí),物理存儲器的地址空間被變換,無法從第一客戶機(jī)操作系統(tǒng)(103)識別出存在部分物理存儲器(區(qū)域)。
[0047]為了實(shí)現(xiàn)動態(tài)資源調(diào)度,管理程序(101)具有CHJ調(diào)度器(121)和存儲器調(diào)度器
(122)。這些調(diào)度器用于決定物理CPU(Ill)、物理存儲器(112和113)向第一客戶機(jī)操作系統(tǒng)
(103)和第二客戶機(jī)操作系統(tǒng)(104)的分配。
[0048]管理程序代理(102)具有CPU分派代理(126)、存儲器分派代理(125)和無狀態(tài)CPU仿真器124。
[0049]上述調(diào)度器不直接進(jìn)行物理CPU(Ill)、物理存儲器(112和113)向第一客戶機(jī)操作系統(tǒng)的分派處理,而是經(jīng)由非易失性區(qū)域(114)發(fā)布資源的分派/搶占請求。參考該請求,管理程序代理(102)的CPU分派代理(126)、存儲器分派代理(125)進(jìn)行CPU/存儲器的分派處理。
[0050]在CPU的分派處理中,進(jìn)行物理CPU( 111)的執(zhí)行上下文的切換處理。由此,在物理CPU(Ill)上進(jìn)行動作的客戶機(jī)操作系統(tǒng)進(jìn)行切換。另外,在存儲器的分派處理中,進(jìn)行地址變換表(134)的設(shè)定處理(更新處理)。由此,從第一客戶機(jī)操作系統(tǒng)(103)能夠重新訪問或重新無法訪問物理存儲器(112)的一部分。第一客戶機(jī)操作系統(tǒng)(103)具有客戶機(jī)CPU調(diào)度器(129)、客戶機(jī)存儲器調(diào)度器(128)以及特權(quán)命令執(zhí)行部(127),但是為了實(shí)現(xiàn)分派處理,管理程序代理(102)與客戶機(jī)CPU調(diào)度器(129)和存儲器調(diào)度器(128)進(jìn)行協(xié)作。
[0051]通過采取上述那樣的結(jié)構(gòu),能夠?qū)崿F(xiàn)第一客戶機(jī)操作系統(tǒng)(103)和第二客戶機(jī)操作系統(tǒng)(104)所使用的CPU/存儲器資源的動態(tài)調(diào)度。
[0052]在本實(shí)施方式中設(shè)想的系統(tǒng)結(jié)構(gòu)中,第一客戶機(jī)操作系統(tǒng)(103)在物理CPU(Ill)上直接執(zhí)行。但是,在根據(jù)物理CPU( 111)使基于地址變換表(134)的存儲器虛擬化功能有效的情況下,有時(shí)在第一客戶機(jī)操作系統(tǒng)(103)執(zhí)行特權(quán)命令時(shí)發(fā)生捕獲。在該情況下為了保證直接執(zhí)行,管理程序代理(102)具有上述無狀態(tài)CPU仿真器(124)。無狀態(tài)CPU仿真器(124)根據(jù)捕獲到的特權(quán)命令,執(zhí)行物理CPU( 111)上的寄存器(115)的更新處理。
[0053]另外,即使管理程序(101)發(fā)生故障,為了能夠使第一客戶機(jī)操作系統(tǒng)(103)和管理程序代理(102)的動作繼續(xù),同時(shí)能夠使管理程序(101)和第二客戶機(jī)操作系統(tǒng)(104)再啟動和繼續(xù)處理,將管理程序代理(102)和第一客戶機(jī)操作系統(tǒng)(103)配置在物理存儲器的保護(hù)區(qū)域(112),即不能從管理程序(101)和第二客戶機(jī)操作系統(tǒng)(104)進(jìn)行寫入的區(qū)域。管理程序(101)和第二客戶機(jī)操作系統(tǒng)(104)無法破壞該區(qū)域的數(shù)據(jù)、代碼。另外,管理程序
(101)具有再啟動控制(123)。非易失性區(qū)域(114)存儲請求日志表(131)、CHJ分配狀態(tài)表
(132)以及存儲器分配狀態(tài)表(133),再啟動控制(131)參照在非易失性區(qū)域(114)中保存的這些信息(131)?(133)。然后,再啟動控制(123)等待至請求日志表(131)中登錄的發(fā)布中的請求的處理全部完成為止。并且,再啟動控制(123)根據(jù)CPU/存儲器的分配狀態(tài),僅使用管理程序(101)和第二客戶機(jī)操作系統(tǒng)(104)能夠使用的CPU/存儲器,進(jìn)行它們的啟動處理。
[0054]由管理程序代理(102)代替管理程序(101)進(jìn)行第一客戶機(jī)操作系統(tǒng)(103)所使用的資源的分派。另外,在執(zhí)行第一客戶機(jī)操作系統(tǒng)(103)的過程中在其間進(jìn)行CPU仿真的也是管理程序代理(102),而非管理程序(101)。即,即使在管理程序(101)發(fā)生故障,第一客戶機(jī)操作系統(tǒng)(103)和管理程序代理(102)也能夠繼續(xù)動作。管理程序代理(102)的提供功能與管理程序(101)相比少(例如,遠(yuǎn)少于管理程序(101)),因此,認(rèn)為即使管理程序(101)發(fā)生故障也不難使第一客戶機(jī)操作系統(tǒng)(103)的動作繼續(xù)。
[0055]另外,構(gòu)成為將請求日志表(131)、CPU分配狀態(tài)表(132)以及存儲器分配狀態(tài)表
(133)保存在非易失性區(qū)域(114)中,在管理程序(101)再啟動之后也能夠進(jìn)行參照,由此即使在管理程序發(fā)生故障后,也能夠僅使第二客戶機(jī)操作系統(tǒng)(104)和管理程序(101)再啟動以及繼續(xù)處理。
[0056]以下,詳細(xì)說明本實(shí)施方式。
[0057]圖2表示計(jì)算機(jī)201的硬件結(jié)構(gòu)。
[0058]第一客戶機(jī)操作系統(tǒng)(103)、管理程序代理(102)、第二客戶機(jī)操作系統(tǒng)(104)以及管理程序(101)那樣的程序配置在計(jì)算機(jī)(201)的物理存儲器(112和113)上。物理存儲器(112和113)經(jīng)由CPU總線(202)與多個(gè)物理CPU(Ill)可通信地連接。多個(gè)物理CPU(Ill)中的至少一個(gè)CPU(Ill)讀取并執(zhí)行上述程序。地址變換表(134)配置在物理存儲器(112和113)上,用于在執(zhí)行第一客戶機(jī)操作系統(tǒng)(103)、第二客戶機(jī)操作系統(tǒng)(104)時(shí)的存儲器存取中的地址變換的控制。請求日志表(131)、CPU分配狀態(tài)表(132)、存儲器分配狀態(tài)表(133)配置在非易失性區(qū)域(114)。計(jì)算機(jī)(102)具有1/0(輸入/輸出)控制器(203),能夠經(jīng)由I/O控制器(203)和I/O線纜(204),從在物理CPU( 111)上執(zhí)行的程序向非易失性區(qū)域(114)進(jìn)行存取。例如在進(jìn)行讀取處理的情況下,程序?qū)/O控制器(203)發(fā)布I/O請求。I/O控制器(203)經(jīng)由I/O線纜(204)來讀取非易失性區(qū)域(114)上的數(shù)據(jù),將讀取到的數(shù)據(jù)經(jīng)由CPU總線(202)寫入到物理存儲器(112和113)中。在物理CPU( 111)上進(jìn)行動作的程序經(jīng)由CPU總線(202)取得該寫入的數(shù)據(jù)。I/O線纜(204)也可以是通信網(wǎng)絡(luò)中的線纜。
[0059]圖3表示請求日志表(131)的結(jié)構(gòu)。
[0060]請求日志表(131)是用于管理日志的表,該日志包含CPU調(diào)度器(121)、存儲器調(diào)度器(122)所發(fā)布的資源分派/搶占請求以及通過CPU分派代理(126)和存儲器代理(125)對該請求的處理狀況。本表針對每個(gè)請求具有資源種類(301)、編號(302)、原狀態(tài)(303)、新狀態(tài)(304)、客戶機(jī)物理編號(305)和處理狀態(tài)(306)的字段。一個(gè)列與一個(gè)請求的日志對應(yīng)。
[0061]資源種類(301)表示分派/搶占對象為CPU還是存儲器。
[0062]編號(302)表示成為分派/搶占的對象的資源的編號(識別編號)。在CPU為分派對象的情況下,編號(302)表不分派對象的物理CPU的編號,在存儲器為分派對象的情況下,表示分派對象的存儲區(qū)域(頁)的主機(jī)物理頁編號、識別頁的編號。
[0063]原狀態(tài)(303)和新狀態(tài)(304)表示在分派/搶占處理前和后能夠使用對象資源的客戶機(jī)操作系統(tǒng)的編號。在對象資源未被分配給任何客戶機(jī)操作系統(tǒng)而處于空閑狀態(tài)的情況下,原狀態(tài)(303)和新狀態(tài)(304)中的至少一個(gè)值可以是意味著空閑狀態(tài)的值“F"。
[0064]客戶機(jī)物理編號(305)不是在由管理程序(101)進(jìn)行的資源分派/搶占請求中使用,而是僅在管理程序(101)將地址變換表(134)的設(shè)定委托給管理程序代理(102)的特殊事例中使用。在本實(shí)施方式中,地址變換表(134)由管理程序(101)和管理程序代理(102)共享。此時(shí),為了防止管理程序(101)破壞地址變換表(134),將地址變換表(134)配置在物理存儲器(保護(hù)區(qū)域)(112)。管理程序(101)在更新地址變換表(134)時(shí),將指定了設(shè)定所需的信息(例如編號(302)和新狀態(tài)(304))的地址變更請求發(fā)給存儲器分派代理(125)。
[0065]處理狀態(tài)(306)表示按照請求的分派/搶占處理的處理狀況。當(dāng)CPU調(diào)度器(121)或存儲器調(diào)度器(122)發(fā)布了請求時(shí),將與該請求對應(yīng)的處理狀態(tài)(306)更新為“處理中”。另夕卜,當(dāng)CPU分派代理(126)或存儲器分派代理(125)完成了按照請求的處理時(shí),將與該請求對應(yīng)的處理狀態(tài)(306)更新為“完成”。
[0066]根據(jù)請求的種類,僅使用上述字段中的部分字段。例如在請求為CPU的分派/搶占請求的情況下,不使用客戶機(jī)物理編號(205)的字段。
[0067]另外,作為存儲器的分派/搶占請求,存在向第一客戶機(jī)操作系統(tǒng)(103)分配存儲區(qū)域(頁)的分派請求、從第一客戶機(jī)操作系統(tǒng)(103)回收存儲區(qū)域的搶占請求以及由管理程序(101)進(jìn)行的地址變換表(134)的地址更新請求這三種。在為分派請求的情況下,不使用客戶機(jī)物理編號(305)的字段。在為搶占請求的情況下,不使用編號(302)和客戶機(jī)物理編號(305)的字段(可以請求回收第一客戶機(jī)操作系統(tǒng)(103)當(dāng)前正在使用的任意I頁)。另夕卜,在為地址變換請求的情況下,不使用原狀態(tài)(303)的字段(這是因?yàn)樵谡埱笄昂筚Y源的所有者不變更)。
[0068]圖4表示CPU分配狀態(tài)表(132)的結(jié)構(gòu)。
[0069]CHJ分配狀態(tài)表(132)針對每個(gè)物理CPU具有CPU編號(401)的字段和分配目的地(402)的字段。CPU編號(401)表示物理CPU(Ill)的編號(識別編號),分配目的地(402)表示被分配了對應(yīng)的物理CPU(Ill)的客戶機(jī)操作系統(tǒng)的編號(識別編號)。關(guān)于不存在分配目的地的客戶機(jī)操作系統(tǒng)為空閑狀態(tài)的物理CPU (111 ),分配目的地(40 2)的值可以是意味著空閑狀態(tài)的值“F”。另外,關(guān)于為分派/搶占處理中的物理CPU(Ill),分配目的地(402)的值可以是意味著處理中的值
[00"70]圖5表不存儲器分配狀態(tài)表(133)的結(jié)構(gòu)。
[0071]存儲器分配狀態(tài)表(133)針對每一頁具有主機(jī)物理頁編號(501)的字段、客戶機(jī)物理頁編號(502)的字段以及分配目的地(503)的字段。主機(jī)物理頁編號(501)表示頁的編號(識別編號),相當(dāng)于物理地址。客戶機(jī)物理頁編號(502)表示客戶機(jī)操作系統(tǒng)所識別的頁編號,相當(dāng)于邏輯地址。分配目的地(503)表示頁的分配目的地的客戶機(jī)操作系統(tǒng)的編號。關(guān)于不存在分配目的地的客戶機(jī)操作系統(tǒng)為空閑狀態(tài)的頁,客戶機(jī)物理頁編號(502)和分配目的地(503)分別可以是意味著空閑狀態(tài)的值“F”。另外,關(guān)于分派/搶占處理中的頁,客戶機(jī)物理頁編號(502)和分配目的地(503)分別可以是意味著處理中的值
[0072]圖6表示第一上下文保存區(qū)域(601)。
[0073]第一上下文保存區(qū)域(601)可以是物理存儲器(I 13)的一部分區(qū)域。CHJ調(diào)度器(121)在進(jìn)行CPU分派/搶占處理時(shí),使用第一上下文保存區(qū)域(601)<XPU調(diào)度器(121)使用第一上下文保存區(qū)域(601),進(jìn)行管理程序代理(102)的執(zhí)行上下文的保存和恢復(fù)。
[0074]圖7表示第二上下文保存區(qū)域(701)。
[0075]第二上下文保存區(qū)域(701)可以是物理存儲器(112)的一部分區(qū)域。CPU分派代理(126)在發(fā)布CPU分派請求之前,將管理程序(101)的執(zhí)行上下文保存為本數(shù)據(jù)結(jié)構(gòu)。另外,在搶占請求處理完成之后,從第二上下文保存區(qū)域(701)將管理程序(101)的執(zhí)行上下文恢復(fù)。
[0076]圖8表示代碼區(qū)域和堆棧區(qū)域的配置。
[0077]代碼區(qū)域和堆棧區(qū)域在物理CPU(Ill)的分派/搶占處理時(shí)使用。由CPU調(diào)度器(121)發(fā)布CPU的分派/搶占請求。將用于進(jìn)行該處理的代碼配置在CPU調(diào)度器代碼區(qū)域(I)(813)中。另外,把進(jìn)行該處理時(shí)使用的堆棧配置在CPU調(diào)度器堆棧區(qū)域(815)中。這些區(qū)域位于物理存儲器(113)上。
[0078]通過發(fā)布捕獲命令來發(fā)布物理CPU(Ill)的分派請求。將此時(shí)的跳躍目的地登錄在由管理程序(101)管理的中斷處理程序表(801)中,通過該表(801),實(shí)現(xiàn)向CPU分派代理
(126)的跳躍。把由CHJ分派代理(126)進(jìn)行的處理的代碼配置在CPU分派代理代碼區(qū)域(812)。另外,此時(shí),堆棧的切換也同時(shí)發(fā)生,將新的堆棧配置在CPU分派代理堆棧區(qū)域(811)。這些區(qū)域配置在物理存儲器(保護(hù)區(qū)域)(112)。
[0079 ] 通過向搶占對象的物理CPU (111)發(fā)出中斷通知,發(fā)布CPU搶占請求。在發(fā)生了針對搶占對象的物理CPU(Ill)的中斷之后,與上述情況同樣地,產(chǎn)生中斷處理程序表(801)的參照、跳躍、堆棧切換,CPU分派代理(126)被啟動。
[0080]當(dāng)CPU分派代理(126)完成了搶占處理時(shí),通過捕獲返回使控制返回到CPU調(diào)度器(121)。把之后執(zhí)行的處理的代碼配置在CPU調(diào)度器代碼區(qū)域(2)(814)。另外,此時(shí),使用堆棧也被變更為位于CPU調(diào)度器堆棧區(qū)域(815)中的堆棧。這些區(qū)域位于物理存儲器(113)上。
[0081]當(dāng)CPU分派代理(126)完成了分派處理時(shí),之后,被分派的物理CPU(Ill)由管理程序代理(102)和第一客戶機(jī)操作系統(tǒng)(103)占有執(zhí)行,因此控制不會返回至CPU調(diào)度器
(121)。通過上述搶占處理完成,控制返回到CPU調(diào)度器(121)。
[0082]圖9表示地址變換表(134)的結(jié)構(gòu)。
[0083]地址變換表(134)針對每個(gè)條目(記錄)具有:用于保存表示條目是有效還是無效的值(V) (901)的字段、表示頁的分配目的地的客戶機(jī)操作系統(tǒng)的編號的客戶機(jī)操作系統(tǒng)編號(902)的字段、表示從客戶機(jī)操作系統(tǒng)指定的頁編號的客戶機(jī)物理頁編號(903)的字段以及與客戶機(jī)物理頁編號相對應(yīng)的主機(jī)物理頁編號(904)的字段。
[0084]圖10表示CPU使用履歷管理表(1001)的結(jié)構(gòu)。
[0085]CPU使用履歷管理表(1001)是由CPU調(diào)度器(121)管理的表,例如配置在物理存儲器113中。CPU履歷管理表(1001)針對每個(gè)客戶機(jī)操作系統(tǒng)具有客戶機(jī)操作系統(tǒng)編號(1011)、最小CPU量(1012)、最大CPU量(1013)以及分配CPU累計(jì)(1014)的各字段??蛻魴C(jī)操作系統(tǒng)編號(1011)表示客戶機(jī)操作系統(tǒng)的編號,最小CPU量(1012)表示向該客戶機(jī)操作系統(tǒng)分配的CPU量的下限值,最大CPU量(I 013)表示向該客戶機(jī)操作系統(tǒng)分配的CPU量的上限值,分配CPU累計(jì)(1014)表示被分配的CPU量的累積值。CPU量例如可以是物理CPU的數(shù)量。最小CPU量(1012)和最大CPU量(1013)的組合表示向客戶機(jī)操作系統(tǒng)分配的CPU的量的范圍。
[0086]圖11表示存儲器使用履歷管理表(1101)的結(jié)構(gòu)。
[0087]存儲器使用履歷管理表(1101)是由存儲器調(diào)度器(122)管理的表,例如配置在物理存儲器113中。存儲器使用履歷管理表(1101)針對每個(gè)客戶機(jī)操作系統(tǒng),具有客戶機(jī)操作系統(tǒng)編號(1111)、最小存儲器量(1112)、最大存儲器量(1113)以及分配存儲器累計(jì)(1114)的各字段。客戶機(jī)操作系統(tǒng)編號(1111)表示客戶機(jī)操作系統(tǒng)的編號,最小存儲器量(1112)表示向該客戶機(jī)操作系統(tǒng)分配的存儲器量的下限值,最大存儲器量(1113)表示向該客戶機(jī)操作系統(tǒng)分配的存儲器量的上限值,分配存儲器累計(jì)(1114)表示被分配的存儲器量的累積值。存儲器量例如可以是頁數(shù)或頁的總?cè)萘?。最小存儲器?1112)和最大存儲器量(1113)的組合表示向客戶機(jī)操作系統(tǒng)分配的存儲器量的范圍。
[0088]CPU履歷管理表(1001)和存儲器履歷管理表(I 101)分別保存在非易失性區(qū)域
(114)。表(1001)/(1101)表示CPU/存儲器的能夠向各客戶機(jī)操作系統(tǒng)分配的最大/最小的資源量以及分配的資源的總量(累計(jì))XPU調(diào)度器(121)/存儲器調(diào)度器(122)在進(jìn)行資源調(diào)度時(shí),參考在表(1001)/(1101)中登錄的最大/最小的資源量,在要執(zhí)行超過/低于該最大/最小資源量的調(diào)度的情況下,中止該分配。另外,因?yàn)獒槍γ總€(gè)客戶機(jī)操作系統(tǒng)管理分配資源量(累計(jì)),因此能夠?qū)崿F(xiàn)與資源使用實(shí)績相對應(yīng)的計(jì)費(fèi)。
[0089 ]圖12表示CPU調(diào)度器(121)的定期啟動的動作流程。
[0090]在步驟1201中,CPU調(diào)度器(121)進(jìn)行CPU使用履歷管理表(1001)的更新處理。具體地說,例如,CPU調(diào)度器(121)參照CPU分配狀態(tài)表(132),對于各客戶機(jī)操作系統(tǒng),計(jì)算分配CHJ數(shù)。然后,對于各客戶機(jī)操作系統(tǒng),CPU調(diào)度器(121)對CPU使用履歷管理表(1001)的分配CPU累計(jì)(1014)相加計(jì)算出的分配CPU數(shù)。通過該處理,能夠管理CPU使用實(shí)績的累計(jì)值,能夠?qū)崿F(xiàn)與該累計(jì)值相對應(yīng)的計(jì)費(fèi)等。
[0091]以下,為了容易理解地進(jìn)行說明,將被分派或搶占資源的客戶機(jī)操作系統(tǒng)即對象客戶機(jī)操作系統(tǒng)設(shè)為“第一客戶機(jī)操作系統(tǒng)”。
[0092 ]在步驟120 2中,CPU調(diào)度器(121)決定針對第一客戶機(jī)操作系統(tǒng)的調(diào)度對象CPU (分派或搶占的物理CPU)。在進(jìn)行該決定時(shí),CPU調(diào)度器(121)從CPU使用履歷管理表(1001),對于第一客戶機(jī)操作系統(tǒng)(103),確定CPU量范圍(最小CPU量(1012)和最大CPU量(1013)的組合)。然后,當(dāng)對與第一客戶機(jī)操作系統(tǒng)(103)對應(yīng)的分配CPU累計(jì)(1014)相加或減去了調(diào)度對象CPU的量時(shí),在超過了確定的CPU量范圍的上限或低于確定的CPU量范圍的下限的情況下,CPU調(diào)度器(121)中止該分配。
[0093]在步驟1203中,CPU調(diào)度器(121)將在步驟1202中決定的調(diào)度狀態(tài)(第一客戶機(jī)操作系統(tǒng)(103)與調(diào)度后的物理CPU的組合)與CPU分配狀態(tài)表(132)進(jìn)行比較,判斷分配是否有變化(第一客戶機(jī)操作系統(tǒng)與物理(PU的組合中是否有變更)。
[0094]如果沒有變化,則CPU調(diào)度器(121)在步驟1204中結(jié)束處理。
[0095]如果有變化,則CPU調(diào)度器(121)在步驟1205中對CPU分配狀態(tài)表(132)進(jìn)行更新,具體地說,例如將與第一客戶機(jī)操作系統(tǒng)(103)對應(yīng)的分配目的地(402)更新為
[0096]并且,在步驟1206中,CPU調(diào)度器(I 21)進(jìn)行請求日志表(131)的更新。具體地說,例如CPU調(diào)度器(121)設(shè)定“CPU”來作為資源種類(301),設(shè)定關(guān)于第一客戶機(jī)操作系統(tǒng)(103)的調(diào)度對象CPU( 111)的編號來作為編號(302),設(shè)定在執(zhí)行調(diào)度前后應(yīng)占有該物理CPU
(111)的客戶機(jī)操作系統(tǒng)的編號來作為原狀態(tài)(303)和新狀態(tài)(304),并設(shè)定“處理中”來作為處理狀態(tài)(306)。
[0097 ] 在步驟120 7中,CPU調(diào)度器(I 21)判斷需要向CPU分派代理(126)發(fā)布的請求為分派還是搶占。如果請求為分派請求,則進(jìn)入到步驟1209,如果請求為搶占請求,則進(jìn)入到步驟
1208ο
[0098]在步驟1208中,CPU調(diào)度器(121)對調(diào)度對象CPU(Ill)進(jìn)行中斷通知。在調(diào)度對象CPU(Ill)上進(jìn)行動作的第一客戶機(jī)操作系統(tǒng)(103)和管理程序代理(102)中斷動作,之后,控制轉(zhuǎn)移到CHJ分派代理(130)。另外,還進(jìn)行堆棧變更,進(jìn)行將CPU分派代理堆棧區(qū)域(811)作為堆棧使用的動作。然后,進(jìn)入到步驟1212。
[0099]在步驟1209中,CPU調(diào)度器(“!丨進(jìn)行高速緩沖存儲器/!'!^^^!^^^。!!Lookaside Buffer:轉(zhuǎn)換后備緩沖器)的閃存處理,具體地說,發(fā)布特權(quán)命令,該特權(quán)命令用于指示高速緩沖存儲器/TLB的閃存(向預(yù)定的存儲目的地(例如非易失性區(qū)域114)吐出高速緩沖存儲器和TLB內(nèi)的數(shù)據(jù)的處理)。由當(dāng)前的物理CPU(Ill)(執(zhí)行管理程序101的物理CPUdll))接受該特權(quán)命令,該物理CPU( 111)進(jìn)行高速緩沖存儲器/TLB的閃存。在此,高速緩沖存儲器和TLB可以是物理存儲器113內(nèi)的區(qū)域。
[0100]在步驟1210中,CPU調(diào)度器(121)向第一上下文保存區(qū)域(601)保存執(zhí)行上下文。執(zhí)行上下文例如存儲當(dāng)前的物理CPU( 111)(執(zhí)行管理程序101的物理CPU(111))的寄存器
(115)的值。
[0101]在步驟1211中,CPU調(diào)度器(121)發(fā)布捕獲命令。由此,在正在執(zhí)行的物理CPU(Ill)上,⑶U分派代理(130)開始進(jìn)行動作。此時(shí),使用堆棧區(qū)域也被變更,之后的CPU分派代理
(130)的處理一邊使用CPU分派代理堆棧區(qū)域(811)的堆棧一邊進(jìn)行動作。
[0102]在步驟1212中,CPU調(diào)度器(121)完成處理。
[0103]圖13表示以來自CPU分派代理(126)的捕獲返回為契機(jī)而啟動的CPU調(diào)度器(121)的動作流程。
[0104]在步驟1301中,CPU調(diào)度器(1301)發(fā)布hit命令。通過該hit命令的發(fā)布,CPU調(diào)度器(1301)等待至通過后述的再啟動控制(123)發(fā)布中斷通知為止。在CPU分派代理(126)正在代行物理CPU(Ill)的分派/搶占處理的過程中,由于管理程序(101)的故障管理程序(101)有可能再啟動。在該情況下,在步驟1210中保存的上下文也變得無效。通過在該上下文恢復(fù)前進(jìn)行該等待,避免使用該無效上下文,從而能夠使管理程序(101)在再啟動后繼續(xù)動作。
[0105]在步驟1302中,CPU調(diào)度器(121)從管理程序上下文保存區(qū)域(301)恢復(fù)上下文。由此,將該區(qū)域(301)內(nèi)的上下文所具有的各值加載到物理CPU (111)(執(zhí)行管理程序1I的物理CPU(Ill))的寄存器(115)。在此之后,管理程序(101)和第二客戶機(jī)操作系統(tǒng)(104)專有該物理CPU,進(jìn)行動作。
[0106]在步驟1303中,CPU調(diào)度器(121)完成處理。
[0107]CPU分派代理(126)在通過定期地參照請求日志表(131)而檢測出分派請求的情況下(分派的情況下)或者接收到來自CPU調(diào)度器(129)的中斷通知的情況下(搶占的情況下),開始進(jìn)行動作。在檢測出CPU的分派請求的情況下,進(jìn)行圖14所示的動作流程,在檢測出CPU的搶占請求的情況下,進(jìn)行圖15所示的動作流程。
[0108]圖14表示檢測出CPU的分派請求的CPU分派代理(126)和客戶機(jī)CPU調(diào)度器(129)的動作流程。
[0109]在圖14中,在步驟1401中,CPU分派代理(126)從第二上下文保存區(qū)域(701)恢復(fù)上下文。具體地說,例如,CPU分派代理(126)將第二上下文保存區(qū)域(701)內(nèi)的上下文所具有的各值加載到物理CPU( 111)的寄存器(115)。該物理CPU( 111)是執(zhí)行管理程序代理(102)的物理CPU( 111),換言之是執(zhí)行第一客戶機(jī)操作系統(tǒng)103的物理CPU( 111)。
[0110]在步驟1402中,CPU分派代理(126)對第一客戶機(jī)操作系統(tǒng)(103)的客戶機(jī)CPU調(diào)度器(129)發(fā)送對CPU的結(jié)構(gòu)信息進(jìn)行更新的請求即CPU更新請求。
[0111]在步驟1403中,客戶機(jī)操作系統(tǒng)調(diào)度器(129)接收該CPU更新請求。此時(shí),將成為分派對象的物理CPU(111)的編號通知給客戶機(jī)操作系統(tǒng)調(diào)度器(129)。具體地說,例如,CPU更新請求可以包含成為分派對象的物理CPU( 111)的編號,可以將成為分派對象的物理CPU
(111)的編號與該請求一起通知給客戶機(jī)操作系統(tǒng)調(diào)度器(129)。
[0112]在步驟1404中,客戶機(jī)CPU調(diào)度器(129)對第一客戶機(jī)操作系統(tǒng)(103)的調(diào)度對象的CPU列表加上通知的物理CPU編號。之后,第一客戶機(jī)操作系統(tǒng)(103)能夠使用該物理CPU(111)0
[0113]在步驟1405中,客戶機(jī)CPU調(diào)度器(129)對CPU分派代理(126)發(fā)送CPU更新完成。
[0114]在步驟1406中,CPU分派代理(126)接收上述完成。
[0115]在步驟1407中,CPU分派代理(I26)對請求日志表(I31)進(jìn)行更新,具體地說,例如將與檢測到的CPU分派請求對應(yīng)的處理狀態(tài)(306)的值更新為“完成”。
[0116]然后,在步驟1408中,CPU分派代理(126)完成處理。
[0117]圖15表示檢測出CPU的搶占請求的CPU分派代理(126)和客戶機(jī)CPU調(diào)度器(129)的動作流程。
[0118]在步驟1501中,CPU分派代理(126)對第一客戶機(jī)操作系統(tǒng)(103)的客戶機(jī)CPU調(diào)度器(129)發(fā)送CPU更新請求。
[0119]在步驟1502中,客戶機(jī)CPU調(diào)度器(129)接收CPU更新請求。此時(shí),通過與圖14相同的方法,將成為搶占對象的物理CPU( 111)的編號通知給客戶機(jī)CPU調(diào)度器(129)。
[0120]在步驟1503中,客戶機(jī)CPU調(diào)度器(129)從第一客戶機(jī)操作系統(tǒng)(103)的調(diào)度對象的CPU列表中刪除通知的物理CPU編號。之后,第一客戶機(jī)操作系統(tǒng)(103)無法使用該物理CPU(Ill)0
[0121]在步驟1504中,客戶機(jī)CPU調(diào)度器(129)將CPU更新完成發(fā)送給CPU分派代理(126)。
[0122]在步驟1505中,CPU分派代理(126)接收上述完成。
[0123]在步驟1506中,CPU分派代理(I26)對請求日志表(I31)進(jìn)行更新,具體地說,例如將與檢測到的CPU搶占請求對應(yīng)的處理狀態(tài)(206)的值更新為“完成”。
[0124]在步驟1507中,CPU分派代理(126)向第二上下文保存區(qū)域(701)保存上下文。具體地說,例如CPU分派代理(126)將包含有物理CPU( 111)的寄存器(I 15)中記錄的值的上下文存儲到第二上下文保存區(qū)域(701)。該物理CPU(Ill)為執(zhí)行管理程序代理(102)的物理CPU
(111),換句話說,是執(zhí)行第一客戶機(jī)操作系統(tǒng)103的物理CPU( 111)。
[0125]在步驟1508中,CPU分派代理(126)發(fā)布捕獲返回命令(參照圖8)。通過該捕獲返回命令的發(fā)布,堆棧進(jìn)行切換,之后動作的CPU調(diào)度器(121)使用CPU調(diào)度器堆棧區(qū)域(815)來進(jìn)行動作。
[0126]在步驟1509中,動作完成。
[0127]圖16表示存儲器調(diào)度器(122)的動作流程。存儲器調(diào)度器進(jìn)行定期動作。
[0128]在步驟1601中,存儲器調(diào)度器(122)進(jìn)行存儲器使用履歷管理表(1101)的更新處理。具體地說,例如存儲器調(diào)度器(122)參照存儲器分配狀態(tài)表(133),對各客戶機(jī)操作系統(tǒng),計(jì)算分配存儲器量。然后,存儲器調(diào)度器(122)針對各客戶機(jī)操作系統(tǒng),對存儲器用履歷管理表(1101)的分配存儲器累計(jì)(1114)相加計(jì)算出的分配存儲器量。通過該處理,能夠管理存儲器使用實(shí)績的累計(jì)值,能夠?qū)崿F(xiàn)與該累計(jì)值相應(yīng)的計(jì)費(fèi)等。
[0129]在步驟1602中,存儲器調(diào)度器(122)決定針對第一客戶機(jī)操作系統(tǒng)的調(diào)度對象存儲區(qū)域(分派或搶占的存儲區(qū)域(頁))。在進(jìn)行該決定時(shí),存儲器調(diào)度器(122)從存儲器使用履歷管理表(1101)中,對于第一客戶機(jī)操作系統(tǒng)(103),確定存儲器量范圍(最小存儲器量(1111)和最大存儲器量(1112)的組合)。然后,當(dāng)對與第一客戶機(jī)操作系統(tǒng)(103)對應(yīng)的分配存儲器累計(jì)(1114)相加或減去調(diào)度對象存儲區(qū)域的量時(shí),在超過所確定的存儲器量范圍的上限或低于所確定的存儲器量范圍的下限的情況下,存儲器調(diào)度器(122)中止該分配。
[0130]在步驟1603中,存儲器調(diào)度器(122)檢查向第一客戶機(jī)操作系統(tǒng)的存儲器分配量是否有變更。
[0131]如果沒有變更,則在步驟1604中,存儲器調(diào)度器(122)完成處理。
[0132]如果有變更,則在步驟1605中,存儲器調(diào)度器(122)進(jìn)行存儲器分配狀態(tài)表(133)的更新。如果所發(fā)布的請求需要向第一客戶機(jī)操作系統(tǒng)(103)分派存儲器(分配存儲器量增大),則存儲器調(diào)度器(122)決定成為分配對象的存儲區(qū)域(物理頁)。該物理頁為沒有分配目的地而成為空閑狀態(tài)的物理頁或向第二客戶機(jī)操作系統(tǒng)(104)分配的物理頁中的能夠搶占的頁。然后,關(guān)于該物理頁,在存儲器分配狀態(tài)表(133)中,將客戶機(jī)物理頁編號(502)和分配目的地(503)分別更新為另一方面,在所發(fā)布的請求為向第一客戶機(jī)操作系統(tǒng)的搶占請求或地址變更請求的情況下,不進(jìn)行該步驟中的更新處理。
[0133]在步驟1606中,存儲器調(diào)度器(122)向請求日志表(131)進(jìn)行登錄處理。具體地說,例如,存儲器調(diào)度器(122)將與請求對應(yīng)的資源種類(301)和處理狀態(tài)(306)分別更新為“存儲器”和“處理中”。如果請求為向第一客戶機(jī)操作系統(tǒng)(103)的存儲器分派請求,則編號(302)為成為對象的物理頁編號,原狀態(tài)(303)和新狀態(tài)(304)分別為在分派處理前后被分配了該物理頁的客戶機(jī)操作系統(tǒng)的編號。如果請求為向第一客戶機(jī)操作系統(tǒng)(103)的存儲器搶占請求,則原狀態(tài)(303)和新狀態(tài)(304)分別為在分派處理前后被分配了該物理頁的客戶機(jī)操作系統(tǒng)的編號。
[0134]在步驟1607中,處理完成。
[0135]圖17表示存儲器分派代理(125)和客戶機(jī)存儲器調(diào)度器(128)的動作流程。
[0136]在步驟1701中,存儲器分派代理(125)從請求日志表(131)中提取資源種類(301)為“存儲器”且處理狀態(tài)(306)為“處理中”的請求。
[0137]然后,在步驟1702中,存儲器分派代理(125)進(jìn)行提取出的請求(列)的判斷。如果編號(302)、原狀態(tài)(303)和新狀態(tài)(304)全部進(jìn)行了設(shè)定,則判斷請求為存儲器分派請求,如果設(shè)定了原狀態(tài)(303)和新狀態(tài)(304)但沒有設(shè)定編號(302),則判斷請求為存儲器搶占請求,如果設(shè)定了編號(302)和新狀態(tài)(304)但沒有設(shè)定原狀態(tài)(303),則判斷請求為地址變更請求。如果請求為存儲器分派/搶占請求,則進(jìn)入到步驟1703,如果請求為地址變更請求,則進(jìn)入到步驟1708。
[0138]在步驟1703中,存儲器分派代理(125)對第一客戶機(jī)操作系統(tǒng)的客戶機(jī)存儲器調(diào)度器(128)發(fā)送對存儲器的結(jié)構(gòu)信息進(jìn)行更新的請求即存儲器更新請求。
[0139]在步驟1704中,客戶機(jī)存儲器調(diào)度器(128)接收上述請求。
[0140]在步驟1705中,客戶機(jī)存儲器調(diào)度器(128)對上述請求進(jìn)行響應(yīng),對第一客戶機(jī)操作系統(tǒng)所能夠使用的客戶機(jī)物理頁編號一覽即物理頁列表進(jìn)行頁編號的追加/刪除。此時(shí),客戶機(jī)存儲器調(diào)度器(128)決定要追加/刪除的客戶機(jī)物理頁編號。如果請求為存儲器分派請求,則客戶機(jī)存儲器調(diào)度器(128)決定向列表追加的客戶機(jī)物理頁編號。如果請求為存儲器搶占請求,則客戶機(jī)存儲器調(diào)度器(128)決定從列表中刪除的客戶機(jī)物理頁編號。
[0141]在步驟1706中,客戶機(jī)存儲器調(diào)度器(128)對存儲器分派代理(125)發(fā)送存儲器更新完成。此時(shí),把在步驟1705中決定的客戶機(jī)物理頁編號通知給存儲器分派代理(125)??蛻魴C(jī)物理頁編號可以包含在完成(應(yīng)答)中,也可以與完成(應(yīng)答)分開地通知。
[0142]在步驟1707中,存儲器分派代理(125)接收上述完成和客戶機(jī)物理頁編號。
[0143]在步驟1708中,存儲器分派代理(125)進(jìn)行地址變換表(134)的更新。在請求為存儲器分派請求的情況下,存儲器分派代理(125)將與該請求對應(yīng)的新狀態(tài)(304)所表示的客戶機(jī)操作系統(tǒng)編號、在步驟1707中接收到的客戶機(jī)物理頁編號以及與請求對應(yīng)的編號(302)所表示的主機(jī)物理頁編號(603)登錄為地址變換表(134)的客戶機(jī)操作系統(tǒng)編號(902)、客戶機(jī)物理頁編號(903)以及主機(jī)物理頁編號(904),并將登錄了這些內(nèi)容的條目中的V(901)的值更新為“I”(有效)。在請求為存儲器搶占請求的情況下,存儲器分派代理
(125)從地址變換表(134)中搜索在客戶機(jī)操作系統(tǒng)編號(902)和客戶機(jī)物理頁編號(903)中具有與請求對應(yīng)的新狀態(tài)(304)所表示的客戶機(jī)操作系統(tǒng)編號以及在步驟1707中接收到的客戶機(jī)物理頁編號的條目,將搜索到的條目的V(901)的值更新為“O”(無效)。并且,存儲器分派代理(125)將與搜索到的條目中的主機(jī)物理頁編號(904)對應(yīng)的客戶機(jī)物理頁編號(502)和分配目的地(503)(參照圖5)分別更新為在請求為地址變更請求的情況下,存儲器分派代理(125)將與請求對應(yīng)的新狀態(tài)(304)所表示的客戶機(jī)操作系統(tǒng)編號、與請求對應(yīng)的客戶機(jī)物理頁編號(305)所表示的客戶機(jī)物理頁編號、與請求對應(yīng)的編號(302)所表示的主機(jī)物理頁編號(603)登錄為地址變換表(134)的客戶機(jī)操作系統(tǒng)編號(902)、客戶機(jī)物理頁編號(903)以及主機(jī)物理頁編號(904),并將登錄了這些值的條目中的V(901)的值更新為“I”(有效)。
[0144]在步驟1709中,存儲器分派代理(125)進(jìn)行高速緩沖存儲器/TLB的清除處理,具體地說發(fā)布特權(quán)命令,該特權(quán)命令指示高速緩沖存儲器/TLB的清除(高速緩沖存儲器和TLB內(nèi)的數(shù)據(jù)的刪除)。物理CPU( 111)(執(zhí)行管理程序代理10的物理CPU( 111))接收該特權(quán)命令,該物理CPU(111)進(jìn)行高速緩沖存儲器/TLB的清除。在此高速緩沖存儲器和TLB可以是物理存儲器112(保護(hù)區(qū)域)內(nèi)的區(qū)域。
[0145]在步驟1710中,存儲器分派代理(125)進(jìn)行請求日志表(131)的更新。具體地說,例如,存儲器分派代理(125)將與請求對應(yīng)的處理狀態(tài)(306)的值更新為“完成”。另外,存儲器分派代理(125)將客戶機(jī)物理頁編號(305)的值更新為在步驟1706中接收到的值。并且,在請求為存儲器搶占請求的情況下,將在步驟1708中讀出的主機(jī)物理頁編號(904)的值登錄為對應(yīng)的編號(302)。
[0146]在步驟1711中,處理完成。
[0147]圖18表示特權(quán)命令執(zhí)行部(127)和無狀態(tài)CPU仿真器(124)的動作流程。
[0148]在步驟1801中,特權(quán)命令執(zhí)行部(127)執(zhí)行特權(quán)命令。結(jié)果,在物理CPU(111)上發(fā)生捕獲,控制轉(zhuǎn)移到無狀態(tài)CPU仿真器(124)。例如,某個(gè)供應(yīng)商的物理CPU具有存儲器仿真功能和CHJ仿真功能兩者,這些功能可以兩者均有效或兩者均無效,無法僅使單個(gè)功能有效。在本實(shí)施方式中,作為實(shí)現(xiàn)存儲器的虛擬化的手段,調(diào)出物理CPU所具有的存儲器仿真功能(使其有效),但是無法僅使存儲器仿真功能有效,因此CPU仿真功能也變得有效。這是發(fā)生特權(quán)命令(隨著執(zhí)行發(fā)生的捕獲)的一例。
[0149]在步驟1802中,無狀態(tài)CPU仿真器(124)讀出執(zhí)行中的命令。
[0150]在步驟1803中,無狀態(tài)CHJ仿真器(124)根據(jù)上述讀出的命令,進(jìn)行物理存儲器
(112)、物理CPU(Ill)(執(zhí)行第一客戶機(jī)操作系統(tǒng)103的物理CPU(Ill))的寄存器(115)的更新處理。
[0151]在步驟1804中,無狀態(tài)CPU仿真器(124)發(fā)布捕獲返回命令,將控制返回到特權(quán)命令執(zhí)彳丁部(127)。
[0152]在步驟1805中,特權(quán)命令執(zhí)行部(127)繼續(xù)進(jìn)行處理,在步驟1806中完成處理。
[0153]圖19表示再啟動控制(123)的定期動作的流程。
[0154]在步驟1901中,再啟動控制(123)從請求日志表(131)中搜索處理狀態(tài)(306)成為“完成,,的條目。
[0155]在步驟1902中,再啟動控制(123)判斷是否搜索到上述條目。如果有該條目,則進(jìn)入到步驟1903,如果沒有該條目,則進(jìn)入到步驟1906。
[0156]在步驟1903中,再啟動控制(I23)對CHJ分配狀態(tài)表(I32)和存儲器分配狀態(tài)表
(133)進(jìn)行更新。具體地說,例如,再啟動控制(123)在通過步驟1901搜索到的條目為與CPU分派/搶占請求對應(yīng)的條目的情況下,將與該條目的編號(302)對應(yīng)的分配目的地(402)的值更新為該條目的新狀態(tài)(304)所表示的值。另外,例如,再啟動控制(123)在通過步驟1901搜索到的條目為與存儲器分派請求對應(yīng)的條目的情況下,將與該條目的編號(302)對應(yīng)的條目中的分配目的地(502)的值更新為該條目的新狀態(tài)(304)所表示的值。并且,再啟動控制(123)將與該條目的編號(302)對應(yīng)的條目中的客戶機(jī)物理頁編號(502)的值更新為該條目的客戶機(jī)物理編號(305)所表示的值。另外,例如,再啟動控制(123)在通過步驟1901搜索到的條目為與存儲器搶占請求對應(yīng)的條目的情況下,將與該條目的編號(302)對應(yīng)的條目中的客戶機(jī)物理頁編號(502)和分配目的地(503)的值分別更新為“F”。另外,例如,再啟動控制(123)在通過步驟1901搜索到的條目為與地址更新請求對應(yīng)的條目情況下,可以不進(jìn)行任何動作。在上述更新處理之后,再啟動控制(123)刪除請求日志表(131)的該條目(搜索至_條目)。
[0157]在步驟1904中,再啟動控制(123)判斷在通過步驟1901搜索到的條目中是否包含CHJ搶占完成請求。如果包含,則進(jìn)入到步驟1905,如果沒有包含,則進(jìn)入到步驟1906。
[0158]在步驟1905中,再啟動控制(123)向成為對象的物理CPU(Ill)發(fā)送中斷。通過該中斷發(fā)送,能夠安全地重新開始在步驟1301中停止的CPU調(diào)度器(121)的動作。
[0159]在步驟1906中處理完成。
[0160]圖20表示隨著故障的管理程序再啟動后的再啟動控制(123)的動作流程。
[0161]在步驟2001中,如果在請求日志表(131)中存在處理狀態(tài)(306)為“處理中”的條目,則再啟動控制(123)等待至該處理狀態(tài)成為“完成”為止。
[0162]在步驟2002中,再啟動控制(123)判斷等待時(shí)間長度是否成為超時(shí)。如果為超時(shí),則進(jìn)入到步驟2003,如果未超時(shí),則進(jìn)入到步驟2004。
[0163]在步驟2003中,再啟動控制(123)進(jìn)行發(fā)生了超時(shí)的請求的取消處理。具體地說,例如在超時(shí)的請求為CPU分派/搶占請求的情況下,再啟動控制(123)確定與超時(shí)的請求對應(yīng)的對象條目中的編號(302 ),將與確定的編號(302)對應(yīng)的分配目的地(402)的值更新為上述對象條目中的原狀態(tài)(303)的值。另外,在超時(shí)的請求為存儲器分派請求的情況下,再啟動控制(123)確定與超時(shí)的請求對應(yīng)的對象條目中的編號(302),將與確定的編號(302)對應(yīng)的客戶機(jī)物理頁編號(502)和分配目的地(503)的值分別更新為“F” ο在超時(shí)的請求為存儲器搶占請求或地址變更請求的情況下,再啟動控制(123)不進(jìn)行任何動作。在上述取消處理已完成的情況下,再啟動控制(123)從請求日志表(131)中刪除與超時(shí)的請求對應(yīng)的條目。
[0164]在步驟2004中,再啟動控制(123)進(jìn)行CPU/存儲器分配狀態(tài)的更新處理。在該更新處理中,與步驟1903同樣地,按照請求日志表(131)的處理狀態(tài)(306)成為“完成”的條目的登錄內(nèi)容,對CPU分配狀態(tài)表(132)和存儲器分配狀態(tài)表(133)進(jìn)行更新。
[0165]在步驟2005中,根據(jù)上述處理的結(jié)果,再啟動控制(123)確定管理程序(101)、第二客戶機(jī)操作系統(tǒng)(104)能夠使用的CPU/存儲器,僅使用該能夠使用的CPU/存儲器(換言之,不使用管理程序代理(102)、第一客戶機(jī)操作系統(tǒng)(103)所使用的資源),執(zhí)行管理程序
(101)和第二客戶機(jī)操作系統(tǒng)(104)的初始化處理(啟動(boot)處理)。由此,能夠不對管理程序代理(102)、第一客戶機(jī)操作系統(tǒng)(103)帶來影響地,進(jìn)行管理程序(101)和第二客戶機(jī)操作系統(tǒng)(104)的再啟動。
[0166]在步驟2006中,再啟動控制(123)進(jìn)行第一上下文保存區(qū)域(601)的初始化處理。通過該初始化,保證安全地進(jìn)行步驟1302的上下文恢復(fù)處理。
[0167]以上,說明了一個(gè)實(shí)施方式,但是該實(shí)施方式僅是用于說明本發(fā)明的示例,并非是將本發(fā)明的范圍僅限定于該實(shí)施方式的宗旨。本發(fā)明也能夠通過其它各種方式來實(shí)施。
[0168]附圖標(biāo)記說明
[0169]101:管理程序;102:管理程序代理(102) ;3:第一客戶機(jī)操作系統(tǒng);104:第二客戶機(jī)操作系統(tǒng);111:物理CPU; 112:物理存儲器(保護(hù)區(qū)域);113:物理存儲器。
【主權(quán)項(xiàng)】
1.一種計(jì)算機(jī),其特征在于,具有多個(gè)資源,該多個(gè)資源包含一個(gè)以上的物理存儲器和多個(gè)物理CPU,其中,CPU為中央處理單元, 上述多個(gè)物理CPU執(zhí)行管理程序、簡易管理程序、第一客戶機(jī)操作系統(tǒng)以及第二客戶機(jī)操作系統(tǒng), 在上述多個(gè)資源中,上述管理程序使用的資源與上述簡易管理程序使用的資源不同,上述一個(gè)以上的物理存儲器具有上述管理程序不使用的第一物理存儲區(qū)域以及上述管理程序使用的第二物理存儲區(qū)域, 基于上述第一物理存儲區(qū)域,在上述簡易管理程序上執(zhí)行上述第一客戶機(jī)操作系統(tǒng), 基于上述第二物理存儲區(qū)域,在上述管理程序上執(zhí)行上述第二客戶機(jī)操作系統(tǒng), 上述管理程序具有將上述多個(gè)資源虛擬化為多個(gè)虛擬資源的功能即仿真功能以及對于上述第一客戶機(jī)操作系統(tǒng)和第二客戶機(jī)操作系統(tǒng)中的各個(gè)客戶機(jī)操作系統(tǒng)決定動態(tài)地分配或回收的資源的功能即資源調(diào)度功能, 上述簡易管理程序具有以下的調(diào)度代理功能:代替上述管理程序按照上述管理程序的上述資源調(diào)度功能進(jìn)行針對上述第一客戶機(jī)操作系統(tǒng)的資源分配或資源回收, 上述管理程序發(fā)布與資源的分配或回收有關(guān)的請求,上述簡易管理程序取得上述請求,按照上述請求來執(zhí)行處理。2.根據(jù)權(quán)利要求1所述的計(jì)算機(jī),其特征在于, 將上述請求寫入存儲區(qū)域中, 上述簡易管理程序從上述存儲區(qū)域取得上述請求。3.根據(jù)權(quán)利要求2所述的計(jì)算機(jī),其特征在于, 與執(zhí)行上述管理程序的第一物理CHJ不同的第二物理CRJ執(zhí)行上述簡易管理程序, 上述請求的發(fā)布是捕獲命令的發(fā)布或?qū)ι鲜龅诙锢鞢HJ的中斷的通知。4.根據(jù)權(quán)利要求2所述的計(jì)算機(jī),其特征在于, 上述存儲區(qū)域是存儲請求日志信息的非易失性區(qū)域, 將上述請求作為日志追加到上述請求日志信息中, 上述簡易管理程序基于按照上述請求執(zhí)行處理,對上述請求日志信息內(nèi)的上述日志進(jìn)行更新。5.根據(jù)權(quán)利要求1所述的計(jì)算機(jī),其特征在于, 在上述請求為CHJ分配請求的情況下,上述簡易管理程序在分配對象的物理CPU上開始動作,并向上述第一客戶機(jī)操作系統(tǒng)通知能夠使用上述分配對象的移動CPU, 在上述請求為CPU回收請求的情況下,上述簡易管理程序向上述第一客戶機(jī)操作系統(tǒng)通知已向上述第一客戶機(jī)操作系統(tǒng)分配的物理CPU中的回收對象的物理CPU,并停止上述回收對象的物理CPU上的動作。6.根據(jù)權(quán)利要求5所述的計(jì)算機(jī),其特征在于, 上述CRJ分配請求的發(fā)布是捕獲命令的發(fā)布, 上述CRJ回收請求的發(fā)布是針對不能使用的上述物理CRJ的中斷通知。7.根據(jù)權(quán)利要求1所述的計(jì)算機(jī),其特征在于, 在上述請求為存儲器分配請求的情況下,上述簡易管理程序?qū)Φ刂纷儞Q信息進(jìn)行更新,從而能夠從上述第一客戶機(jī)操作系統(tǒng)對上述一個(gè)以上的物理存儲器中的分配對象的存儲區(qū)域進(jìn)行存取,并向上述第一客戶機(jī)操作系統(tǒng)通知能夠使用上述分配對象的存儲區(qū)域,其中,上述地址變換信息表示從上述第一客戶機(jī)操作系統(tǒng)指定的邏輯地址即客戶機(jī)地址與上述一個(gè)以上的物理存儲器中的存儲區(qū)域的物理地址即主機(jī)地址的對應(yīng), 在上述請求為存儲器回收請求的情況下,上述簡易管理程序向上述第一客戶機(jī)操作系統(tǒng)通知已向上述第一客戶機(jī)操作系統(tǒng)分配的存儲區(qū)域中的不能使用的存儲區(qū)域,并且對上述地址變換表進(jìn)行更新從而無法從上述第一客戶機(jī)操作系統(tǒng)對上述不能使用的存儲區(qū)域進(jìn)行存取。8.根據(jù)權(quán)利要求4所述的計(jì)算機(jī),其特征在于, 上述請求日志信息內(nèi)的各日志包含按照與該日志對應(yīng)的請求的處理的進(jìn)度狀況, 上述非易失性區(qū)域還存儲表示上述多個(gè)資源的分配狀態(tài)的分配狀態(tài)信息, 上述管理程序在已再啟動的情況下,參照上述非易失性區(qū)域內(nèi)的上述請求日志信息和上述分配狀態(tài)信息,關(guān)于處理中的請求,等待至處理完成為止,根據(jù)上述請求日志信息來更新上述分配狀態(tài)信息,并根據(jù)更新后的分配狀態(tài)信息,使用上述多個(gè)資源中的未分配給上述第一客戶機(jī)操作系統(tǒng)的資源,執(zhí)行上述管理程序和上述第二客戶機(jī)操作系統(tǒng)的初始化。9.根據(jù)權(quán)利要求1所述的計(jì)算機(jī),其特征在于, 將上述第一客戶機(jī)操作系統(tǒng)、上述簡易管理程序以及地址變換信息配置在上述第一存儲區(qū)域中,其中,地址變換信息表示從上述第一客戶機(jī)操作系統(tǒng)指定的邏輯地址即客戶機(jī)地址與上述一個(gè)以上的物理存儲器中的存儲區(qū)域的物理地址即主機(jī)地址的對應(yīng), 上述第一存儲區(qū)域是無法從上述管理程序和上述第二客戶機(jī)操作系統(tǒng)寫入的區(qū)域。10.根據(jù)權(quán)利要求1所述的計(jì)算機(jī),其特征在于, 上述簡易管理程序在從上述第一客戶機(jī)操作系統(tǒng)發(fā)布了特權(quán)命令的情況下,代替上述管理程序根據(jù)上述特權(quán)命令更新寄存器的值。11.根據(jù)權(quán)利要求1所述的計(jì)算機(jī),其特征在于, 上述管理程序針對各客戶機(jī)操作系統(tǒng),確定能夠使用的資源量的范圍,當(dāng)按照發(fā)布對象的請求執(zhí)行了資源分配或資源回收時(shí),在已分配的資源量成為上述確定的范圍外的資源量的情況下,中止上述請求的發(fā)布。12.根據(jù)權(quán)利要求1所述的計(jì)算機(jī),其特征在于, 上述管理程序管理針對各客戶機(jī)操作系統(tǒng)分配的資源的量即分配資源量, 上述管理程序針對各客戶機(jī)操作系統(tǒng),隨著資源分配或資源回收,更新上述分配資源量。13.根據(jù)權(quán)利要求9所述的計(jì)算機(jī),其特征在于, 上述管理程序發(fā)布用于控制能夠從上述第二客戶機(jī)操作系統(tǒng)存取的存儲區(qū)域的地址設(shè)定請求, 上述簡易管理程序按照上述地址變更請求來更新上述地址變換信息。14.根據(jù)權(quán)利要求4所述的計(jì)算機(jī),其特征在于, 上述請求日志信息內(nèi)的各日志包含按照與該日志對應(yīng)的請求的處理的進(jìn)度狀況, 在上述請求為CPU回收請求的情況下,上述簡易管理程序向上述第一客戶機(jī)操作系統(tǒng)通知已向上述第一客戶機(jī)操作系統(tǒng)分配的物理CPU中的回收對象的物理CPU,并停止上述回收對象的物理CPU上的動作, 上述管理程序在上述簡易管理程序按照上述CHJ回收請求停止了動作之后,等待中斷通知,從上述請求日志信息確定與上述CPU回收請求對應(yīng)的處理的進(jìn)度信息,在上述確定的進(jìn)度狀況表示完成的情況下,對上述回收對象的物理CPU進(jìn)行中斷通知。15.—種資源調(diào)度方法,其是在具有多個(gè)資源的計(jì)算機(jī)中通過管理程序進(jìn)行資源調(diào)度的資源調(diào)度方法,上述多個(gè)資源包含一個(gè)以上的物理存儲器和多個(gè)物理CPU,其中,CPU為中央處理單元, 上述資源調(diào)度方法的特征在于, 在上述一個(gè)以上的物理存儲器中設(shè)置上述管理程序不使用的第一物理存儲區(qū)域以及上述管理程序使用的第二物理存儲區(qū)域,使用上述多個(gè)資源中的與上述管理程序使用的資源不同的資源來執(zhí)行簡易管理程序, 在上述簡易管理程序上,基于上述第一物理存儲區(qū)域,執(zhí)行第一客戶機(jī)操作系統(tǒng),在上述管理程序上,基于上述第二物理存儲區(qū)域,執(zhí)行第二客戶機(jī)操作系統(tǒng),上述管理程序具有將上述多個(gè)資源虛擬化為多個(gè)虛擬資源的功能即仿真功能以及對于上述第一客戶機(jī)操作系統(tǒng)和第二客戶機(jī)操作系統(tǒng)中的各個(gè)客戶機(jī)操作系統(tǒng)決定動態(tài)地分配或回收的資源的功能即資源調(diào)度功能,上述簡易管理程序具有以下的調(diào)度代理功能:代替上述管理程序按照上述管理程序的上述資源調(diào)度功能進(jìn)行針對上述第一客戶機(jī)操作系統(tǒng)的資源分配或資源回收, 通過上述管理程序發(fā)布與資源的分配或回收有關(guān)的請求, 通過上述簡易管理程序取得上述請求,按照上述請求來執(zhí)行處理。
【文檔編號】G06F11/16GK105900066SQ201480072730
【公開日】2016年8月24日
【申請日】2014年2月17日
【發(fā)明人】竹內(nèi)理, 田島幸惠
【申請人】株式會社日立制作所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1