專利名稱:分區(qū)管理裝置、分區(qū)管理方法以及程序的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及管理存儲(chǔ)裝置的分區(qū)的分區(qū)管理裝置、分區(qū)管理方法以及程序。
背景技術(shù):
一直以來,作為用于管理存儲(chǔ)在硬盤等存儲(chǔ)裝置中的數(shù)據(jù)的方式,例如采用FAT(File Allocation Tables :文件分配表)或 NTFS (NT File System :NT 文件系統(tǒng))等文件系統(tǒng)。
圖IA是說明目前采用的硬盤等外部存儲(chǔ)裝置中的分區(qū)分配的圖。如圖IA所示,例如外部存儲(chǔ)裝置306的存儲(chǔ)區(qū)域通過未圖示的盤分配程序等實(shí)用程序分配4個(gè)分區(qū)I 4 (191、192、193、194),并分別分配到某文件系統(tǒng)中。在分區(qū)的開頭配置有主引導(dǎo)記錄195,該主引導(dǎo)記錄195具備存儲(chǔ)有分區(qū)的管理數(shù)據(jù)的分區(qū)管理表195a。如在圖IA中例不關(guān)于分區(qū)編號(hào)3的分區(qū)信息196那樣,分區(qū)管理表195a包含分區(qū)編號(hào)196a、開始位置196b、分區(qū)尺寸196c的記錄。在分區(qū)編號(hào)196a中存儲(chǔ)有識(shí)別分區(qū)的分區(qū)編號(hào),圖示的例子是3。在開始位置中存儲(chǔ)有分區(qū)的開頭地址信息,圖示的例子省略了其內(nèi)容。在分區(qū)尺寸196c中存儲(chǔ)有分區(qū)的分配單位區(qū)域的個(gè)數(shù),圖示的例子是52。針對(duì)各個(gè)分區(qū)中的文件的盤的分配管理依賴于分配各個(gè)分區(qū)的文件系統(tǒng)特有的分配方法,因而非常煩雜。例如,根據(jù)FAT按照每個(gè)文件保持表示已進(jìn)行分配的塊的鏈接列表。另外,根據(jù)NTFS,按照每個(gè)文件保持關(guān)于已進(jìn)行分配的塊的開始位置和連續(xù)塊數(shù)的信肩、O為了解決這些文件系統(tǒng)中的分配管理的問題,例如提出了與在下述專利文獻(xiàn)I公開的主體系統(tǒng)相關(guān)的技術(shù)。根據(jù)主體系統(tǒng),按照由2k構(gòu)成的尺寸來分割區(qū)域進(jìn)行分配管理。沒有使用假想存儲(chǔ)方式的存儲(chǔ)器管理系統(tǒng)中的存儲(chǔ)區(qū)域分配,采用基本的主體系統(tǒng)。圖IB是說明主體系統(tǒng)的分配原理的圖。圖IB所示的是尺寸為23=8的分配區(qū)域490和與其對(duì)應(yīng)的樹結(jié)構(gòu)體580、以及表示與樹結(jié)構(gòu)體580的節(jié)點(diǎn)對(duì)應(yīng)的區(qū)域是否是使用中的比特圖400。分配區(qū)域490例如是圖IA例示的分區(qū)I 4等。樹結(jié)構(gòu)體580是使將分配區(qū)域490按照二分之一尺寸依次分割到分配單位尺寸而得到的區(qū)域關(guān)系以階層方式模型化而得到的。當(dāng)設(shè)分配單位尺寸的區(qū)域的階層為層級(jí)I時(shí),在圖示的例子中,根節(jié)點(diǎn)的層級(jí)為4。樹結(jié)構(gòu)體580的根節(jié)點(diǎn)480如虛線箭頭所示與分割前的分配區(qū)域490整個(gè)的區(qū)域(層級(jí)4的區(qū)域)對(duì)應(yīng),記載在節(jié)點(diǎn)內(nèi)的“8”與對(duì)應(yīng)的分配區(qū)域490的尺寸相當(dāng)。另外,括號(hào)內(nèi)的數(shù)字是識(shí)別同一層級(jí)內(nèi)的區(qū)域的層級(jí)內(nèi)編號(hào)。利用鏈接540與根節(jié)點(diǎn)480連接的節(jié)點(diǎn)440和利用鏈接541與根節(jié)點(diǎn)480連接的節(jié)點(diǎn)441與對(duì)分配區(qū)域490進(jìn)行二分割后的區(qū)域(層級(jí)3的區(qū)域)對(duì)應(yīng)。各個(gè)區(qū)域的尺寸如圖所示為4。在節(jié)點(diǎn)440的下位存在利用鏈接520連接的尺寸2的節(jié)點(diǎn)420和利用鏈接521連接的尺寸2的節(jié)點(diǎn)421。同樣,在節(jié)點(diǎn)441的下位存在利用鏈接522連接的尺寸2的節(jié)點(diǎn)422和利用鏈接523連接的尺寸2的節(jié)點(diǎn)423。這4個(gè)節(jié)點(diǎn)與層級(jí)2的區(qū)域?qū)?yīng)。在節(jié)點(diǎn)420的下位存在利用鏈接510連接的尺寸I的節(jié)點(diǎn)410和利用鏈接511連接的尺寸I的節(jié)點(diǎn)411。同樣,在節(jié)點(diǎn)421的下位存在利用鏈接512連接的尺寸I的節(jié)點(diǎn)412和利用鏈接513連接的尺寸I的節(jié)點(diǎn)413,在節(jié)點(diǎn)422的下位存在利用鏈接514連接的尺寸I的節(jié)點(diǎn)414和利用鏈接515連接的尺寸I的節(jié)點(diǎn)415,在節(jié)點(diǎn)423的下位存在利用鏈接516連接的尺寸I的節(jié)點(diǎn)416和利用鏈接517連接的尺寸I的節(jié)點(diǎn)417。這8個(gè)節(jié)點(diǎn)與層級(jí)I的區(qū)域?qū)?yīng)。根節(jié)點(diǎn)480以外的節(jié)點(diǎn)與對(duì)父節(jié)點(diǎn)的對(duì)應(yīng)區(qū)域進(jìn)行二分割后的區(qū)域之一對(duì)應(yīng)。因此,各個(gè)層級(jí)的區(qū)域尺寸的總和與分配區(qū)域490的尺寸一致。圖IB所示的比特圖400如虛線箭頭所示,具有與樹結(jié)構(gòu)體580的各個(gè)節(jié)點(diǎn)對(duì)應(yīng)的比特值。比特圖400的標(biāo)號(hào)408所示的層級(jí)4的層級(jí)內(nèi)編號(hào)409所示的比特位置的比特值表示層級(jí)4的區(qū)域是否是使用中,標(biāo)號(hào)404所示的層級(jí)3的層級(jí)內(nèi)編號(hào)O、I的比特值表示、相應(yīng)的區(qū)域是否是使用中。同樣,標(biāo)號(hào)402所示的層級(jí)2的層級(jí)內(nèi)編號(hào)0 3表示層級(jí)2的各個(gè)區(qū)域是否是使用中,標(biāo)號(hào)401所示的層級(jí)I的層級(jí)內(nèi)編號(hào)0 7表示層級(jí)I的各個(gè)區(qū)域是否是使用中。在圖IB所示的例子中,表示在層級(jí)4的層級(jí)內(nèi)編號(hào)O、層級(jí)3的層級(jí)內(nèi)編號(hào)O、層級(jí)2的層級(jí)內(nèi)編號(hào)O、層級(jí)I的層級(jí)內(nèi)編號(hào)0中比特“I”成立,不能重新使用與該比特位置對(duì)應(yīng)的整個(gè)區(qū)域。即,如在層級(jí)I的層級(jí)內(nèi)編號(hào)0中表示其狀態(tài)那樣,與節(jié)點(diǎn)410對(duì)應(yīng)的尺寸I的區(qū)域是使用中,因而表示不能直接使用包含該區(qū)域的更大尺寸的區(qū)域。根據(jù)上述主體系統(tǒng),在分配某大小的文件和存儲(chǔ)區(qū)域時(shí),從與其大小相等或者超過其大小的由2k構(gòu)成的尺寸的區(qū)域中搜索空區(qū)域進(jìn)行分配、釋放時(shí),返回到該尺寸的空區(qū)域組即可,因而文件和存儲(chǔ)區(qū)域的分配、釋放以及區(qū)域的管理非常容易?,F(xiàn)有技術(shù)文獻(xiàn)專利文獻(xiàn)專利文獻(xiàn)I :日本特開平7-28693號(hào)公報(bào)
發(fā)明內(nèi)容
發(fā)明要解決的問題但是,根據(jù)上述主體系統(tǒng),以2的冪乘單位來分配區(qū)域,因而例如在分配2. IGB的文件時(shí),需要4GB的區(qū)域,無論文件分配后的塊是否產(chǎn)生沒有寫入數(shù)據(jù)的區(qū)域,都無法在現(xiàn)有的文件系統(tǒng)中對(duì)該區(qū)域進(jìn)一步追加文件,從而不能有效地使用區(qū)域。另外,即使例如整個(gè)存儲(chǔ)裝置的存儲(chǔ)容量是127GB,也必須將對(duì)請(qǐng)求存儲(chǔ)區(qū)域的請(qǐng)求方分配的物理的或者邏輯的區(qū)域即分區(qū)作為最大64GB的分區(qū)進(jìn)行管理。S卩,根據(jù)主體系統(tǒng),以2的冪乘單位來分配區(qū)域,因而文件和存儲(chǔ)區(qū)域的分配、釋放以及區(qū)域的管理非常容易,但是,沒有進(jìn)行從2的冪乘尺寸的區(qū)域中取得不是2的冪乘尺寸的區(qū)域時(shí)的剩余區(qū)域的管理以及從不是2的冪乘尺寸的區(qū)域中取得2的冪乘尺寸的區(qū)域時(shí)的剩余區(qū)域的管理,因而具有不能有效地靈活應(yīng)用區(qū)域這樣的課題。因此,本發(fā)明的目的是提供如下的技術(shù)在從2的冪乘尺寸的區(qū)域中取得不是2的冪乘尺寸的區(qū)域時(shí)和從不是2的冪乘尺寸的區(qū)域中取得2的冪乘尺寸的區(qū)域時(shí),能夠管理剩余區(qū)域,另外,當(dāng)區(qū)域管理單元向區(qū)域分配文件和存儲(chǔ)區(qū)域時(shí),可通過高效的方法來有效地靈活應(yīng)用區(qū)域。用于解決問題的手段根據(jù)本發(fā)明的一個(gè)方式,取得分區(qū)的尺寸,在利用互不相同的2的冪乘的和與分區(qū)的分配單位尺寸之積表示分區(qū)的尺寸時(shí),將構(gòu)成該和的各個(gè)2的冪乘尺寸的區(qū)域作為主區(qū)域,按照該尺寸的順序連續(xù)分配到分區(qū),由此劃分分區(qū),生成多層劃分分配表,該多層劃分分配表與將主區(qū)域依次分割成二分之一后的尺寸的各個(gè)尺寸區(qū)域和主區(qū)域?qū)?yīng)地,存儲(chǔ)表示各個(gè)尺寸區(qū)域和主區(qū)域各自的文件分配狀態(tài)的分配信息,根據(jù)多層劃分分配表中存儲(chǔ)的分配信息,管理向區(qū)域分配文件。然后,為了實(shí)現(xiàn)基于上述分配和多層劃分分配表的文件分配管理,假想地取得包含已取得上述尺寸的實(shí)體分區(qū)的具有最小的2的冪乘與分區(qū)的分配單位尺寸之積的尺寸的假想分區(qū),將該假想分區(qū)如主體系統(tǒng)那樣依次劃分成二分之一的尺寸,生成存儲(chǔ)分配信息的多層劃分分配表,該分配信息表示與實(shí)體分區(qū)對(duì)應(yīng)的各個(gè)尺寸區(qū)域和主區(qū)域各自的文 件分配狀態(tài)。然后,當(dāng)將規(guī)定區(qū)域尺寸的2的冪乘的指數(shù)設(shè)為該區(qū)域的劃分層級(jí)時(shí),多層劃分分配表按照區(qū)域的劃分層級(jí)順序,在同一劃分層級(jí)中按照區(qū)域在分區(qū)內(nèi)的配置順序存儲(chǔ)區(qū)域的分配信息,按照分配信息的存儲(chǔ)順序分配用于識(shí)別分配信息相應(yīng)的區(qū)域的識(shí)別編號(hào)即劃分編號(hào),采用該劃分編號(hào)管理區(qū)域的分配。并且,多層劃分分配表不具有由于從假想分區(qū)開始劃分而產(chǎn)生的與實(shí)際作為分區(qū)不存在的區(qū)域?qū)?yīng)的區(qū)域的分配信息。另外,根據(jù)本發(fā)明的其它方式,在被請(qǐng)求分配的文件的尺寸是劃分層級(jí)不同的區(qū)域的尺寸之和時(shí),搜索比該劃分層級(jí)的最大層級(jí)大I的劃分層級(jí)的空區(qū)域即尺寸比分配請(qǐng)求尺寸大的一次分配區(qū)域,將一次分配區(qū)域分割成二次分配區(qū)域和作為剩余區(qū)域的相鄰多層區(qū)域,將與二次分配區(qū)域的各個(gè)區(qū)域?qū)?yīng)的多層劃分分配表的分配狀態(tài)設(shè)定為使用中,將與構(gòu)成相鄰多層區(qū)域的區(qū)域?qū)?yīng)的多層劃分分配表的分配狀態(tài)設(shè)定為空候選狀態(tài),其中,所述二次分配區(qū)域是按照劃分層級(jí)的順序連續(xù)分配劃分層級(jí)不同的區(qū)域而得到的區(qū)域,所述相鄰多層區(qū)域是按照與分配二次分配區(qū)域的劃分層級(jí)不同的區(qū)域的劃分層級(jí)的順序相反的順序,連續(xù)分配劃分層級(jí)不同的區(qū)域而得到的區(qū)域。發(fā)明效果根據(jù)本發(fā)明,以2的冪乘尺寸的組合來管理分區(qū),因而能夠高效地、無浪費(fèi)地且有效地管理任意尺寸的分區(qū),利用已劃分分區(qū)的各個(gè)尺寸的區(qū)域進(jìn)行分配管理,因此,對(duì)連續(xù)的區(qū)域無浪費(fèi)地進(jìn)行文件的分配,從而能夠?qū)崿F(xiàn)區(qū)域的有效靈活應(yīng)用。
圖IA是說明外部存儲(chǔ)裝置中的分區(qū)分配的圖。圖IB是說明主體系統(tǒng)的分配原理的圖。圖2A是說明本發(fā)明一個(gè)實(shí)施方式中的分區(qū)管理的概念的圖。圖2B是說明本發(fā)明一個(gè)實(shí)施方式中的分配系統(tǒng)的軟件和硬件環(huán)境例的圖。圖2C是說明本發(fā)明一個(gè)實(shí)施方式中的硬件結(jié)構(gòu)例的圖。
圖3是說明本發(fā)明一個(gè)實(shí)施方式中的與分區(qū)尺寸對(duì)應(yīng)的分區(qū)的初始化狀態(tài)例的圖。圖4A是說明本發(fā)明一個(gè)實(shí)施方式中的對(duì)分區(qū)初始化的前級(jí)處理流程例的圖。圖4B是說明本發(fā)明一個(gè)實(shí)施方式中的對(duì)分區(qū)初始化的后級(jí)處理流程例的圖。圖4C是說明本發(fā)明一個(gè)實(shí)施方式中的按照劃分層級(jí)對(duì)多層劃分分配表初始化的處理流程例的圖。圖5是說明進(jìn)行區(qū)域分配的整個(gè)處理的概括處理流程的圖。圖6是說明搜索分配請(qǐng)求劃分層級(jí)的空區(qū)域并取得空區(qū)域的劃分編號(hào)的處理流程例的圖。
圖7A是說明搜索包含分配請(qǐng)求劃分層級(jí)的尺寸的空區(qū)域并取得空區(qū)域的劃分編號(hào)的處理流程例的圖。圖7B是利用具體例子來說明分配請(qǐng)求劃分層級(jí)具有空區(qū)域時(shí)的區(qū)域搜索的圖。圖7C是利用具體例子來說明分配請(qǐng)求劃分層級(jí)沒有空區(qū)域時(shí)的區(qū)域搜索的圖。圖8A是說明對(duì)虛擬分配區(qū)域進(jìn)行多層劃分而得到一次分配區(qū)域的處理流程例的圖。圖SB是利用具體例子來說明對(duì)虛擬分配區(qū)域進(jìn)行多層劃分而得到一次分配區(qū)域的處理的圖。圖9是說明搜索分配請(qǐng)求劃分層級(jí)的空候選區(qū)域并取得空候選區(qū)域的劃分編號(hào)的處理流程例的圖。圖IOA是說明搜索包含分配請(qǐng)求劃分層級(jí)的尺寸的空候選區(qū)域并得到空候選區(qū)域的劃分編號(hào)的處理流程例的圖。圖IOB是說明將分配狀態(tài)是空候選的虛擬分配區(qū)域劃分成多層區(qū)域并得到一次分配區(qū)域的處理流程例的圖。圖IlA是說明對(duì)一次分配區(qū)域進(jìn)行多層劃分而得到分配請(qǐng)求劃分的二次分配區(qū)域的前級(jí)處理流程例的圖。圖IlB是說明對(duì)一次分配區(qū)域進(jìn)行多層劃分而得到分配請(qǐng)求劃分的二次分配區(qū)域的后級(jí)處理流程例的圖。圖IlC是利用具體例子來說明對(duì)一次分配區(qū)域進(jìn)行多層劃分而得到分配請(qǐng)求劃分的二次分配區(qū)域的處理的圖。圖12是說明釋放分配區(qū)域并嘗試連接空區(qū)域的整個(gè)處理的概括處理流程例的圖。圖13是說明利用劃分編號(hào)來檢索多層劃分管理表并求出與劃分編號(hào)對(duì)應(yīng)的劃分層級(jí)的處理流程例的圖。圖14A是說明嘗試釋放包含在一次分配區(qū)域內(nèi)的區(qū)域和連接空區(qū)域的處理流程例的圖。圖14B是利用具體例子來說明嘗試釋放包含在一次分配區(qū)域內(nèi)的區(qū)域和連接空區(qū)域的處理的圖。圖15是說明求出分配區(qū)域內(nèi)的分割分配狀況并壓入分割分配狀況堆棧的處理流程例的圖。
圖16是說明嘗試釋放劃分編號(hào)指向的劃分對(duì)的處理流程例的圖。圖17A是說明嘗試連接一次分配區(qū)域與相鄰的空區(qū)域并使上位區(qū)域的分配狀態(tài)是空的處理流程例的圖。
圖17B是利用具體例子來說明嘗試連接一次分配區(qū)域與相鄰的空區(qū)域并使上位區(qū)域的分配狀態(tài)是空的處理的圖。圖17C是說明嘗試釋放劃分編號(hào)指向的劃分對(duì)的處理流程例的圖。圖18A是說明本發(fā)明一個(gè)實(shí)施方式中的分區(qū)管理裝置的功能塊結(jié)構(gòu)例的圖。圖18B是說明本發(fā)明一個(gè)實(shí)施方式中的區(qū)域分配單元的功能塊結(jié)構(gòu)例的圖。圖18C是說明本發(fā)明一個(gè)實(shí)施方式中的區(qū)域釋放單元的功能塊結(jié)構(gòu)例的圖。
具體實(shí)施例方式以下,參照附圖來詳細(xì)說明本發(fā)明的優(yōu)選實(shí)施方式。圖2A是說明本發(fā)明一個(gè)實(shí)施方式中的分區(qū)管理的概念的圖。參照?qǐng)D2A來說明本發(fā)明一個(gè)實(shí)施方式中的分區(qū)管理的概念,并且定義與本發(fā)明的分區(qū)管理相關(guān)的一些用語。首先,預(yù)先進(jìn)行分區(qū)的定義。在本發(fā)明中,如參照?qǐng)DIA說明的那樣,“分區(qū)”是指預(yù)先分配的區(qū)域,是最初分配的區(qū)域。在本發(fā)明中,將分區(qū)已經(jīng)取得作為前提。分區(qū)在本發(fā)明中是對(duì)請(qǐng)求存儲(chǔ)區(qū)域的請(qǐng)求方分配的物理的或者邏輯的區(qū)域,請(qǐng)求方和執(zhí)行分配的主體沒有是文件系統(tǒng)還是盤分配程序這樣的限制。另外,本發(fā)明中的分區(qū)不限于外部存儲(chǔ)裝置的存儲(chǔ)區(qū)域,例如可以是后面參照?qǐng)D2C說明的數(shù)據(jù)存儲(chǔ)裝置308中包含的各種存儲(chǔ)裝置的預(yù)先分配的區(qū)域。此外,預(yù)先進(jìn)行本發(fā)明所述的存儲(chǔ)區(qū)域的定義。存儲(chǔ)區(qū)域是由請(qǐng)求分配分區(qū)區(qū)域的請(qǐng)求方進(jìn)行請(qǐng)求,并利用分區(qū)管理裝置對(duì)請(qǐng)求方分配的分區(qū)內(nèi)的區(qū)域。如果請(qǐng)求方是文件系統(tǒng),則利用文件系統(tǒng)將分配給文件系統(tǒng)的存儲(chǔ)區(qū)域作為文件的存儲(chǔ)區(qū)域使用。在以下的說明中,作為請(qǐng)求方舉例說明文件系統(tǒng),因而采用分配文件這樣的表達(dá)或分配文件和存儲(chǔ)區(qū)域這樣的表達(dá)。“區(qū)域”是指分配后的區(qū)域。分區(qū)是預(yù)先分配的區(qū)域,因而是區(qū)域之一,是區(qū)域中的特定區(qū)域。將區(qū)域分割成具有2的冪乘與分配單位區(qū)域之積的尺寸的多個(gè)區(qū)域稱作“多層劃分”。另外,將多層劃分后的區(qū)域稱作“多層區(qū)域”。此外,在以下的說明中省略了關(guān)于分配單位區(qū)域的表述,關(guān)于區(qū)域的尺寸有時(shí)僅使用2的n乘的尺寸等表述。另外,為了使表述簡化,例如將在圖IA例示的分區(qū)編號(hào)196a中存儲(chǔ)的值3稱作分區(qū)編號(hào)196a那樣,有時(shí)用該存儲(chǔ)區(qū)域的名字來稱呼存儲(chǔ)區(qū)域中存儲(chǔ)的或者設(shè)定的值。以下,對(duì)比關(guān)于區(qū)域的用語和關(guān)于與其對(duì)應(yīng)的分區(qū)的用語進(jìn)行定義?!皠澐帧笔侵阜峙鋮^(qū)域或者分割區(qū)域后進(jìn)行分配,有時(shí)也稱作“分配”。區(qū)域是區(qū)域或分區(qū)。特別地,將如下的情況稱作“主劃分”,該情況是當(dāng)利用相互不同的2的冪乘和來表示分區(qū)的尺寸時(shí),按照該尺寸的順序?qū)?gòu)成該和的各個(gè)2的冪乘尺寸的區(qū)域連續(xù)分配到分區(qū),由此劃分分區(qū)。另外,將通過主劃分分配的區(qū)域稱作“主區(qū)域”。主劃分在本發(fā)明中是針對(duì)分區(qū)的初始分配。在以下的說明中,假定主區(qū)域是從區(qū)域的開頭按照尺寸從大到小的順序依次進(jìn)行分配的,但是,根據(jù)后面的說明,本領(lǐng)域的普通人員可知,即使與其相反按照尺寸從小到大的順序依次進(jìn)行分配也能夠?qū)嵤┍景l(fā)明。在圖2A的例示中,分區(qū)690整體的尺寸是11,劃分成尺寸是23=8的主區(qū)域698、尺寸是21=2的主區(qū)域692以及尺寸是20=1的主區(qū)域691。換言之,將主區(qū)域698、692、691初始分配到分區(qū)690。將基于劃分或主劃分的區(qū)域或主區(qū)域的分配尺寸即2的冪乘的指數(shù)稱作“劃分層級(jí)”。圖2A所示的主區(qū)域698、692、691各自的劃分層級(jí)是3、1、0。當(dāng)利用上述定義的用語進(jìn)行說明時(shí),作為本發(fā)明原理的分區(qū)管理方法將分區(qū)連續(xù)地劃分成分配有互不相同的2的冪乘個(gè)分區(qū)的分配單位區(qū)域的區(qū)域,將區(qū)域作為連續(xù)分配的區(qū)域進(jìn)行管理。 在本發(fā)明中,假想地取得包含分區(qū)的最小的2的冪乘尺寸的假想分區(qū)。有時(shí)將該假想分區(qū)的假想取得稱作假想分配。如圖2A的虛線箭頭7160a所示,假想分配包含尺寸為11的分區(qū)690的尺寸為16的假想分區(qū)690a。為了表示假想分區(qū)690a的分配是假想的,利用虛線矩形框來表現(xiàn)假想分區(qū)690a。并且,如圖所示,在假想分區(qū)690a中假想地初始分配有尺寸為16的主區(qū)域6916。主區(qū)域6916是假想分配的,因而節(jié)點(diǎn)6160與假想分區(qū)690a同樣用虛線矩形框來表現(xiàn)。另外,在圖2A中記述有將與假想分配上述主區(qū)域6916的主劃分對(duì)應(yīng)的節(jié)點(diǎn)6160作為根節(jié)點(diǎn)的樹結(jié)構(gòu)體790和將與樹結(jié)構(gòu)體790的節(jié)點(diǎn)對(duì)應(yīng)的分配狀態(tài)縮減成比特圖的表示區(qū)域的分配狀態(tài)的分配比特圖600。根節(jié)點(diǎn)6160如虛線箭頭7160所示,與分配劃分層級(jí)4的整個(gè)主區(qū)域6916的主劃分(以下有時(shí)稱作主劃分7160)對(duì)應(yīng)。樹的結(jié)構(gòu)與圖IB所述的樹結(jié)構(gòu)體580的結(jié)構(gòu)的相同點(diǎn)是都為二等分樹。根節(jié)點(diǎn)6160內(nèi)記載的“16”與對(duì)應(yīng)的主區(qū)域6916的尺寸相當(dāng)。另外,括號(hào)內(nèi)的數(shù)字是識(shí)別按照各劃分層級(jí)的每個(gè)區(qū)域?qū)傧敕謪^(qū)690a進(jìn)行多層劃分的各個(gè)劃分(有時(shí)稱作劃分單元)的劃分編號(hào)。與最大尺寸的主區(qū)域6916對(duì)應(yīng)的主劃分7160的劃分編號(hào)是I。此外,以下,劃分編號(hào)有時(shí)稱作利用以該劃分編號(hào)識(shí)別的劃分進(jìn)行劃分的區(qū)域的劃分編號(hào)。即,改變成主劃分7160的劃分編號(hào)這樣的表現(xiàn),有時(shí)稱作主區(qū)域6916的劃分編號(hào)。另外,有時(shí)將利用某劃分編號(hào)的劃分單元進(jìn)行劃分的區(qū)域稱作該劃分編號(hào)的區(qū)域。利用鏈接780與根節(jié)點(diǎn)6160連接的節(jié)點(diǎn)680和利用鏈接781與根節(jié)點(diǎn)6160連接的節(jié)點(diǎn)681對(duì)應(yīng)于對(duì)主區(qū)域6916進(jìn)行二分割后分配劃分層級(jí)3且尺寸為8的區(qū)域的劃分。各個(gè)劃分編號(hào)是與上一位劃分層級(jí)4的節(jié)點(diǎn)對(duì)應(yīng)的劃分編號(hào)的末尾I后的2和3。在節(jié)點(diǎn)680的下位存在利用鏈接740連接的尺寸4的節(jié)點(diǎn)640和利用鏈接741連接的尺寸4的節(jié)點(diǎn)641。同樣,在節(jié)點(diǎn)681的下位存在利用鏈接742連接的尺寸4的節(jié)點(diǎn)642和利用鏈接743連接的尺寸4的節(jié)點(diǎn)643。這4個(gè)節(jié)點(diǎn)與劃分層級(jí)2的區(qū)域的劃分對(duì)應(yīng)。另外,與這4個(gè)節(jié)點(diǎn)對(duì)應(yīng)的劃分編號(hào)是與作為上一位劃分層級(jí)的劃分層級(jí)3的節(jié)點(diǎn)對(duì)應(yīng)的劃分編號(hào)末尾的編號(hào)3后的4 7。在節(jié)點(diǎn)640的下位存在利用鏈接720連接的尺寸2的節(jié)點(diǎn)620和利用鏈接721連接的尺寸2的節(jié)點(diǎn)621。同樣,在節(jié)點(diǎn)641的下位存在利用鏈接722連接的尺寸2的節(jié)點(diǎn)622和利用鏈接723連接的尺寸2的節(jié)點(diǎn)623。另外,在節(jié)點(diǎn)642的下位存在利用鏈接724連接的尺寸2的節(jié)點(diǎn)624和利用鏈接725連接的尺寸2的節(jié)點(diǎn)625。此外,在節(jié)點(diǎn)643的下位存在利用鏈接726連接的尺寸2的節(jié)點(diǎn)626和利用鏈接727連接的尺寸2的節(jié)點(diǎn)627。這8個(gè)節(jié)點(diǎn)與劃分層級(jí)I的區(qū)域的劃分對(duì)應(yīng)。另外,與這8個(gè)節(jié)點(diǎn)對(duì)應(yīng)的劃分編號(hào)是與作為上一位劃分層級(jí)的劃分層級(jí)2的節(jié)點(diǎn)對(duì)應(yīng)的劃分編號(hào)末尾的編號(hào)7后的8 15。在節(jié)點(diǎn)620的下位存在利用鏈接710連接的尺寸I的節(jié)點(diǎn)610和利用鏈接711連接的尺寸I的節(jié)點(diǎn)611。同樣,在節(jié)點(diǎn)621的下位存在利用鏈接712連接的尺寸I的節(jié)點(diǎn)612和利用鏈接713連接的尺寸I的節(jié)點(diǎn)613,在節(jié)點(diǎn)622的下位存在利用鏈接714連接的尺寸I的節(jié)點(diǎn)614和利用鏈接715連接的尺寸I的節(jié)點(diǎn)615,在節(jié)點(diǎn)623的下位存在利用鏈接716連接的尺寸I的節(jié)點(diǎn)616和利用鏈接717連接的尺寸I的節(jié)點(diǎn)617。此外,在節(jié)點(diǎn)624的下位存在利用鏈接718連接的尺寸I的節(jié)點(diǎn)618與利用鏈接719連接的尺寸I的節(jié)點(diǎn)619,在節(jié)點(diǎn)625的下位存在利用鏈接720連接的尺寸I的節(jié)點(diǎn)6110和利用鏈接721連接的尺寸I的節(jié)點(diǎn)6111,在節(jié)點(diǎn)626的下位存在利用鏈接722連接的尺寸I的節(jié)點(diǎn)6112和利用鏈接723連接的尺寸I的節(jié)點(diǎn)6113,在節(jié)點(diǎn)626的下位存在利用鏈接724連接的尺寸I的節(jié)點(diǎn)6114和利用鏈接725連接的尺寸I的節(jié)點(diǎn)6115。這16個(gè)節(jié)點(diǎn)與劃分層級(jí)0的區(qū)域的劃分對(duì)應(yīng)。另外,與這16個(gè)節(jié)點(diǎn)對(duì)應(yīng)的劃分編 號(hào)是與作為上一位劃分層級(jí)的劃分層級(jí)I的節(jié)點(diǎn)對(duì)應(yīng)的劃分編號(hào)末尾的編號(hào)15后的16 31。樹結(jié)構(gòu)體790中的與根節(jié)點(diǎn)6160同樣地相當(dāng)于假想分配的區(qū)域的節(jié)點(diǎn)681、節(jié)點(diǎn)642、節(jié)點(diǎn)643、節(jié)點(diǎn)625、節(jié)點(diǎn)626、節(jié)點(diǎn)627、節(jié)點(diǎn)6111、節(jié)點(diǎn)6112、節(jié)點(diǎn)6113、節(jié)點(diǎn)6114、節(jié)點(diǎn)6115與根節(jié)點(diǎn)6160同樣地用虛線矩形框來表現(xiàn)。另外,與主區(qū)域698、主區(qū)域692以及主區(qū)域691分別對(duì)應(yīng)的節(jié)點(diǎn)680、節(jié)點(diǎn)624以及節(jié)點(diǎn)6110用粗線矩形框來表現(xiàn)。接著,對(duì)本發(fā)明一個(gè)實(shí)施方式的劃分編號(hào)的性質(zhì)進(jìn)行說明。首先,當(dāng)給出作為存儲(chǔ)管理對(duì)象的分區(qū)的尺寸時(shí),根據(jù)該尺寸進(jìn)行假想分區(qū),針對(duì)假想分區(qū)按照劃分層級(jí)進(jìn)行多層劃分。在圖2A的例子中,當(dāng)給出尺寸為11的分區(qū)690時(shí),可假想取得尺寸為16的假想分區(qū)690a,生成與假想分區(qū)690a對(duì)應(yīng)的樹結(jié)構(gòu)體790。然后,在同一劃分層級(jí)內(nèi)將左側(cè)設(shè)為小編號(hào),可從樹結(jié)構(gòu)體最上位的劃分層級(jí)的節(jié)點(diǎn)向下位的節(jié)點(diǎn)如圖2A所不唯一地賦予劃分編號(hào)。然后,當(dāng)通過管理每個(gè)劃分層級(jí)的劃分編號(hào)來給出劃分編號(hào)時(shí),可求出通過以該劃分編號(hào)識(shí)別出的劃分單元?jiǎng)澐殖龅膮^(qū)域尺寸即劃分層級(jí),此外,可根據(jù)該劃分層級(jí)的開頭劃分編號(hào)與相應(yīng)劃分編號(hào)之差,求出作為上述劃分單元的分配對(duì)象的區(qū)域在分區(qū)上的位置。圖2A所示的比特圖600如虛線箭頭所示,具有將與樹結(jié)構(gòu)體780的各個(gè)節(jié)點(diǎn)對(duì)應(yīng)的分配狀態(tài)縮減成比特圖的比特值。在圖2A的例示中,2比特的值與各個(gè)節(jié)點(diǎn)對(duì)應(yīng)。后面將會(huì)詳細(xì)說明比特圖600的比特值。這里,以下簡單說明圖2A的例示。分配比特圖600的比特值表示與具有各個(gè)劃分編號(hào)的節(jié)點(diǎn)對(duì)應(yīng)的區(qū)域在初始分配結(jié)束時(shí)的分配狀態(tài)。標(biāo)號(hào)6016所示的劃分層級(jí)4的比特位置即劃分編號(hào)609的值是I的比特位置的比特值11表示劃分編號(hào)I的劃分的區(qū)域是假想分配的區(qū)域(以下,有時(shí)稱作假想?yún)^(qū)域)。此外,不需要管理假想?yún)^(qū)域,因此,在后面的說明中,假定不具有假想?yún)^(qū)域的管理信息,作為假想?yún)^(qū)域以外的區(qū)域(以下,有時(shí)簡稱作區(qū)域。另外,有時(shí)稱作實(shí)體區(qū)域)的狀態(tài)管理信息,利用比特值11來表示使用中。標(biāo)號(hào)608所示的劃分層級(jí)3的比特位置即劃分編號(hào)609的值是2的比特位置的比特值00表示劃分編號(hào)2的劃分的區(qū)域?yàn)榭?。另外,?biāo)號(hào)608所示的劃分層級(jí)3的比特位置即劃分編號(hào)609的值是3的比特位置的比特值11表示相應(yīng)的區(qū)域是假想?yún)^(qū)域。同樣,標(biāo)號(hào)604所示的劃分層級(jí)2的比特位置即劃分編號(hào)4、5的比特值10表示相應(yīng)的區(qū)域的分配狀態(tài)為保留。標(biāo)號(hào)604所示的劃分層級(jí)2的比特位置即劃分編號(hào)6、7的比特值11表示相應(yīng)的區(qū)域是假想?yún)^(qū)域?!?biāo)號(hào)602所示的劃分層級(jí)I的劃分編號(hào)8 11作為比特位置的比特值表示相應(yīng)的區(qū)域的分配狀態(tài)為保留,將劃分編號(hào)12作為比特位置的比特值表示相應(yīng)的區(qū)域的分配狀態(tài)為空。另外,將劃分編號(hào)13 15作為比特位置的比特值表示相應(yīng)的區(qū)域是假想?yún)^(qū)域。將標(biāo)號(hào)601所示的劃分層級(jí)0的劃分編號(hào)16 25作為比特位置的比特值表示相應(yīng)的區(qū)域的分配狀態(tài)為保留,將劃分編號(hào)26作為比特位置的比特值表示相應(yīng)的區(qū)域的分配狀態(tài)為空。另外,將劃分編號(hào)27 31作為比特位置的比特值表示相應(yīng)的區(qū)域是假想?yún)^(qū)域。分配狀態(tài)的空和保留的區(qū)別與對(duì)分配請(qǐng)求的尺寸的空區(qū)域進(jìn)行分配時(shí)的優(yōu)先位次相關(guān)。即,即使實(shí)質(zhì)上是空狀態(tài)的區(qū)域,也可以從分配狀態(tài)是空的區(qū)域進(jìn)行使用。后面將會(huì)說明其詳細(xì)內(nèi)容。圖2B是說明本發(fā)明一個(gè)實(shí)施方式的分配系統(tǒng)的軟件和硬件環(huán)境例的圖。分配系統(tǒng)100由初始化部101和多層劃分管理部102構(gòu)成。后面將會(huì)詳細(xì)說明初始化和多層劃分管理。初始化部101接受例如來自盤分配程序或者文件系統(tǒng)的初始化部這樣的初始化程序201的包含分區(qū)尺寸的初始化請(qǐng)求,對(duì)分配給構(gòu)成數(shù)據(jù)存儲(chǔ)裝置308的例如主存儲(chǔ)裝置305、外部存儲(chǔ)裝置306、經(jīng)由通信裝置訪問的遠(yuǎn)方存儲(chǔ)裝置307等(以下,有時(shí)簡稱作存儲(chǔ)裝置)的分區(qū)的多層劃分管理信息進(jìn)行初始化。多層劃分管理部102根據(jù)來自文件系統(tǒng)202的包含分配請(qǐng)求尺寸的區(qū)域的分配請(qǐng)求寫入多層劃分管理信息,由此執(zhí)行分區(qū)的劃分即區(qū)域的分割分配,讀出已寫入的多層劃分管理信息,將包含分配劃分編號(hào)的分配結(jié)果返回到文件系統(tǒng)202。文件系統(tǒng)202接受來自利用應(yīng)用程序/OS等文件的系統(tǒng)200的文件操作請(qǐng)求,當(dāng)該文件操作請(qǐng)求需要向文件分配區(qū)域時(shí),對(duì)上述分配系統(tǒng)100的多層劃分管理部102進(jìn)行包含分配請(qǐng)求尺寸的分配請(qǐng)求并接收分配結(jié)果,指定從分配系統(tǒng)100的多層劃分管理部返回的劃分編號(hào)作為分配劃分編號(hào),對(duì)文件操作系統(tǒng)203進(jìn)行文件的操作請(qǐng)求。文件操作系統(tǒng)203利用指定的劃分編號(hào)取得由多層劃分管理部102分配的區(qū)域地址,作為針對(duì)存儲(chǔ)裝置中存儲(chǔ)的文件的文件操作執(zhí)行數(shù)據(jù)的寫入或者數(shù)據(jù)的讀出,將操作結(jié)果返回到文件系統(tǒng)202。文件系統(tǒng)202將從文件操作系統(tǒng)203返回的操作結(jié)果作為文件操作響應(yīng)返回到利用應(yīng)用程序/OS等文件的系統(tǒng)200。即使文件系統(tǒng)202和文件操作系統(tǒng)203是現(xiàn)有的系統(tǒng),也可以通過調(diào)整與本發(fā)明的分配系統(tǒng)100之間的接口來使用本發(fā)明的分配系統(tǒng)100。另外,雖然未描述利用應(yīng)用程序/OS等文件的系統(tǒng)200,但是初始化程序201也同樣可應(yīng)用現(xiàn)有的系統(tǒng)。因此,省略關(guān)于這些程序、系統(tǒng)的說明。圖2C是說明本發(fā)明一個(gè)實(shí)施方式中的硬件結(jié)構(gòu)例的圖。通過至少具備中央處理裝置302和高速緩沖存儲(chǔ)器303的數(shù)據(jù)處理裝置301,采用數(shù)據(jù)存儲(chǔ)裝置308來實(shí)施本發(fā)明一個(gè)實(shí)施方式的存儲(chǔ)裝置的分區(qū)管理以及針對(duì)文件的區(qū)域分配釋放處理。數(shù)據(jù)存儲(chǔ)裝置308包含后面說明的對(duì)每個(gè)劃分層級(jí)的區(qū)域進(jìn)行多層管理的多層劃分管理表309、保持每個(gè)劃分的分配狀態(tài)的多層劃分分配表310以及作為管理對(duì)象的分區(qū)311。如圖2C所示,數(shù)據(jù)存儲(chǔ)裝置308可通過主存儲(chǔ)裝置305、外部存儲(chǔ)裝置306或它們的組合來實(shí)現(xiàn),或者還可以采用經(jīng)由通信裝置307連接的配置于遠(yuǎn)方的裝置。即,還可以將主存儲(chǔ)裝置305作為數(shù)據(jù)處理裝置301內(nèi)的裝置,可認(rèn)為多數(shù)情況下主存儲(chǔ)裝置305具有多層劃分分配表310和多層劃分管理表309,將分區(qū)311分配給外部存儲(chǔ)裝置306,但是,由后面的說明可知,即使在將分區(qū)分配給主存儲(chǔ)裝置305時(shí)也能夠適用 本發(fā)明。在圖2C的例示中,主存儲(chǔ)裝置305、外部存儲(chǔ)裝置306以及通信裝置307利用一根總線304與數(shù)據(jù)處理裝置301連接,但連接方法不僅限于此。另外,雖然沒有特別地圖示,但為了在后面的處理中使用在處理途中得到的各種值而采用與各個(gè)處理相應(yīng)的臨時(shí)存儲(chǔ)區(qū)域是顯然的。并且,在以下的說明中,有時(shí)將臨時(shí)存儲(chǔ)區(qū)域中存儲(chǔ)的或設(shè)定的數(shù)據(jù)的名字作為該臨時(shí)存儲(chǔ)區(qū)域的名字,相反,有時(shí)將臨時(shí)存儲(chǔ)區(qū)域的名字作為該臨時(shí)存儲(chǔ)區(qū)域中存儲(chǔ)的或者設(shè)定的數(shù)據(jù)的名字。接著,參照?qǐng)D3、圖4A 圖4C來說明本發(fā)明一個(gè)實(shí)施方式中的多層劃分管理信息的初始化。此外,有時(shí)還將多層劃分管理信息的初始化表述為分區(qū)的初始化。圖3是示出與分區(qū)尺寸對(duì)應(yīng)的分區(qū)的初始化狀態(tài)例的說明圖。首先,如在圖2B的說明中所述的那樣,在對(duì)文件系統(tǒng)分配分區(qū)后,接受來自初始化程序的包含該分區(qū)的分區(qū)尺寸的初始化請(qǐng)求,由此通過分配系統(tǒng)的初始化部來進(jìn)行分區(qū)的初始化。在圖3所示的分區(qū)尺寸120中,分配給該文件系統(tǒng)且包含在分區(qū)311的初始化請(qǐng)求中的分區(qū)尺寸“52”以2進(jìn)制的形式表示,52=25+24+22,因而第2比特、第4比特以及第5比特是“I”。根據(jù)從該初始化程序接收到的分區(qū)尺寸生成分區(qū)結(jié)構(gòu)主劃分表130。分區(qū)結(jié)構(gòu)主劃分表130由記錄構(gòu)成,該記錄由如其后綴0 7所示與劃分層級(jí)對(duì)應(yīng)的I比特組成,在圖3的例示中,具有與從劃分層級(jí)0到分區(qū)結(jié)構(gòu)主劃分表最上位的劃分層級(jí)7對(duì)應(yīng)的8個(gè)記錄。如箭頭122、124以及125所示,根據(jù)以2進(jìn)制形式表示分區(qū)尺寸時(shí)的比特值,設(shè)定對(duì)應(yīng)的劃分層級(jí)的記錄的比特值。在圖3所示的分區(qū)311中,如利用從分區(qū)結(jié)構(gòu)主劃分表130起的箭頭135、134以及132表示對(duì)應(yīng)關(guān)系那樣,初始分配與分區(qū)結(jié)構(gòu)主劃分表130的比特值是“I”的記錄對(duì)應(yīng)的劃分層級(jí)的尺寸的主區(qū)域185、184以及182。另外,假想地取得包含分區(qū)311的最小的2的冪乘尺寸的假想分區(qū)311a,對(duì)假想分區(qū)311a假想地分配劃分層級(jí)6的區(qū)域。并且,雖然在圖3中未示出,但是與圖2A所述的主區(qū)域6916同樣地,對(duì)假想?yún)^(qū)域311a整體假想地分配劃分層級(jí)6的主區(qū)域。此外,有時(shí)還將與主區(qū)域?qū)?yīng)的劃分層級(jí)稱作主劃分層級(jí)。即,分區(qū)結(jié)構(gòu)主劃分表130可稱作利用比特值I表示主劃分層級(jí)的表。多層劃分管理表309如圖3所不包含主劃分編號(hào)管理表309a、末尾編號(hào)管理表309b以及最上位劃分層級(jí)管理表309c。主劃分編號(hào)管理表309a和末尾編號(hào)管理表309b如其后綴0 7所示,與分區(qū)結(jié)構(gòu)主劃分表130同樣地由與劃分層級(jí)對(duì)應(yīng)的記錄構(gòu)成。主劃分編號(hào)管理表309a的記錄由主劃分編號(hào)114構(gòu)成,末尾編號(hào)管理表309b的記錄由末尾編號(hào)116構(gòu)成。各個(gè)記錄的值根據(jù)分區(qū)結(jié)構(gòu)主劃分表130的值在初始化處理中進(jìn)行設(shè)定。在最上位劃分層級(jí)管理表309c中設(shè)定與假想分區(qū)311a的尺寸相當(dāng)?shù)膭澐謱蛹?jí)即最上位劃分層級(jí)115。在圖3所示的例子中設(shè)定與假想分區(qū)311a的尺寸相當(dāng)?shù)?。在主劃分編號(hào)114中,當(dāng)管理分區(qū)311內(nèi)的區(qū)域的分配狀態(tài)的多層劃分分配表310具有與某劃分層級(jí)的主劃分對(duì)應(yīng)的記錄時(shí),在 該劃分層級(jí)的記錄中存儲(chǔ)與該主劃分對(duì)應(yīng)的劃分編號(hào),在某劃分層級(jí)中多層劃分分配表310不具有與主劃分對(duì)應(yīng)的記錄時(shí),在該劃分層級(jí)的記錄中存儲(chǔ)“-I”作為無效的劃分編號(hào)。在圖3的例子中,主劃分編號(hào)114的各個(gè)記錄的值從上位的劃分層級(jí)起是_1、_1、2、6、_1、28、-I、-I。此外,如根據(jù)先前在圖2A所示的比特圖600的說明中敘述而理解的那樣,在多層劃分分配表中沒有設(shè)置與假想?yún)^(qū)域?qū)?yīng)的記錄,僅設(shè)置有與實(shí)體區(qū)域?qū)?yīng)的記錄。末尾編號(hào)116是與多層劃分分配表310的各個(gè)記錄唯一對(duì)應(yīng)的劃分編號(hào)中的與各個(gè)劃分層級(jí)的劃分分配表的末尾記錄對(duì)應(yīng)的劃分編號(hào),圖3例示的末尾編號(hào)116的各個(gè)記錄的值從上位的劃分層級(jí)起是-I、_1、2、6、13、28、57、115。后面參照?qǐng)D4A 圖4C詳細(xì)說明這些值的設(shè)定。多層劃分分配表310如先前所述用于管理分區(qū)311內(nèi)的區(qū)域的分配狀態(tài)。與圖2A所示的分配比特圖600類似,劃分編號(hào)與分配比特圖600同樣地包含假想?yún)^(qū)域并賦予編號(hào),但是沒有對(duì)假想?yún)^(qū)域設(shè)置保持狀態(tài)管理信息的記錄即分配狀態(tài)170。在初始化處理中,根據(jù)多層劃分管理表309的值生成多層劃分分配表310,進(jìn)行初始設(shè)定。多層劃分分配表310如圖中虛線箭頭140 145所示,由與從最下位的劃分層級(jí)到分區(qū)結(jié)構(gòu)主劃分表130的比特值是I的最上位的劃分層級(jí)的各個(gè)劃分層級(jí)對(duì)應(yīng)的劃分分配表160 165構(gòu)成。各個(gè)劃分分配表的記錄由與該記錄相應(yīng)的劃分編號(hào)區(qū)域的2比特的分配狀態(tài)170構(gòu)成。分配狀態(tài)的比特值“00”、“01”、“10”、“11”分別與各個(gè)劃分編號(hào)區(qū)域的“空”、“空候選”、“保留”、“使用中”的狀態(tài)對(duì)應(yīng)。這些狀態(tài)的意思將會(huì)在后面詳細(xì)說明,可以通過在分配狀態(tài)170中采用2比特來識(shí)別“空候選”,從而能夠更加沒有浪費(fèi)地利用存儲(chǔ)區(qū)域。另外,劃分分配表160 165的各個(gè)記錄如圖3的箭頭175、174、172所示,具有與主劃分即主區(qū)域?qū)?yīng)的記錄、和與將上一位劃分層級(jí)的區(qū)域分割成2個(gè)的劃分即將上一位劃分層級(jí)的區(qū)域分割成2個(gè)的區(qū)域?qū)?yīng)的記錄??蓪腎起的連續(xù)編號(hào)中的對(duì)實(shí)體區(qū)域附加的編號(hào)即劃分編號(hào)171與多層劃分分配表310的各個(gè)記錄對(duì)應(yīng),該連續(xù)編號(hào)是從在最上位劃分層級(jí)管理表309c中設(shè)定的最上位劃分層級(jí)即劃分層級(jí)6的假想?yún)^(qū)域到將該劃分層級(jí)6的假想?yún)^(qū)域依次二分割而得到的劃分層級(jí)0的區(qū)域的末尾區(qū)域依次附加的。末尾編號(hào)管理表30%的末尾編號(hào)116是相應(yīng)的劃分層級(jí)中的劃分編號(hào)的末尾編號(hào)。如根據(jù)先前參照?qǐng)D2A說明而理解的那樣,當(dāng)給出分區(qū)尺寸即分區(qū)結(jié)構(gòu)主劃分表時(shí),唯一地決定針對(duì)實(shí)體區(qū)域的多層劃分分配表的結(jié)構(gòu),還唯一地決定利用以劃分編號(hào)識(shí)別出的劃分單元進(jìn)行劃分的區(qū)域在分區(qū)內(nèi)的位置和尺寸。在多層劃分分配表310的初始狀態(tài)下,如箭頭175、174、172所示,在與主區(qū)域?qū)?yīng)的記錄的分配狀態(tài)170中初始設(shè)定表示空的“00”,在其它記錄的分配狀態(tài)中初始設(shè)定表示保留的“10”。因此,當(dāng)針對(duì)空的區(qū)域觀察分配狀態(tài)時(shí),在分區(qū)311中分割分配主區(qū)域185、184、182,在設(shè)定利用多層劃分分配表310進(jìn)行管理的區(qū)域中的空區(qū)域這樣的意義上,初始分配分區(qū)311。后面參照?qǐng)D4A 圖4C詳細(xì)說明多層劃分分配表310的初始設(shè)定。此外,上述劃分編號(hào)171的編號(hào)賦予方法僅僅是例示,對(duì)于本領(lǐng)域的普通技術(shù)人員來說,只要能夠進(jìn)行后述的文件分配管理,則可進(jìn)行例如將開頭編號(hào)設(shè)為0而不是I、使編號(hào)的賦予順序相反等各種變形,這是顯而易見的。如以上說明的那樣,根據(jù)本發(fā)明,分配給文件系統(tǒng)的分區(qū)311采用多層劃分分配表31根據(jù)與劃分層級(jí)對(duì)應(yīng)的分配狀態(tài)170對(duì)同一區(qū)域進(jìn)行多層管理。、根據(jù)分配請(qǐng)求的尺寸,通過多層劃分分配表的搜索來取得某劃分層級(jí)的空區(qū)域或者不同劃分層級(jí)的連續(xù)空區(qū)域的劃分編號(hào),將該劃分編號(hào)設(shè)為使用中,由此進(jìn)行采用多層劃分分配表310的區(qū)域分配。在沒有空區(qū)域的情況下,搜索空候選的區(qū)域。如圖2B所示,將使用中的劃分編號(hào)作為分配劃分編號(hào)從分配系統(tǒng)返回到已進(jìn)行文件分配請(qǐng)求的文件系統(tǒng)。文件操作系統(tǒng)在接受指定該劃分編號(hào)的文件操作請(qǐng)求時(shí),從多層劃分管理部接收該劃分編號(hào)的區(qū)域的地址信息。多層劃分管理部利用劃分編號(hào)搜索多層劃分管理表309,取得與劃分編號(hào)對(duì)應(yīng)的區(qū)域的劃分層級(jí)和層級(jí)內(nèi)編號(hào),由此能夠知道分配給文件的區(qū)域在分區(qū)內(nèi)的位置和尺寸。后面將會(huì)詳細(xì)說明這些處理。接著,參照?qǐng)D4A、圖4B以及圖4C說明對(duì)分區(qū)初始化的處理。這里對(duì)分區(qū)初始化的處理具體地說是初始設(shè)定例如圖3所示的多層劃分管理表309和多層劃分分配表310的值的處理。以下,作為例子參照多層劃分管理表309和多層劃分分配表310進(jìn)行說明。圖4A是說明對(duì)分區(qū)初始化的前級(jí)處理流程例的圖。如圖4A所示,首先,在步驟S401中,根據(jù)從請(qǐng)求分區(qū)初始化的程序接收到的分區(qū)尺寸,生成根據(jù)以2進(jìn)制形式表示分區(qū)尺寸時(shí)的比特值來設(shè)定劃分層級(jí)的記錄的比特值的分區(qū)結(jié)構(gòu)主劃分表。然后,在步驟S402中,將分區(qū)結(jié)構(gòu)主劃分表的最上位的劃分層級(jí)設(shè)定為主劃分層級(jí),進(jìn)到步驟S404。在圖3所示的例子中,生成分區(qū)結(jié)構(gòu)主劃分表130,其最上位的劃分層級(jí)是7,因而對(duì)主劃分層級(jí)設(shè)定7。上述步驟S402中的、設(shè)定分區(qū)結(jié)構(gòu)主劃分表的最上位的劃分層級(jí)的主劃分層級(jí)是先前所述的未圖示的臨時(shí)存儲(chǔ)區(qū)域的一例。在步驟S404中,取出主劃分層級(jí)指向的分區(qū)結(jié)構(gòu)主劃分表的比特值,在步驟S405中,判定該取出的比特值是否有效即是否是值I。當(dāng)上述取出的比特值不是I時(shí)分支到步驟S406,在主劃分層級(jí)指向的主劃分編號(hào)管理表內(nèi)設(shè)定值“-1”,接著,在步驟S407中,在主劃分層級(jí)指向的末尾編號(hào)管理表內(nèi)設(shè)定值“-1”,在步驟S408中,對(duì)主劃分層級(jí)減I并返回到步驟S404。在步驟S405中初次判定為分區(qū)結(jié)構(gòu)主劃分表的比特值有效之前,反復(fù)進(jìn)行上述步驟S404 步驟S408的循環(huán)處理。在圖3所示的例子中,在將主劃分層級(jí)設(shè)定為5之前,分區(qū)結(jié)構(gòu)主劃分表的比特值是0,因而通過該循環(huán)處理,對(duì)主劃分編號(hào)管理表309a和末尾編號(hào)管理表309b的劃分層級(jí)7和劃分層級(jí)6都設(shè)定值“-I”。另一方面,當(dāng)上述取出的比特值是I時(shí),進(jìn)到步驟S408a,判定在分區(qū)結(jié)構(gòu)主劃分表中設(shè)定的比特值為I的記錄是否是I個(gè)即分區(qū)結(jié)構(gòu)主劃分表是否為單比特結(jié)構(gòu),如果是單比特結(jié)構(gòu),則在步驟S408b中,將主劃分層級(jí)設(shè)定為最上位劃分層級(jí),進(jìn)到圖4B所示的步驟S409,如果不是單比特結(jié)構(gòu),即是多比特結(jié)構(gòu),則在步驟S408c中,將主劃分層級(jí)加I而得到的值設(shè)定為最上位劃分層級(jí),進(jìn)到圖4B所示的步驟S409。在圖3的例示中,是多比特結(jié)構(gòu)且最初分區(qū)結(jié)構(gòu)主劃分表的比特值為I的主劃分層級(jí)是5,因而對(duì)最上位劃分層級(jí)設(shè)定6。該最上位劃分的設(shè)定相當(dāng)于取得假想分區(qū)并在該假想分區(qū)假想地分配主區(qū)域。圖4B是說明對(duì)分區(qū)初始化的后級(jí)處理流程例的圖。在步驟S409中,將以從最上位劃分層級(jí)減去主劃分層級(jí)而得到的值為指數(shù)的2的冪乘設(shè)定為開頭編號(hào),在步驟S410中,將值“ I ”設(shè)定為劃分?jǐn)?shù),進(jìn)到步驟S411。上述步驟S409的開頭編號(hào)和步驟S410的劃分?jǐn)?shù)也是先前所述的未圖示的臨時(shí)存儲(chǔ)區(qū)域的例子。分 別將數(shù)據(jù)的名字作為臨時(shí)存儲(chǔ)區(qū)域的名字。在圖3的例示中,將2的(6-5)次冪乘2設(shè)定為開頭編號(hào)。在步驟S411中,將開頭編號(hào)加上劃分?jǐn)?shù)后再減I而得到的值設(shè)定為主劃分編號(hào)。在圖3的例示中,在步驟S411的最初處理中,利用步驟S409的處理對(duì)開頭編號(hào)設(shè)定2,利用步驟S410的處理對(duì)劃分?jǐn)?shù)設(shè)定1,因而對(duì)主劃分編號(hào)設(shè)定2。接著,在步驟S412中,在主劃分層級(jí)指向的主劃分編號(hào)管理表中設(shè)定主劃分編號(hào)。在圖3例示的步驟S412的最初處理中,對(duì)主劃分編號(hào)管理表309a的劃分層級(jí)5設(shè)定2。接著,進(jìn)到步驟S414,對(duì)主劃分層級(jí)指向的劃分層級(jí)的多層劃分分配表的分配狀態(tài)初始化。后面將會(huì)參照?qǐng)D4C說明步驟S414的詳細(xì)處理。接著,在步驟S416中,判定主劃分層級(jí)是否是最下位的劃分層級(jí),如果是最下位的劃分層級(jí)則結(jié)束處理,如果不是最下位的劃分層級(jí)則分支到步驟S417。在步驟S417中,對(duì)主劃分層級(jí)減1,在步驟S418中,使開頭編號(hào)成為2倍,在步驟S419中使劃分?jǐn)?shù)成為2倍,進(jìn)到步驟S420。在步驟S420中,取出主劃分層級(jí)指向的劃分層級(jí)的分區(qū)結(jié)構(gòu)主劃分表的比特值,在步驟S421中,判定該取出的比特值是否有效即是否是值I。當(dāng)在步驟S420中取出的主劃分層級(jí)指向的分區(qū)結(jié)構(gòu)主劃分表的比特值無效,則分支到步驟S422,對(duì)主劃分編號(hào)設(shè)定值“-I ”,返回到步驟S412,如果有效,則分支到步驟S423,對(duì)劃分?jǐn)?shù)加上1,返回到步驟S411。在步驟S416中判定為主劃分層級(jí)是最下位的劃分層級(jí)之前,反復(fù)進(jìn)行上述步驟S411 步驟S423的循環(huán)處理。此時(shí),當(dāng)主劃分層級(jí)指向的劃分層級(jí)的分區(qū)結(jié)構(gòu)主劃分表的比特為無效比特即該比特值是“0”時(shí),如上所述,對(duì)該劃分層級(jí)的主劃分編號(hào)設(shè)定值“-I”。在圖3所示的例子中,在步驟S418的最初處理中對(duì)開頭編號(hào)設(shè)定4,劃分?jǐn)?shù)在步驟S419中設(shè)為2,在步驟S423中設(shè)為3,因而在步驟S411中對(duì)主劃分編號(hào)管理表309a的劃分層級(jí)4設(shè)定6。另外,在步驟S422的處理中,對(duì)主劃分編號(hào)管理表309a的劃分層級(jí)3設(shè)定-I。以下同樣地,對(duì)主劃分編號(hào)管理表309a的劃分層級(jí)2、1、0分別設(shè)定28、-I、-I。圖4C是說明本發(fā)明一個(gè)實(shí)施方式中的按照劃分層級(jí)對(duì)多層劃分分配表初始化的處理流程例的圖,是詳細(xì)說明圖4B所示的步驟S414的處理的圖。根據(jù)圖4C例示的處理流程,對(duì)與從構(gòu)成多層劃分分配表的最下位劃分層級(jí)到分區(qū)結(jié)構(gòu)主劃分表的比特值是I的最上位劃分層級(jí)的各個(gè)劃分層級(jí)對(duì)應(yīng)的劃分分配表初始化。圖3的例子是將劃分分配表160 165各自的值設(shè)定為圖示的值的處理。每當(dāng)執(zhí)行圖4B所示的步驟S411 步驟S423的循環(huán)處理時(shí),進(jìn)行從劃分分配表165到劃分分配表160的劃分分配表的初始化,多層劃分分配表310的初始化完成。如圖4C所示,在步驟S431中將開頭編號(hào)設(shè)定為劃分編號(hào),在步驟S432中,將開頭編號(hào)加上劃分?jǐn)?shù)后再減I而得到的值設(shè)定為末尾編號(hào)。此外,在步驟S433中,在主劃分層級(jí)指向的末尾編號(hào)管理表中設(shè)定末尾編號(hào),進(jìn)到步驟S434。步驟S431和步驟S432中的開頭編號(hào)是在圖4B所示的步驟S409或者步驟S418中設(shè)定的。另外,步驟S432中的劃分?jǐn)?shù)是在圖4B所示的步驟S410、步驟S419或者步驟S423中設(shè)定的。
在圖3的例示中,執(zhí)行步驟S431 步驟S433的處理時(shí)的主劃分層級(jí)是5,對(duì)劃分編號(hào)設(shè)定在圖4B所示的步驟S409中設(shè)定的2,對(duì)末尾編號(hào)設(shè)定開頭編號(hào)2加上在圖4B所示的步驟S410中設(shè)定的劃分?jǐn)?shù)I后再減I而得到的2。在步驟S434中,判定劃分編號(hào)與末尾編號(hào)是否相等。如果劃分編號(hào)與末尾編號(hào)不等,則在步驟S435中,將劃分編號(hào)指向的多層劃分分配表的分配狀態(tài)設(shè)定為保留,在步驟S436中對(duì)劃分編號(hào)加1,返回到步驟S434,反復(fù)進(jìn)行劃分編號(hào)與末尾編號(hào)是否相等的判定。該步驟S434 步驟S436的循環(huán)處理是從與處理中的劃分層級(jí)對(duì)應(yīng)的劃分分配表的開頭劃分編號(hào)到末尾編號(hào)的前一個(gè)劃分編號(hào),將劃分編號(hào)指向的劃分分配表的分配狀態(tài)設(shè)定為保留的處理。另一方面,在步驟S434中判定為劃分編號(hào)與末尾編號(hào)相等時(shí),進(jìn)到步驟S437,判定主劃分編號(hào)是否是值“-I”。這里的主劃分編號(hào)是在圖4B所示的步驟S411或者步驟S422中設(shè)定的。當(dāng)在步驟S437中判定為主劃分編號(hào)是值“-I”時(shí),在步驟S438中將劃分編號(hào)指向的多層劃分分配表的分配狀態(tài)設(shè)定為保留,結(jié)束處理,當(dāng)在步驟S437中判定為主劃分編號(hào)不是值“-I”時(shí),在步驟S439中將劃分編號(hào)指向的多層劃分分配表的分配狀態(tài)設(shè)定為空,結(jié)束處理。該步驟S438和步驟S439的處理是設(shè)定與處理中的劃分層級(jí)對(duì)應(yīng)的劃分分配表的末尾劃分編號(hào)的分配狀態(tài)的處理。如圖3例示的那樣,與主區(qū)域?qū)?yīng)的劃分單元的劃分編號(hào)是與該主區(qū)域的劃分層級(jí)對(duì)應(yīng)的劃分編號(hào)的末尾,該末尾劃分編號(hào)的劃分分配表的分配狀態(tài)如在劃分編號(hào)2、6、28的分配狀態(tài)中看到的那樣為“00”即空。其它的多層劃分分配表的分配狀態(tài)全部為“10”即保留。在以上詳細(xì)說明的分區(qū)的初始化中,對(duì)區(qū)域的分配狀態(tài)除了導(dǎo)入“空”之外還導(dǎo)入“保留”,這是為了容易地確保連續(xù)的大的空區(qū)域。例如在圖3的例子中,當(dāng)從文件系統(tǒng)請(qǐng)求分配尺寸是16的區(qū)域時(shí),可從空狀態(tài)的區(qū)域即主區(qū)域中選擇主區(qū)域184即劃分編號(hào)6的區(qū)域。當(dāng)沒有保留這樣的分配狀態(tài)時(shí),劃分編號(hào)4、5的區(qū)域也為空,這樣,為了在產(chǎn)生未來尺寸大于16的區(qū)域的分配請(qǐng)求時(shí)分配連續(xù)的區(qū)域,為了有效地利用區(qū)域,需要從劃分編號(hào)4、5、6中選擇劃分編號(hào)6的區(qū)域的手段。但是,該手段與對(duì)分配狀態(tài)導(dǎo)入“保留”相比變得復(fù)雜。
此外,在本實(shí)施方式中,雖然導(dǎo)入“保留”這樣的狀態(tài),并用2比特的值“10”來表示該狀態(tài),但如上述說明的那樣,將區(qū)域的分配狀態(tài)設(shè)定為保留是為了從分配的對(duì)象中去除該區(qū)域。因此,在上述步驟S438中,還可以將劃分編號(hào)指向的多層劃分分配表的分配狀態(tài)設(shè)定為表示不向區(qū)域分配該劃分編號(hào)的空以外的狀態(tài)。接著,參照?qǐng)D5 圖IlC說明本發(fā)明一個(gè)實(shí)施方式中的采用多層劃分管理信息的區(qū)域分配。如先前在圖2B的說明中所述的那樣,在分區(qū)初始化后,接受來自文件系統(tǒng)的包含分配請(qǐng)求尺寸的分配請(qǐng)求,由此通過分配系統(tǒng)的多層劃分管理部來進(jìn)行區(qū)域分配。圖5是說明進(jìn)行區(qū)域分配的全部處理的概括處理流程例的圖。首先,在步驟S501中設(shè)定分配請(qǐng)求尺寸,在步驟S502中,設(shè)定隱含分配請(qǐng)求尺寸的最小的2的冪乘尺寸的指數(shù)作為分配請(qǐng)求劃分層級(jí)。例如,當(dāng)分配請(qǐng)求尺寸是11 (以2進(jìn)制表示為“01011”)時(shí),對(duì)分配請(qǐng)求劃分層級(jí)設(shè)定16 (以2進(jìn)制表示為“ 10000”)=24的指數(shù)4。另外,當(dāng)分配請(qǐng)求尺寸是2的冪乘8時(shí),設(shè)定其指數(shù)3。
接著,在步驟S503中,參照多層劃分分配表,在分配請(qǐng)求劃分層級(jí)的區(qū)域中,搜索該區(qū)域的分配狀態(tài)是“空”的空區(qū)域,取得空區(qū)域的劃分編號(hào)。后面將會(huì)參照?qǐng)D6詳細(xì)說明步驟S503的處理。在步驟S504中,判定是否能夠取得空狀態(tài)的區(qū)域的劃分編號(hào),在能夠取得的情況下進(jìn)到步驟S507,在不能取得的情況下進(jìn)到步驟S505。在步驟S505中,參照多層劃分分配表,搜索分配請(qǐng)求劃分層級(jí)的區(qū)域中的分配狀態(tài)是“空候選”的空候選區(qū)域,取得空候選區(qū)域的劃分編號(hào)。后面將會(huì)參照?qǐng)D9詳細(xì)說明步驟S505的處理。在步驟S506中,判定是否能夠取得空候選狀態(tài)的區(qū)域,在能夠取得的情況下轉(zhuǎn)移至步驟S507,在不能取得的情況下作為取得失敗結(jié)束區(qū)域分配處理。在步驟S507中,判定與在步驟S503的處理中取得的劃分編號(hào)的劃分層級(jí)對(duì)應(yīng)的區(qū)域尺寸是否大于在步驟S501中設(shè)定的分配請(qǐng)求尺寸。如果分配請(qǐng)求尺寸不等于2的冪乘,即以2進(jìn)制形式表示時(shí)有效的比特位置為多個(gè)(將此時(shí)的分配請(qǐng)求稱作多比特請(qǐng)求,另一方面,在分配請(qǐng)求與2的冪乘相等時(shí)稱作單比特請(qǐng)求),則取得的區(qū)域尺寸大于分配請(qǐng)求尺寸。因此,在步驟S507中判定分配請(qǐng)求是多比特請(qǐng)求還是單比特請(qǐng)求。當(dāng)步驟S507中的判定是單比特請(qǐng)求時(shí)進(jìn)到步驟S509,當(dāng)步驟S507中的判定是多比特請(qǐng)求時(shí)分支到步驟S508。在步驟S508中,將與取得的劃分編號(hào)對(duì)應(yīng)的一次分配區(qū)域劃分成多層區(qū)域,得到分配請(qǐng)求劃分的二次分配區(qū)域,進(jìn)到步驟S509。此外,在二次分配中得到的區(qū)域是由多個(gè)區(qū)域構(gòu)成的多層區(qū)域,以下將該區(qū)域稱作二次分配區(qū)域。后面將會(huì)參照?qǐng)DIlA 圖IlC詳細(xì)說明步驟S508的處理。另外,后面也會(huì)詳細(xì)說明一次分配和二次分配。在步驟S509中,作為分配結(jié)果,將一次分配的分配區(qū)域的劃分編號(hào)設(shè)定為分配劃分編號(hào),結(jié)束處理。這里設(shè)定的分配劃分編號(hào)如圖2A所示作為分配結(jié)果返回到文件系統(tǒng)。分配系統(tǒng)的多層劃分管理部可采用與該文件對(duì)應(yīng)的分配劃分編號(hào)從多層劃分管理表中,求出從分配給文件系統(tǒng)的分區(qū)的開頭位置到分配請(qǐng)求后分配給文件的區(qū)域的開頭位置的相對(duì)地址。接著,詳細(xì)說明圖5的步驟S503、步驟S505以及步驟S508的處理。
圖6是詳細(xì)說明圖5的步驟S503的處理的圖,是說明從多層劃分分配表中搜索分配請(qǐng)求劃分層級(jí)的空區(qū)域并取得空區(qū)域的劃分編號(hào)的處理流程例的圖。如圖所示,在步驟S601中,從多層劃分分配表中搜索包含分配請(qǐng)求劃分層級(jí)的尺寸的空區(qū)域,取得空區(qū)域的劃分編號(hào)。根據(jù)本發(fā)明一個(gè)實(shí)施方式的多層劃分管理,即使在不能發(fā)現(xiàn)分配請(qǐng)求劃分層級(jí)的空區(qū)域的情況下,只要存在比分配劃分層級(jí)大的劃分層級(jí)的空區(qū)域就能夠發(fā)現(xiàn)它。例如在圖3所示的例子中,當(dāng)分配請(qǐng)求劃分層級(jí)是3時(shí),如劃分層級(jí)3的劃分分配表163所示,劃分層級(jí)3的區(qū)域沒有空。但是,劃分層級(jí)2存在劃分編號(hào)6的空區(qū)域,取得該劃分編號(hào)6。這樣,有時(shí)將分配比分配劃分層級(jí)大的劃分層級(jí)的空區(qū)域稱作虛擬分配。后面將會(huì)參照?qǐng)D7A 圖7C詳細(xì)說明步驟S601。接著,在步驟S602中,判定在步驟S601的處理中是否能夠取得劃分編號(hào),當(dāng)不能取得時(shí)返回取得失敗并結(jié)束處理,當(dāng)能夠取得時(shí)進(jìn)到步驟S603。在步驟S603中,判定在步驟S601的處理中取得的劃分編號(hào)涉及的劃分層級(jí)(取得 的劃分層級(jí))與分配請(qǐng)求劃分層級(jí)是否相等。該判定相當(dāng)于是否進(jìn)行虛擬分配的判定。當(dāng)取得的劃分層級(jí)與分配請(qǐng)求劃分層級(jí)相等時(shí),返回取得成功并結(jié)束處理,當(dāng)取得的劃分層級(jí)與分配請(qǐng)求劃分層級(jí)不等即進(jìn)行虛擬分配時(shí),分支到步驟S604。在步驟S604中,將虛擬分配的虛擬分配區(qū)域劃分成多層區(qū)域,得到分配請(qǐng)求劃分層級(jí)的劃分編號(hào)的一次分配區(qū)域。即,作為一次分配取得分配請(qǐng)求劃分層級(jí)的尺寸的區(qū)域,取得該劃分編號(hào),返回取得成功并結(jié)束處理。后面將會(huì)參照?qǐng)D8A和圖SB詳細(xì)說明步驟S604。圖7A是詳細(xì)說明圖6的步驟S601的處理的圖,是說明從多層劃分分配表中搜索包含分配請(qǐng)求劃分層級(jí)的尺寸的空區(qū)域并取得空區(qū)域的劃分編號(hào)的處理流程例的圖。如圖所示,在步驟S701中,將分配請(qǐng)求劃分層級(jí)設(shè)定為劃分層級(jí)。這里,分配請(qǐng)求劃分層級(jí)的值是在圖5的步驟S502中設(shè)定的。接著,在步驟S702中,將以最上位劃分層級(jí)減去劃分層級(jí)而得到的值為指數(shù)的2的冪乘設(shè)定為開頭編號(hào),在步驟S703a中,將該開頭編號(hào)設(shè)定為劃分編號(hào)。然后,在步驟S703b中,從末尾編號(hào)管理表中取出當(dāng)前處理中的劃分層級(jí)指向的末尾編號(hào)。接著,在步驟S704中,讀出設(shè)定為劃分編號(hào)的值指向的多層劃分分配表的分配狀態(tài)。然后,在步驟S705中,判定讀出的分配狀態(tài)是否是空。在步驟S705的判定中判定為分配狀態(tài)是空時(shí),進(jìn)到步驟S710。另一方面,在步驟S705的判定中判定為分配狀態(tài)不是空時(shí),分支到步驟S706。然后,在步驟S706中判定劃分編號(hào)與在步驟S703b中取出的末尾編號(hào)是否相等。當(dāng)劃分編號(hào)與末尾編號(hào)不等時(shí),分支到步驟S707,對(duì)劃分編號(hào)加上1,返回到步驟S704。以后在同一劃分層級(jí)內(nèi)對(duì)劃分編號(hào)每次加上1,檢索空狀態(tài)的區(qū)域。在步驟S706中判定為劃分編號(hào)與末尾編號(hào)相等時(shí),進(jìn)到步驟S708,判定劃分層級(jí)是否是存在分區(qū)結(jié)構(gòu)主劃分表的有效比特的最上位劃分層級(jí)。可通過判定在步驟S702中設(shè)定的開頭編號(hào)是I還是2來進(jìn)行該判定。當(dāng)在步驟S702中設(shè)定的開頭編號(hào)是I或者2時(shí),無論分區(qū)結(jié)構(gòu)主劃分表是單比特結(jié)構(gòu)還是多比特結(jié)構(gòu),直到存在有效比特的最上位劃分層級(jí)為止的空狀態(tài)區(qū)域的搜索都結(jié)束,因而返回取得失敗并結(jié)束處理。當(dāng)在步驟S708中判定為劃分層級(jí)不是存在有效比特的最上位劃分層級(jí)時(shí)(劃分層級(jí)是存在有效比特的最上位劃分層級(jí)下位的劃分層級(jí)時(shí)),進(jìn)到步驟S709,對(duì)劃分層級(jí)加上1,前進(jìn)到步驟S709a,將開頭編號(hào)除以2而得到的商設(shè)定為開頭編號(hào),返回到步驟S703a。當(dāng)返回到步驟S702時(shí),反復(fù)進(jìn)行上述處理,逐個(gè)搜索關(guān)于上位劃分層級(jí)的多層劃分分配表的分配狀態(tài)。當(dāng)搜索的結(jié)果是取得空狀態(tài)的區(qū)域時(shí),進(jìn)到步驟S710。在步驟S710中,將設(shè)定為劃分編號(hào)的值指向的多層劃分分配表的分配狀態(tài)設(shè)定為使用中,結(jié)束處理。作為圖7A的處理結(jié)果,將作為臨時(shí)存儲(chǔ)區(qū)域的劃分編號(hào)、對(duì)劃分層級(jí)分別設(shè)定的值和表示取得成功或者取得失敗的數(shù)據(jù)作為搜索結(jié)果輸出。圖7B和圖7C是參照?qǐng)D3所示的多層劃分管理表310利用具體例子說明圖7A所示的空區(qū)域的搜索處理的圖。圖7B所示的例子是分配請(qǐng)求為多比特請(qǐng)求且在分配請(qǐng)求劃分層級(jí)上搜索空區(qū)域 的例子。如圖所示,對(duì)分配請(qǐng)求尺寸220的第I比特(劃分層級(jí)I)和第3比特(劃分層級(jí)3)設(shè)定比特值I。因此,如虛線箭頭224所示,對(duì)分配請(qǐng)求劃分層級(jí)234設(shè)定劃分層級(jí)3的上位劃分層級(jí)4。在圖5的步驟S501和步驟S502的處理中進(jìn)行此前的設(shè)定。接著,根據(jù)圖示的實(shí)線箭頭所示的劃分層級(jí)4的分配請(qǐng)求240,進(jìn)行多層劃分分配表310的附加標(biāo)號(hào)164a的分配前的劃分層級(jí)4的劃分分配表的空搜索244。在圖示的例子中,劃分編號(hào)171是4和5的分配狀態(tài)為“II”表示是使用中,劃分編號(hào)是6的分配狀態(tài)為“00”表示是空。因此,如圖示的實(shí)線箭頭所示進(jìn)行空區(qū)域的取得274a,如附加標(biāo)號(hào)164b的分配后的劃分層級(jí)4的劃分分配表所示,對(duì)劃分編號(hào)171為6的分配狀態(tài)設(shè)定“11”,表示是使用中。結(jié)果,如利用圖示的箭頭274對(duì)應(yīng)示出的那樣,對(duì)分區(qū)311分配劃分層級(jí)是4且劃分編號(hào)是6的區(qū)域作為一次分配區(qū)域280。利用圖7A所示的步驟S704 步驟S707的循環(huán)處理和步驟S710的處理來執(zhí)行上述一次分配區(qū)域280的分配。接著,根據(jù)圖7C所示的例子,說明分配請(qǐng)求是單比特請(qǐng)求且在分配請(qǐng)求劃分層級(jí)上不能搜索空區(qū)域的情況。在圖7C中沒有記載分配請(qǐng)求尺寸220,但是,虛線箭頭所示的分配請(qǐng)求241a是分配請(qǐng)求劃分層級(jí)I的分配請(qǐng)求,因而分配請(qǐng)求是僅第I比特為I的單比特請(qǐng)求。當(dāng)在分配請(qǐng)求劃分層級(jí)上不能搜索空區(qū)域時(shí),在圖7A所示的流程中,在上位劃分層級(jí)上發(fā)現(xiàn)空區(qū)域之前,反復(fù)進(jìn)行在步驟S706中分支到步驟S708并經(jīng)由步驟S709返回到步驟S702的循環(huán)處理。與該反復(fù)處理對(duì)應(yīng)的處理是,如圖7C所示,從下位劃分層級(jí)(在圖7C中為劃分層級(jí)I)起依次參照上位劃分層級(jí)的劃分分配表,在搜索后的劃分層級(jí)內(nèi)沒有空狀態(tài)區(qū)域時(shí)進(jìn)一步搜索上位劃分層級(jí)。關(guān)于從劃分層級(jí)I開始的各個(gè)劃分層級(jí)的區(qū)域,從開頭編號(hào)起依次搜索空狀態(tài)。首先,請(qǐng)求搜索圖示的虛線箭頭241a所示的分配請(qǐng)求劃分層級(jí)即劃分層級(jí)I的空區(qū)域,對(duì)于多層劃分分配表310中的劃分層級(jí)I的劃分分配表161的分配狀態(tài)下,以劃分編號(hào)升序的方式從開頭編號(hào)即劃分編號(hào)32到末尾編號(hào)即劃分編號(hào)57搜索空狀態(tài)(參照?qǐng)D7C的箭頭241b)。在圖示的例子中,即使搜索到劃分編號(hào)是末尾編號(hào)57的區(qū)域也沒有空狀態(tài)的區(qū)域,因而請(qǐng)求搜索對(duì)圖中虛線箭頭242a所示的劃分層級(jí)加上I而得到的上位劃分即劃分層級(jí)2的空區(qū)域。然后,對(duì)于劃分層級(jí)2的劃分分配表162的分配狀態(tài),以劃分編號(hào)升序的方式從開頭編號(hào)即劃分編號(hào)16到末尾編號(hào)即劃分編號(hào)28搜索空狀態(tài)(參照?qǐng)D7C的箭頭242b)。即使搜索到劃分編號(hào)是末尾編號(hào)28的區(qū)域也沒有空狀態(tài)的區(qū)域,因而請(qǐng)求搜索對(duì)劃分層級(jí)加上I而得到的上位劃分即劃分層級(jí)3的空狀態(tài)(參照?qǐng)D7C的箭頭243a)。同樣關(guān)于劃分層級(jí)3的劃分分配表163,也依次搜索從開頭編號(hào)即劃分編號(hào)8的區(qū)域到末尾編號(hào)即劃分編號(hào)13的區(qū)域的分配狀態(tài)(參照?qǐng)D7C的箭頭243b),但是沒有得到空區(qū)域,因而請(qǐng)求對(duì)劃分層級(jí)加上I而搜索上位劃分即劃分層級(jí)4的空區(qū)域(參照?qǐng)D7C的244a)。在圖7C的例示中,附加標(biāo)號(hào)164a的分配前的劃分層級(jí)4的劃分分配表的空區(qū)域搜索(參照?qǐng)D7C的244b)的結(jié)果是,得到劃分編號(hào)是5的區(qū) 域作為分配狀態(tài)是“00”的空區(qū)域,如圖7C的箭頭所示的空取得244c對(duì)應(yīng)示出的那樣,將標(biāo)注標(biāo)號(hào)164b的分配后的劃分層級(jí)4的劃分分配表的劃分編號(hào)5的分配狀態(tài)變更成表示使用中的“II”。即,如箭頭244d所示,虛擬分配劃分編號(hào)5的區(qū)域,作為虛擬分配區(qū)域280a來取得。此外,關(guān)于空區(qū)域的搜索處理,不僅限于以升序的方式搜索上述劃分編號(hào)的方法,還可以采用任意的搜索算法。通過以上參照?qǐng)D7A 圖7C進(jìn)行說明的處理,得到一次分配區(qū)域或者虛擬分配區(qū)域。圖8A是詳細(xì)說明圖6的步驟S604的處理的圖,是說明多層劃分在步驟S601的處理中得到的虛擬分配區(qū)域并得到分配請(qǐng)求劃分層級(jí)的劃分編號(hào)的一次分配區(qū)域的處理流程例的圖。首先,在步驟S804中,將取得的劃分層級(jí)減I而得到的值設(shè)定為劃分層級(jí),進(jìn)到步驟 S808。在步驟S808中,將劃分編號(hào)的2倍值設(shè)定為劃分編號(hào)。步驟S808的最初處理開始時(shí)的劃分編號(hào)是指示在圖7A所示的步驟S710中將分配狀態(tài)設(shè)定為使用中的多層劃分分配表的記錄的劃分編號(hào)。接著,在步驟S809中,將劃分編號(hào)加上I而得到的值設(shè)定為對(duì)的劃分編號(hào)。例如,將某劃分層級(jí)中的劃分編號(hào)是“10”的區(qū)域二分割后的下一位劃分層級(jí)中的區(qū)域的劃分編號(hào)為“20”、“21”。接著,在步驟S810中,將劃分編號(hào)指向的多層劃分分配表的分配狀態(tài)設(shè)定為使用中,在步驟S811中,將對(duì)的劃分編號(hào)指向的多層劃分分配表的分配狀態(tài)設(shè)定為空,進(jìn)到步驟 S812。在步驟S812中,判定劃分層級(jí)是否大于分配請(qǐng)求劃分層級(jí),如果大于分配請(qǐng)求劃分層級(jí)則分支到步驟S813,對(duì)劃分層級(jí)中設(shè)定的值減1,返回步驟S808。如果判定結(jié)果為不大于即劃分層級(jí)與分配請(qǐng)求劃分層級(jí)相等,則結(jié)束處理。圖8A所示的處理是以進(jìn)行虛擬分配為前提的,因而已取得的劃分層級(jí)大于分配請(qǐng)求劃分。并且,一邊對(duì)劃分層級(jí)逐漸減I 一邊反復(fù)進(jìn)行步驟S808 步驟S813的循環(huán)處理,因而在步驟S812中判定為劃分層級(jí)不大于分配請(qǐng)求劃分層級(jí)是在劃分層級(jí)與分配請(qǐng)求劃分層級(jí)相等的時(shí)刻。根據(jù)以上的處理,對(duì)虛擬分配的區(qū)域進(jìn)行多層劃分,得到一次分配的區(qū)域。上述步驟S804的處理和步驟S808 步驟S813的循環(huán)處理是從虛擬分配的區(qū)域開始,將區(qū)域分割成下一位劃分層級(jí)的2個(gè)區(qū)域?qū)Γ瑢⑿√?hào)側(cè)區(qū)域的分配狀態(tài)設(shè)定為使用中,將大號(hào)側(cè)區(qū)域的分配狀態(tài)設(shè)定為空。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,在不將取得的全部虛擬分配區(qū)域設(shè)為使用中的情況下,在虛擬分配區(qū)域的劃分編號(hào)的小號(hào)側(cè)對(duì)分配請(qǐng)求劃分層級(jí)的區(qū)域進(jìn)行一次分配,將剩余連續(xù)區(qū)域設(shè)定為空,因而能夠有效地利用區(qū)域。此外,本領(lǐng)域的普通技術(shù)人員可知,不僅限于在劃分編號(hào)的小號(hào)側(cè)進(jìn)行一次分配,也可以在大號(hào)側(cè)進(jìn)行一次分配。圖8B是參照?qǐng)D3所示的多層劃分管理表310利用具體例子說明對(duì)圖8A所示的虛擬分配區(qū)域進(jìn)行多層劃分來得到一次分配區(qū)域的處理的圖。圖SB所示的例子與圖7C例示的同樣,分配請(qǐng)求為單比特請(qǐng)求的分配請(qǐng)求,從圖7C所示的虛擬分配區(qū)域280a中取得一次分配區(qū)域。在圖8B中示出標(biāo)號(hào)為280a且是一次分配前的分配狀態(tài)的虛擬分配區(qū)域(劃分編、號(hào)5)。根據(jù)請(qǐng)求劃分從虛擬分配區(qū)域280a起的箭頭241所示的、虛擬分配區(qū)域的劃分層級(jí)4到劃分層級(jí)I的相關(guān)各個(gè)區(qū)域的多層劃分請(qǐng)求,從附加有標(biāo)號(hào)164b的劃分層級(jí)4的劃分分配表中開始處理。在劃分分配表164b中存儲(chǔ)與圖7C所示相同的分配狀態(tài)。根據(jù)通過虛擬分配將分配狀態(tài)設(shè)定為使用中的、從劃分層級(jí)4的劃分分配表164b的劃分編號(hào)171的值為5的記錄起的箭頭274a所示的劃分請(qǐng)求,將劃分層級(jí)3的劃分分配表163中的劃分編號(hào)10的劃分單元的劃分中的區(qū)域(以下,表述為“劃分編號(hào)10的區(qū)域”)的分配狀態(tài)設(shè)定為使用中“11”,對(duì)劃分編號(hào)10的劃分單元和構(gòu)成劃分對(duì)293a的劃分編號(hào)11的劃分單元的劃分中的區(qū)域(以下,表述為“劃分編號(hào)10的區(qū)域和構(gòu)成劃分對(duì)293a的劃分編號(hào)11的區(qū)域”)的分配狀態(tài)設(shè)定為空“00”。通過劃分層級(jí)3中的圖8A的步驟S808 步驟S811的處理來執(zhí)行該設(shè)定處理。最初的劃分編號(hào)是5,在步驟S808中對(duì)劃分編號(hào)設(shè)定使上述劃分編號(hào)成為2倍而得到的10。另外,作為對(duì)的劃分編號(hào)得到11。以下同樣地,與使用中的劃分編號(hào)10的記錄對(duì)應(yīng)地,根據(jù)箭頭273a所示的劃分請(qǐng)求,將劃分層級(jí)2的劃分分配表162中的劃分編號(hào)20的區(qū)域的分配狀態(tài)設(shè)定為使用中“11”,將劃分編號(hào)20的區(qū)域和構(gòu)成劃分對(duì)292a的劃分編號(hào)21的分配狀態(tài)設(shè)定為空“00”。另一方面,將劃分編號(hào)11的分配狀態(tài)設(shè)定為空,因而如利用箭頭273b對(duì)應(yīng)示出的那樣,對(duì)附加有標(biāo)號(hào)280b的一次分配后的虛擬分配區(qū)域分配空狀態(tài)的劃分編號(hào)11的區(qū)域283b。接著,與使用中的劃分編號(hào)20的記錄對(duì)應(yīng)地,根據(jù)箭頭272a所示的劃分請(qǐng)求,將劃分層級(jí)I的劃分分配表161中的劃分編號(hào)40的區(qū)域的分配狀態(tài)設(shè)定為使用中“11”,將劃分編號(hào)40的區(qū)域和構(gòu)成劃分對(duì)291a的劃分編號(hào)41的分配狀態(tài)設(shè)定為空“00”。然后,將劃分編號(hào)21的分配狀態(tài)設(shè)定為空,因而如利用箭頭272b對(duì)應(yīng)示出的那樣,對(duì)一次分配后的虛擬分配區(qū)域280b分配空狀態(tài)的劃分編號(hào)21的區(qū)域282b。多層劃分請(qǐng)求是到劃分層級(jí)1,因而如利用箭頭271a和箭頭271b分別對(duì)應(yīng)示出的那樣,對(duì)一次分配后的虛擬分配區(qū)域280b —次分配劃分編號(hào)40的區(qū)域281a作為使用中,分配劃分編號(hào)41的區(qū)域281b作為空。根據(jù)上述多層劃分,將一次分配后的虛擬分配區(qū)域280b分割成如圖所示的使用中的一次分配區(qū)域281a和由空的區(qū)域281b、282b、283b構(gòu)成的與一次分配區(qū)域281a相鄰的相鄰多層區(qū)域290b。
圖9是詳細(xì)說明圖5的步驟S505的處理的圖,是說明從多層劃分分配表中搜索分配請(qǐng)求劃分層級(jí)的空候選區(qū)域并取得空候選區(qū)域的劃分編號(hào)的處理流程例的圖。將后面將會(huì)參照?qǐng)DIlA 圖IlC說明的構(gòu)成分割多比特請(qǐng)求中的一次分配區(qū)域進(jìn)行二次分配時(shí)的剩余相鄰多層區(qū)域的區(qū)域的分配狀態(tài)設(shè)定為空候選。與空區(qū)域搜索同樣地進(jìn)行空候選區(qū)域搜索,空候選區(qū)域搜索的圖9所示的流程與圖6所示的空區(qū)域搜索的流程對(duì)應(yīng),圖9的步驟S901 步驟S904是在圖6所示的步驟S601 步驟S604中,將空區(qū)域改作空候選區(qū)域,因而省略說明。另外,詳細(xì)說明圖9的步驟S901的處理的圖IOA是說明從多層劃分分配表中搜索分配請(qǐng)求劃分層級(jí)的尺寸以上的空候選區(qū)域并取得空候選區(qū)域的劃分編號(hào)的處理流程的圖,與圖7A所示的說明從多層劃分分配表中搜索分配請(qǐng)求劃分層級(jí)的尺寸以上的空區(qū)域并取得空區(qū)域的劃分編號(hào)的處理流程的圖對(duì)應(yīng)。關(guān)于圖IOA的步驟S1001 步驟SlOlOdX在步驟S1005中判定分配狀態(tài)是否是空候選而與在圖7A的步驟705中是判定分配狀態(tài)是否是空這一點(diǎn)不同,因而也省略關(guān)于圖IOA的說明。
另外同樣地,詳細(xì)說明圖9的步驟S904的處理的圖IOB是說明對(duì)在步驟S901的處理中得到的虛擬分配區(qū)域進(jìn)行多層分區(qū)并取得分配請(qǐng)求劃分層級(jí)的劃分編號(hào)的一次分配區(qū)域的處理流程的圖,與圖8A所示的說明對(duì)在圖6的步驟S601的處理中得到的虛擬分配區(qū)域進(jìn)行多層分區(qū)并取得分配請(qǐng)求劃分層級(jí)的劃分編號(hào)的一次分配區(qū)域的處理流程的圖對(duì)應(yīng)。關(guān)于圖IOB的步驟S1024 步驟S1033,僅在步驟S1031中將對(duì)的劃分編號(hào)指向的多層劃分分配表的分配狀態(tài)設(shè)定為空候選而在圖8A的步驟811中是將對(duì)的劃分編號(hào)指向的多層劃分分配表的分配狀態(tài)設(shè)定為空這一點(diǎn)不同,因而還省略關(guān)于圖IOB的說明。接著,參照?qǐng)DIlA 圖IlC詳細(xì)說明圖5的步驟S508的處理。圖IlA是說明將取得的劃分編號(hào)的一次分配區(qū)域劃分成多層區(qū)域并得到分配請(qǐng)求劃分的二次分配區(qū)域的前級(jí)處理流程的圖。首先,在步驟S1103中,將取得的一次分配區(qū)域的劃分編號(hào)的2倍值設(shè)定為劃分編號(hào)。在圖7B的例示中,取得的一次分配區(qū)域的劃分編號(hào)是6,因而利用該步驟S1103的處理將12設(shè)定為劃分編號(hào)。接著,在步驟S1104中,為了分割一次分配區(qū)域,根據(jù)分配請(qǐng)求尺寸生成由2進(jìn)制表示分配請(qǐng)求尺寸的比特值構(gòu)成的分配結(jié)構(gòu)劃分表。然后,在步驟S1105中,將取得的劃分層級(jí)減I而得到的值設(shè)定為分割劃分層級(jí)。在圖7B的例示中,取得的一次分配區(qū)域的劃分層級(jí)是4,因而利用該步驟S1105的處理,將3設(shè)定為分割劃分層級(jí)。接著,在步驟S1106中,將分配結(jié)構(gòu)劃分表中的比特值是I的比特位置且從下位第0比特觀察最下位的比特位置設(shè)定為最小分割劃分層級(jí),進(jìn)到圖IlB的步驟S1110。例如,在分配請(qǐng)求尺寸如圖7B所示且分配結(jié)構(gòu)劃分表的比特值是“1010”時(shí),將比特位置I設(shè)定為最小分割劃分層級(jí)。圖IlB是說明將取得的劃分編號(hào)的一次分配區(qū)域分割成多層劃分并得到分配請(qǐng)求劃分的二次分配區(qū)域的后級(jí)處理流程的圖。在步驟SlllO中,將劃分編號(hào)加上I而得到的值設(shè)定為對(duì)的劃分編號(hào)。接著,在步驟Sllll中,從分割劃分層級(jí)指向的分配結(jié)構(gòu)劃分表中取出比特值,在步驟SI 112中判定取出的比特值是否是I。
在步驟S1112中判定為取出的比特值不是I (是0)時(shí),分支到步驟S1113,當(dāng)判定為取出的比特值是I時(shí),進(jìn)到步驟S1115。在步驟S1113中,將劃分編號(hào)指向的多層劃分分配表的分配狀態(tài)設(shè)定為使用中,在步驟S1114中,將對(duì)的劃分編號(hào)指向的多層劃分分配表的分配狀態(tài)設(shè)定為空候選,進(jìn)到步驟SI 119。另一方面,在步驟SI 115中,判定分割劃分層級(jí)是否是在步驟SI 106中設(shè)定的最小分割劃分層級(jí)。當(dāng)分割劃分層級(jí)與最小分割劃分層級(jí)不等時(shí),分支到步驟S1116,在相等的情況下進(jìn)到步驟SI 121。在步驟S1116中,將劃分編號(hào)指向的多層劃分分配表的分配狀態(tài)設(shè)定為使用中,在步驟S1117中,將對(duì)的劃分編號(hào)指向的多層劃分分配表的分配狀態(tài)設(shè)定為使用中。接著,在步驟SI 118中,對(duì)劃分編號(hào)加上I,進(jìn)到步驟SI 119。
在步驟SI 119中,使劃分編號(hào)成為2倍,進(jìn)到步驟SI 120,對(duì)分割劃分層級(jí)減1,返回到步驟S1110。當(dāng)在步驟S1115中判定為分割劃分層級(jí)與最小分割劃分層級(jí)相等而進(jìn)到步驟S1121時(shí),將劃分編號(hào)指向的多層劃分分配表的分配狀態(tài)設(shè)定為使用中,在步驟S1122中,將對(duì)的劃分編號(hào)指向的多層劃分分配表的分配狀態(tài)設(shè)定為空候選,結(jié)束處理。圖IlC是參照?qǐng)D3所示的多層劃分分配表310利用具體例子說明對(duì)圖IlA和圖IlB所示的一次分配區(qū)域進(jìn)行多層分區(qū)并得到分配請(qǐng)求劃分的二次分配區(qū)域的處理的圖。圖IlC例示的是將設(shè)定為分配請(qǐng)求尺寸220的值和一次分配區(qū)域作為劃分編號(hào)6的一次分配區(qū)域280,因而對(duì)圖7B例示的一次分配繼續(xù)進(jìn)行二次分配。與圖7B所示的相同,2進(jìn)制表示分配請(qǐng)求尺寸的分配請(qǐng)求尺寸220的第I比特和第3比特的比特值是I。分配結(jié)構(gòu)劃分表230如下面0 5所示的那樣由記錄構(gòu)成,該記錄由與劃分層級(jí)對(duì)應(yīng)的I比特構(gòu)成,在圖IlC的例示中,具有與劃分層級(jí)0到最上位劃分層級(jí)5對(duì)應(yīng)的6個(gè)記錄。如圖中虛線箭頭223、221對(duì)應(yīng)示出的那樣,根據(jù)以2進(jìn)制形式表示分配請(qǐng)求尺寸時(shí)的比特值,設(shè)定對(duì)應(yīng)的劃分層級(jí)的記錄的比特值。利用圖5的步驟S501和圖IlA的步驟S1104的處理來進(jìn)行此前的設(shè)定。基于上述分配結(jié)構(gòu)劃分表230的比特值來執(zhí)行二次分配。根據(jù)直到從一次分配區(qū)域280起的箭頭244所示的一次分配區(qū)域的最小分割劃分層級(jí)即劃分層級(jí)I為止的多層劃分請(qǐng)求,從附加有標(biāo)號(hào)164b的取得劃分層級(jí)即劃分層級(jí)4的劃分分配表中開始多層劃分。在劃分分配表164b中存儲(chǔ)有與圖7B所示相同的分配狀態(tài)。關(guān)于劃分層級(jí)4的劃分編號(hào)6的區(qū)域的劃分請(qǐng)求274c,如虛線箭頭233對(duì)應(yīng)示出的那樣,分配結(jié)構(gòu)劃分表230的與劃分層級(jí)4減I而得到的劃分層級(jí)3對(duì)應(yīng)的比特值是1,因而利用圖IlB的步驟SI 116與步驟SI 117的處理,將劃分層級(jí)3的劃分分配表163中的劃分編號(hào)12和劃分編號(hào)13雙方的劃分單元的分配狀態(tài),設(shè)定為表示使用中的“11”,其中,劃分編號(hào)12和劃分編號(hào)13是劃分層級(jí)3的區(qū)域且是同與劃分編號(hào)6的區(qū)域占同一區(qū)域的I組區(qū)域?qū)?yīng)的劃分對(duì)293b。通過圖IlB的步驟S1117后的步驟S1118的處理對(duì)劃分編號(hào)加1,因而劃分層級(jí)3的劃分編號(hào)13的區(qū)域接著成為劃分請(qǐng)求273d的對(duì)象。如虛線箭頭232對(duì)應(yīng)示出的那樣,與分配結(jié)構(gòu)劃分表230的劃分層級(jí)2對(duì)應(yīng)的比特值是0,因而通過圖IlB的步驟SI 113和步驟SI 114的處理,將劃分層級(jí)2的劃分分配表162中的劃分編號(hào)26的分配狀態(tài)設(shè)定為表示使用中的“11”,將劃分編號(hào)27的分配狀態(tài)設(shè)定為表示空候選的“01”,其中,劃分編號(hào)26和劃分編號(hào)27是劃分層級(jí)2的區(qū)域且是同與劃分編號(hào)13的區(qū)域占同一區(qū)域的I組區(qū)域?qū)?yīng)的劃分對(duì)292b。然后,劃分層級(jí)2的劃分編號(hào)26的區(qū)域成為劃分請(qǐng)求272c的對(duì)象。如虛線箭頭231對(duì)應(yīng)示出的那樣,與分配結(jié)構(gòu)劃分表230的劃分層級(jí)I對(duì)應(yīng)的比特值是I且劃分層級(jí)I是最小分割劃分層級(jí),因而根據(jù)圖IlB的步驟S1121和步驟S1122的處理,將劃分層級(jí)I的劃分分配表161中的劃分編號(hào)52的分配狀態(tài)設(shè)定為表示使用中的“11”,將劃分編號(hào)53的分配狀態(tài)設(shè)定為表示空候選的“01”,其中,劃分編號(hào)52和劃分編號(hào)53是劃分層級(jí)I的區(qū)域且是同與劃分編號(hào)26的區(qū)域占同一區(qū)域的I組區(qū)域?qū)?yīng)的劃分對(duì)291b。以上,與二次分配相伴的多層劃分分配表310的更新完成。利用該多層劃分分配表310的更新,如二次分配后的一次分配區(qū)域280c所示,對(duì)一次分配區(qū)域280進(jìn)行多層劃分。如箭頭273c對(duì)應(yīng)示出的那樣,將劃分層級(jí)3的劃分編號(hào)12的區(qū)域283c分配為使用中, 與其連續(xù),如箭頭271c對(duì)應(yīng)示出的那樣,將劃分層級(jí)I的劃分編號(hào)52的區(qū)域281c分配為使用中,作為多層區(qū)域分配二次分配區(qū)域290c。另一方面,如箭頭272d對(duì)應(yīng)示出的那樣,將劃分層級(jí)2的劃分編號(hào)27的區(qū)域282d分配為空候選,與其連續(xù),如箭頭271d對(duì)應(yīng)示出的那樣,將劃分層級(jí)I的劃分編號(hào)53的區(qū)域281d分配為空候選,同時(shí)分配為相鄰多層區(qū)域290d。在二次分配區(qū)域290c中,以劃分層級(jí)降序的方式分配區(qū)域,在相鄰多層區(qū)域290d中,以與二次分配區(qū)域相反的順序即劃分層級(jí)升序的方式分配區(qū)域。即使在進(jìn)行二次分配的情況下,也將在一次分配中取得的劃分編號(hào)作為分配劃分編號(hào)返回到文件系統(tǒng)中,但由上述說明可知,在一次分配中取得的劃分編號(hào)(在上述例子中為6)的區(qū)域的開頭位置與進(jìn)行二次分配的二次分配區(qū)域的開頭位置相同,因而能夠與來自文件操作系統(tǒng)的指定劃分編號(hào)的分配區(qū)域的地址詢問對(duì)應(yīng)。此外,在上述說明中,從劃分編號(hào)的小號(hào)側(cè)進(jìn)行二次分配,但是,本領(lǐng)域的普通技術(shù)人員可知,也能夠如先前對(duì)虛擬分配后的一次分配記述的那樣,從劃分編號(hào)的大號(hào)側(cè)進(jìn)行二次分配。接著,參照?qǐng)D12 圖17C說明本發(fā)明一個(gè)實(shí)施方式中的分配區(qū)域的釋放。與區(qū)域分配相同,還利用分配系統(tǒng)的多層劃分管理部進(jìn)行基于文件刪除等的區(qū)域釋放處理。圖12是說明釋放分配區(qū)域并嘗試連接空區(qū)域的整個(gè)處理的概括處理流程例的圖??筛鶕?jù)圖12所示的分配區(qū)域的釋放處理和空區(qū)域的連接,重新設(shè)定包含釋放后的分配區(qū)域的區(qū)域的分配狀態(tài),再次分配該區(qū)域。如圖所示,在步驟S1201中,將分配區(qū)域編號(hào)設(shè)定為劃分編號(hào)。在將作為釋放對(duì)象的區(qū)域分配到文件時(shí),該分配區(qū)域編號(hào)返回到文件系統(tǒng),可包含于來自文件系統(tǒng)的分配區(qū)域的釋放請(qǐng)求中。另外,在此情況下還可同時(shí)包含分配請(qǐng)求尺寸。接著,在步驟S1202中,利用設(shè)定的劃分編號(hào)來檢索多層劃分管理表,求出與該劃分編號(hào)對(duì)應(yīng)的劃分層級(jí)。后面將會(huì)參照?qǐng)D13詳細(xì)說明步驟S1202的處理。接著,進(jìn)到步驟S1203,判定在步驟S1202的處理中是否已求出劃分層級(jí),在沒有求出的情況下,結(jié)束處理。在已求出的情況下,進(jìn)到步驟S1204。在步驟S1204中,將在步驟S1202的處理中求出的劃分層級(jí)設(shè)定為釋放劃分層級(jí),在步驟S1205中,對(duì)與連接請(qǐng)求相應(yīng)的臨時(shí)存儲(chǔ)區(qū)域初始設(shè)定有作為嘗試連接空區(qū)域的標(biāo)
O 接著,在步驟S1206中,嘗試劃分編號(hào)指向的一次分配區(qū)域中包含的區(qū)域的釋放和空區(qū)域的連接。如果最初的分配請(qǐng)求是單比特請(qǐng)求,則將在步驟S1201中設(shè)定的劃分編號(hào)的分配狀態(tài)設(shè)定為空,結(jié)束步驟S1206的處理。如果最初的分配請(qǐng)求是多比特請(qǐng)求,則不僅進(jìn)行二次分配并進(jìn)行二次分配區(qū)域的釋放,還嘗試連接相鄰多層區(qū)域的空候選區(qū)域與釋放后的區(qū)域并將上位劃分層級(jí)的區(qū)域的分配狀態(tài)設(shè)定為空。后面將會(huì)參照?qǐng)D14A、圖14B詳細(xì)說明步驟S1206的處理。接著,在步驟S1207中,判定是否具有連接請(qǐng)求。如果沒有連接請(qǐng)求則結(jié)束處理,如果具有連接請(qǐng)求,則在步驟S1208中,嘗試連接劃分編號(hào)指向的一次分配區(qū)域和相鄰的相鄰區(qū)域并將上位區(qū)域的分配狀態(tài)設(shè)定為空。依據(jù)后面的說明可變得更加清楚,具有連接請(qǐng)求而進(jìn)到步驟S1208是在步驟S1206的處理中釋放一次分配區(qū)域的情況下。后面將會(huì)參照?qǐng)D17A、圖17B以及圖17C詳細(xì)說明步驟S1208的處理。當(dāng)步驟S1208的處理結(jié)束時(shí),圖12所示的處理結(jié)束。圖13是詳細(xì)說明圖12的步驟S1202的處理的圖,是說明根據(jù)劃分編號(hào)檢索多層劃分管理表并求出與該劃分編號(hào)對(duì)應(yīng)的劃分層級(jí)的處理流程例的圖。首先,在步驟S1301中,從最上位劃分層級(jí)管理表中取出最上位劃分層級(jí)。然后,在步驟S1302中,判定最上位劃分層級(jí)指向的主劃分編號(hào)管理表的主劃分編號(hào)是否有效。該判定相當(dāng)于判定分區(qū)結(jié)構(gòu)主劃分表是單比特結(jié)構(gòu)還是多比特結(jié)構(gòu)。如果步驟S1302的判定結(jié)果是否定的即分區(qū)結(jié)構(gòu)主劃分表是多比特結(jié)構(gòu),則在步驟S1303中,將最上位劃分層級(jí)減I而得到的值設(shè)定為劃分層級(jí),進(jìn)到步驟S1305。另一方面,如果是肯定的,則在步驟S1304中,將最上位劃分層級(jí)設(shè)定為劃分層級(jí),進(jìn)到步驟
51305。在步驟S1305中,將以最上位劃分層級(jí)減去劃分層級(jí)而得到的值為指數(shù)的2的冪乘設(shè)定為開頭編號(hào)。接著,在步驟S1306中,從末尾編號(hào)管理表中取出劃分層級(jí)指向的末尾編號(hào),在步驟S1307中,判定劃分編號(hào)是否位于在步驟S1305中設(shè)定的開頭編號(hào)與在步驟S1306中取出的末尾編號(hào)的范圍內(nèi)。在該判定是肯定的情況下成為具有劃分層級(jí)而返回劃分層級(jí),結(jié)束處理。在否定的情況下,進(jìn)到步驟S1308。在步驟S1308中,判定劃分層級(jí)是否是最下位的劃分層級(jí)。當(dāng)劃分層級(jí)是最下位的劃分層級(jí)時(shí),成為沒有相應(yīng)的劃分層級(jí),結(jié)束處理。當(dāng)劃分層級(jí)不是最下位的劃分層級(jí)時(shí),進(jìn)到步驟S1309a,使開頭編號(hào)成為2倍,在步驟S1309中對(duì)劃分層級(jí)減I并返回步驟
51306。一邊對(duì)劃分層級(jí)逐漸減I 一邊反復(fù)進(jìn)行上述步驟S1306 步驟S1309的循環(huán)處理,在某劃分層級(jí)的步驟S1307的判定中,劃分編號(hào)處于在步驟S1305中設(shè)定的開頭編號(hào)或者在步驟S1309a中設(shè)定的開頭編號(hào)與在步驟S1306中取出的末尾編號(hào)的范圍內(nèi)時(shí)的劃分層級(jí),是劃分編號(hào)指向的劃分單元涉及的劃分層級(jí)。在雖然劃分層級(jí)成為最下位的劃分層級(jí),但是劃分編號(hào)不處于在步驟S1305中設(shè)定的開頭編號(hào)或者在步驟S1309a中設(shè)定的開頭編號(hào)與在步驟S1306中取出的末尾編號(hào)的范圍內(nèi)時(shí),劃分編號(hào)是不當(dāng)?shù)木幪?hào),由此可知相應(yīng)的劃分層級(jí)不存在。接著,參照?qǐng)D14A、圖14B詳細(xì)說明圖12的步驟S1206的處理。圖14A是說明嘗試劃分編號(hào)指向的一次分配區(qū)域中包含的區(qū)域的釋放和空區(qū)域的連接的處理流程例的圖。首先,在步驟S1401中,根據(jù)分配請(qǐng)求尺寸生成分配結(jié)構(gòu)劃分表。分配請(qǐng)求尺寸如先前所述可以包含在進(jìn)行區(qū)域釋放請(qǐng)求的文件系統(tǒng)的釋放請(qǐng)求中。與圖IlA所示的步驟S1104的處理同樣地生成分配結(jié)構(gòu)劃分表。圖IlA所示的是關(guān)于多比特請(qǐng)求的分配請(qǐng)求的內(nèi)容,不過顯然在單比特請(qǐng)求的情況下可構(gòu)成比特值是I的一個(gè)比特位置的分配結(jié)構(gòu)劃分表。
接著,在步驟S1402中,將從分配結(jié)構(gòu)劃分表的下位第0比特觀察的最初比特I成 立的比特位置設(shè)定為最小劃分層級(jí)。在步驟S1405中,根據(jù)分配結(jié)構(gòu)劃分表,求出分配區(qū)域內(nèi)的分割分配狀況并壓入分割分配狀況堆棧,進(jìn)到步驟S1407。這里,分割分配狀況是指對(duì)分配區(qū)域進(jìn)行分割分配后的區(qū)域的劃分層級(jí)、劃分編號(hào)、釋放顯示。當(dāng)劃分層級(jí)指向的分配結(jié)構(gòu)劃分表的比特值是I時(shí)具有釋放顯示,當(dāng)比特值是0時(shí)沒有釋放顯示。后面將會(huì)參照?qǐng)D15詳細(xì)說明步驟S1405的處理。在步驟S1407中,彈出分割分配狀況堆棧,讀出劃分層級(jí)、劃分編號(hào)、釋放顯示。接著,在步驟S1409中,判定該讀出的劃分層級(jí)是否是釋放劃分層級(jí),當(dāng)劃分層級(jí)是釋放劃分層級(jí)時(shí)分支到步驟S1416,當(dāng)不是釋放劃分層級(jí)時(shí)進(jìn)到步驟S1411。此外,當(dāng)原來的分配請(qǐng)求是單比特請(qǐng)求時(shí),在最初的步驟S1409的判定處理中分支到步驟S1416。在步驟S1411中,判定是否表示具有在步驟S1407中讀出的釋放顯示。當(dāng)具有釋放顯示時(shí)進(jìn)到步驟S1413,當(dāng)沒有釋放顯示時(shí)進(jìn)到步驟S1412。在步驟S1412中,判定是否具有連接請(qǐng)求。當(dāng)具有連接請(qǐng)求時(shí)進(jìn)到步驟S1413,當(dāng)沒有連接請(qǐng)求時(shí)返回步驟S1407。在步驟S1413中,嘗試釋放劃分編號(hào)指向的劃分對(duì),返回步驟S1407。后面將會(huì)參照?qǐng)D16詳細(xì)說明步驟S1413的處理。在上述步驟1409中判定為劃分層級(jí)與釋放劃分層級(jí)相等而分支的步驟S1416以后的處理是釋放劃分層級(jí)的區(qū)域的釋放處理。在步驟S1416中,判定是否具有連接請(qǐng)求,當(dāng)沒有連接請(qǐng)求時(shí)結(jié)束處理,當(dāng)具有連接請(qǐng)求時(shí),在步驟S1417中,將劃分編號(hào)指向的多層劃分分配表的分配狀態(tài)設(shè)定為空并結(jié)束處理。即,即使在多比特請(qǐng)求的情況下,只要具有連接請(qǐng)求,就利用步驟S1417的處理將關(guān)于由二次分配區(qū)域和相鄰多層區(qū)域構(gòu)成的一次分配區(qū)域的分配狀態(tài)設(shè)定為空。圖14B是參照?qǐng)D3所示的多層劃分分配表310利用具體例子來說明嘗試圖14A和后述的圖16所示的一次分配區(qū)域中包含的區(qū)域的釋放和空區(qū)域的連接的處理的圖。圖14B所示的例子是釋放與圖IIC例示的相同的根據(jù)多比特請(qǐng)求二次分配的二次分配區(qū)域,并與相鄰區(qū)域連接而將上位劃分層級(jí)區(qū)域的分配狀態(tài)設(shè)定為空。因此,分配請(qǐng)求尺寸220和分配結(jié)構(gòu)劃分表230中設(shè)定的值與圖IlC所示的相同。圖14B所示的二次分配后的一次分配區(qū)域280c是釋放并連接二次分配區(qū)域之前的分配狀態(tài),圖IlC所示的二次分配后的一次分配區(qū)域280c的空候選即劃分編號(hào)27的區(qū)域282d為使用中。劃分編號(hào)53的區(qū)域281d的分配狀態(tài)保持空候選的狀態(tài)。參照分配結(jié)構(gòu)劃分表230的比特值,從最小劃分層級(jí)即劃分層級(jí)I向上位劃分層級(jí)依次進(jìn)行釋放與連接的處理。首先,在最小劃分層級(jí)即劃分層級(jí)I中,分配結(jié)構(gòu)劃分表230的對(duì)應(yīng)比特值是1(利用虛線箭頭231a示出對(duì)應(yīng))。S卩,由于具有釋放顯示,因而執(zhí)行圖14A的步驟S1413即圖16所示的處理。如劃分層級(jí)I的釋放請(qǐng)求的箭頭251a所示,能夠保障區(qū)域281c的釋放,并且,附加有標(biāo)號(hào)161c的釋放前的劃分層級(jí)I的劃分分配表中的、與劃分編號(hào)171的值是52的區(qū)域成對(duì)的劃分編號(hào)53的區(qū)域的分配狀態(tài)是空候選,因而后面說明的圖16的步驟S1605中的判定是肯定的,具有將由劃分編號(hào)52的區(qū)域和劃分編號(hào)53的區(qū)域構(gòu)成的劃分層級(jí)I的劃分對(duì)291c的上位劃分層級(jí)區(qū)域的分配狀態(tài)設(shè)定為空的連接請(qǐng)求(箭頭241c所示),如附加有標(biāo)號(hào)161d的釋放后的劃分層級(jí)I的劃分分配表所示,將劃分編號(hào)52和對(duì)劃分編號(hào)53的分配狀態(tài)設(shè)定為保留。在將上位劃分層級(jí)區(qū)域設(shè)定為空時(shí),將該區(qū)域中包含的下位劃分層級(jí)區(qū)域的分配狀態(tài)設(shè)定為保留,這與圖3所示的多層劃分分配表310的初始設(shè)定的情況 相同。在劃分層級(jí)2中,分配結(jié)構(gòu)劃分表230的對(duì)應(yīng)比特值是0 (利用虛線箭頭232a示出對(duì)應(yīng)),由于具有連接請(qǐng)求241c,因而進(jìn)行箭頭241d所示的上位劃分區(qū)域即附加有標(biāo)號(hào)162c的釋放前的劃分層級(jí)2的劃分分配表的劃分編號(hào)26的區(qū)域的釋放請(qǐng)求。與劃分編號(hào)26的區(qū)域構(gòu)成劃分對(duì)292c的劃分編號(hào)27的區(qū)域處于使用中,因而圖16的步驟S1605中的判定為否定的,如箭頭242c所示,僅釋放劃分編號(hào)26的區(qū)域,劃分對(duì)292c的分配狀態(tài)如附加有標(biāo)號(hào)162d的釋放后的劃分層級(jí)2的劃分分配表所示為空和使用中。另外,成為沒有連接請(qǐng)求。因此,如虛線箭頭242d所示成為劃分對(duì)292c的上位區(qū)域,如附加有標(biāo)號(hào)163c的釋放前的劃分層級(jí)3的劃分分配表所示,沒有釋放分配狀態(tài)為使用中的劃分編號(hào)13的區(qū)域。接著,在劃分層級(jí)3中,分配結(jié)構(gòu)劃分表230的對(duì)應(yīng)比特值是1(利用虛線箭頭233a示出對(duì)應(yīng)),如劃分層級(jí)3的釋放請(qǐng)求的箭頭253a所示,釋放區(qū)域283c。但是如先前所述,分配狀態(tài)是使用中的劃分編號(hào)13的區(qū)域未被釋放仍是使用中。因此,如箭頭243c所示,僅釋放與劃分編號(hào)13的區(qū)域構(gòu)成劃分對(duì)293c的劃分編號(hào)12的區(qū)域,劃分對(duì)293c的分配狀態(tài)如附加有標(biāo)號(hào)163d的釋放后的劃分層級(jí)3的劃分分配表所示為空和使用中。另外,由于沒有連接請(qǐng)求,因而如虛線箭頭244d所示成為劃分對(duì)293c的上位區(qū)域,如附加有標(biāo)號(hào)164的釋放前的劃分層級(jí)4的劃分分配表所示,分配狀態(tài)是使用中的劃分編號(hào)6的區(qū)域未被釋放,分配狀態(tài)保持是使用中的狀態(tài)。根據(jù)以上區(qū)域的釋放和連接的處理,如利用箭頭273e、272e以及虛線箭頭272f 示出與多層劃分分配表310的分配狀態(tài)的對(duì)應(yīng)那樣,將釋放二次分配區(qū)域后的分配狀態(tài)的一次分配區(qū)域280d劃分成劃分編號(hào)是12的空區(qū)域283c、劃分編號(hào)是26的空區(qū)域282c以及劃分編號(hào)是27的使用中區(qū)域282d。圖15是詳細(xì)說明圖14A的步驟S1405的處理的圖,是說明利用分配結(jié)構(gòu)劃分表求出分配區(qū)域內(nèi)的分割分配狀況并壓入分割分配狀況堆棧的處理流程例的圖。首先,在步驟S1501中,將在圖12所示的步驟S1204中設(shè)定的釋放劃分層級(jí)設(shè)定為劃分層級(jí),進(jìn)到步驟S1502。
在步驟S1502中,從分配結(jié)構(gòu)劃分表中取出劃分層級(jí)指向的比特值作為釋放顯示。當(dāng)比特值是I時(shí)具有釋放顯示,當(dāng)比特值是0時(shí)沒有釋放顯示。然后,在步驟S1502a中,將劃分層級(jí)、劃分編號(hào)、釋放顯示作為分配區(qū)域內(nèi)的分割分配狀況壓入分割分配狀況堆棧。接著,進(jìn)到步驟S1504,判定劃分層級(jí)是否與最小劃分層級(jí)相等。當(dāng)判定為劃分層級(jí)大于最小劃分層級(jí)時(shí),分支到步驟S1504a判定是否具有釋放顯示,當(dāng)沒有釋放顯示時(shí)進(jìn)到步驟S1506,當(dāng)具有釋放顯示時(shí),在步驟S1505中,對(duì)劃分編號(hào)加I并進(jìn)到步驟S1506。在步驟S1506中,使劃分編號(hào)成為2倍,在步驟S1507中對(duì)劃分層級(jí)減I并返回到步驟S1502。在步驟S1504中判定為劃分層級(jí)與最小劃分層級(jí)相等之前反復(fù)進(jìn)行上述步驟S1502 步驟S1507的循環(huán)處理。當(dāng)在步驟S1504中判定為劃分層級(jí)與最小劃分層級(jí)相等時(shí),結(jié)束處理。·在圖14B的例示中,對(duì)劃分編號(hào)初始設(shè)定為6,對(duì)劃分層級(jí)初始設(shè)定為4,分配結(jié)構(gòu)劃分表的劃分層級(jí)4指向的比特值是0,因而最初壓入分割分配狀況堆棧的劃分層級(jí)、劃分編號(hào)、釋放顯示分別是4、6、0 (沒有釋放顯示)。在劃分層級(jí)4的處理中,由于沒有釋放顯示,因而將劃分編號(hào)更新為6 X 2=12,將劃分層級(jí)更新為3。另外,分配結(jié)構(gòu)劃分表的劃分層級(jí)3指向的比特值是I。因此,向分割分配狀況堆棧分別壓入3、12、I (具有釋放顯示)作為劃分層級(jí)、劃分編號(hào)、釋放顯示。在劃分層級(jí)3的處理中,由于具有釋放顯示,因而將劃分編號(hào)更新為(12+1) X 2=26,將劃分層級(jí)更新為2。另外,分配結(jié)構(gòu)劃分表的劃分層級(jí)2指向的比特值是O。因此,向分割分配狀況堆棧分別壓入2、26、0 (沒有釋放顯示)作為劃分層級(jí)、劃分編號(hào)、釋放顯示。在劃分層級(jí)2的處理中,由于沒有釋放顯示,因而將劃分編號(hào)更新為26X2=52,將劃分層級(jí)更新為最小劃分層級(jí)I。另外,分配結(jié)構(gòu)劃分表的劃分層級(jí)I指向的比特值是I。因此,向分割分配狀況堆棧分別壓入1、52、1 (具有釋放顯示)作為劃分層級(jí)、劃分編號(hào)、釋放顯示。圖14B所示的例子是釋放根據(jù)多比特請(qǐng)求而分配的區(qū)域的例子。當(dāng)釋放根據(jù)單比特請(qǐng)求而分配的區(qū)域時(shí),釋放劃分層級(jí)與最小劃分層級(jí)相等,壓入分割分配狀況堆棧的劃分層級(jí)、劃分編號(hào)、釋放顯示僅僅是I組,并且具有釋放顯示。在圖12的步驟S1205中,將作為被壓入上述分割分配狀況堆棧的分割分配狀況的劃分層級(jí)、劃分編號(hào)、釋放顯示初始設(shè)定為“具有”,根據(jù)在后述的圖16所示的處理中更新的連接請(qǐng)求,進(jìn)行圖14B例示的分配區(qū)域的釋放。圖16是詳細(xì)說明圖14A的步驟S1413的處理,是說明嘗試釋放劃分編號(hào)指向的劃分對(duì)的處理流程例的圖。如圖14A所示的處理流程那樣,通過依次彈出分割分配狀況堆棧,按照從最小劃分層級(jí)到釋放劃分層級(jí)的下一位劃分層級(jí)的每個(gè)劃分層級(jí)執(zhí)行圖16所示的處理步驟。如圖所示,首先,在步驟S1602中,將劃分編號(hào)加上值I而得到的值設(shè)定為對(duì)的劃分編號(hào)并進(jìn)到步驟S1604,讀出對(duì)的劃分編號(hào)指向的多層劃分分配表的分配狀態(tài),在步驟S1605中,判定讀出的分配狀態(tài)是否是空或空候選。當(dāng)讀出的分配狀態(tài)是空或空候選時(shí),進(jìn)到步驟S1606,當(dāng)讀出的分配狀態(tài)不是空也不是空候選時(shí),分支到步驟S1609。在步驟S1606中,將劃分編號(hào)指向的多層劃分分配表的分配狀態(tài)設(shè)定為保留,在步驟S1607中,將對(duì)的劃分編號(hào)指向的多層劃分分配表的分配狀態(tài)設(shè)定為保留。接著,在步驟S1608中設(shè)定為具有連接請(qǐng)求并結(jié)束處理。這些步驟S1606 S1608的處理在圖14B的例示中與箭頭241c所示的具有連接請(qǐng)求的處理對(duì)應(yīng)。另一方面,在分支到步驟S1609的情況下,將劃分編號(hào)指向的多層劃分分配表的分配狀態(tài)設(shè)定為空,在步驟S1610中,設(shè)定為沒有連接請(qǐng)求并結(jié)束處理。該處理在圖14B的例示中與僅釋放箭頭242c、243c所示的本區(qū)域的處理對(duì)應(yīng)。接著,參照?qǐng)D17A、圖17B以及圖17C詳細(xì)說明圖12的步驟S1208的處理。
圖17A是說明嘗試連接一次分配區(qū)域與相鄰的空區(qū)域并將上位區(qū)域的分配狀態(tài)設(shè)定為空的處理流程例的圖。如圖所示,在步驟S1701中,將釋放劃分層級(jí)設(shè)定為劃分層級(jí),在步驟S1703中,將分配劃分編號(hào)設(shè)定為劃分編號(hào)并進(jìn)到步驟S1704。在步驟S1704中,從主劃分編號(hào)管理表中取出劃分層級(jí)指向的主劃分編號(hào),進(jìn)到步驟S1705。在步驟S1705中,判定劃分編號(hào)與主劃分編號(hào)是否相等。當(dāng)相等時(shí)分支到步驟S1710,當(dāng)不相等時(shí)進(jìn)到步驟S1706。在步驟S1706中,嘗試釋放劃分編號(hào)指向的劃分對(duì)。后面將會(huì)參照?qǐng)D17C詳細(xì)說明步驟S1706的處理。接著,進(jìn)到步驟S1707,判定是否具有連接請(qǐng)求。當(dāng)沒有連接請(qǐng)求時(shí),意味著在圖16的步驟S1605中判定為對(duì)的劃分編號(hào)的分配狀態(tài)不是空也不是空候選,因而結(jié)束區(qū)域的連接處理,當(dāng)具有連接請(qǐng)求時(shí),分支到步驟S1708以后的處理,嘗試上位劃分層級(jí)的區(qū)域的連接處理。在步驟S1708中,將劃分層級(jí)設(shè)為上一位的層級(jí),前進(jìn)到步驟S1709,將劃分編號(hào)除以值2而得到的商設(shè)定為劃分編號(hào),返回到步驟S1704。此外,在步驟S1708中,劃分編號(hào)根據(jù)步驟S1706中的處理而成為偶數(shù)。在步驟S1705中判定為劃分編號(hào)與主劃分編號(hào)相等時(shí)而分支的步驟S1710中,將劃分編號(hào)指向的多層劃分分配表的分配狀態(tài)設(shè)定為空并結(jié)束處理。在劃分編號(hào)與主劃分編號(hào)相等的情況下,由圖3的例示可知,不存在與該劃分編號(hào)成對(duì)的劃分編號(hào)的區(qū)域,因而在步驟S1710中,將劃分編號(hào)指向的多層劃分分配表的分配狀態(tài)設(shè)定為空并結(jié)束處理。圖17B是參照?qǐng)D3所示的多層劃分分配表310利用具體例子來說明嘗試連接圖17A和后述的圖17C所示的一次分配區(qū)域與相鄰的空區(qū)域并將上位區(qū)域的分配狀態(tài)設(shè)定為空的處理的圖。此外,在以下的說明中,有時(shí)將連接一次分配區(qū)域與相鄰的空區(qū)域并將上位區(qū)域的分配狀態(tài)設(shè)定為空簡稱作連接。圖17B所示的例子是釋放與圖SB例示的內(nèi)容同樣的根據(jù)單比特請(qǐng)求進(jìn)行一次分配的區(qū)域,因而與相鄰區(qū)域連接并將上位劃分層級(jí)的區(qū)域的分配狀態(tài)設(shè)定為空。在圖17B中,作為連接已釋放的一次分配區(qū)域之前的分配狀態(tài)的多層區(qū)域,例示圖8B所示的一次分配后的虛擬分配區(qū)域280b的使用中的劃分編號(hào)40的區(qū)域已被釋放且空的劃分編號(hào)11的區(qū)域283b正在使用中的多層區(qū)域280e。劃分編號(hào)41的區(qū)域281b與劃分編號(hào)21的區(qū)域282b的分配狀態(tài)保持空的狀態(tài)。從釋放劃分層級(jí)即劃分層級(jí)I向不可能再進(jìn)行連接處理的上位劃分層級(jí)依次進(jìn)行連接處理。即,連接與被釋放的劃分編號(hào)40的區(qū)域281a依次相鄰的區(qū)域即不是使用中的區(qū)域。首先,圖12所示的步驟S1207的判定是肯定的,因而對(duì)被釋放的區(qū)域281a進(jìn)行箭頭240e所示的連接請(qǐng)求,進(jìn)行釋放劃分層級(jí)即劃分層級(jí)I的處理。附加有標(biāo)號(hào)161e的劃分層級(jí)I的劃分分配表的與劃分編號(hào)171的值為40的區(qū)域成對(duì)的劃分編號(hào)41的區(qū)域的分配狀態(tài)是空,因而具有將由劃分編號(hào)40的區(qū)域與劃分編號(hào)41的區(qū)域構(gòu)成的劃分對(duì)291d的上位劃分層級(jí)的區(qū)域的分配狀態(tài)設(shè)定為空的連接請(qǐng)求(箭頭241e所示),如附加有標(biāo)號(hào)161f的劃分層級(jí)I的劃分分配表所示,將劃分編號(hào)40和對(duì)的劃分編號(hào)41的分配狀態(tài)設(shè)定為保留。如在圖14B的說明中記述的那樣,當(dāng)將上位劃分層級(jí)的區(qū)域設(shè)定為空時(shí),將該區(qū)域中包 含的下位劃分層級(jí)的區(qū)域的分配狀態(tài)設(shè)定為保留,與圖3所示的多層劃分分配表310的初始設(shè)定的情況相同。在劃分層級(jí)2中,由于具有連接請(qǐng)求,因而如箭頭241f所示進(jìn)行上位劃分區(qū)域即附加有標(biāo)號(hào)162e的連接前的劃分層級(jí)2的劃分分配表的劃分編號(hào)20的區(qū)域的釋放請(qǐng)求。與劃分編號(hào)20的區(qū)域構(gòu)成劃分對(duì)292d的劃分編號(hào)21的區(qū)域?yàn)榭眨蚨缂^242e所示具有連接請(qǐng)求,如附加有標(biāo)號(hào)162f的連接后的劃分層級(jí)2的劃分分配表所示,將劃分編號(hào)20和對(duì)的劃分編號(hào)21的分配狀態(tài)設(shè)定為保留。接著,在劃分層級(jí)3中,由于具有連接請(qǐng)求,因而如箭頭242f所示進(jìn)行上位劃分區(qū)域即附加有標(biāo)號(hào)163e的連接前的劃分層級(jí)2的劃分分配表的劃分編號(hào)10的區(qū)域的釋放請(qǐng)求。與劃分編號(hào)10的區(qū)域構(gòu)成劃分對(duì)293d的劃分編號(hào)11的區(qū)域是使用中,因而如箭頭243e所示僅將劃分編號(hào)10的區(qū)域的分配狀態(tài)設(shè)定為空,劃分對(duì)293d的分配狀態(tài)成為附加有標(biāo)號(hào)163f的連接后的劃分層級(jí)3的劃分分配表所示的空和使用中。然后,由于沒有連接請(qǐng)求,因而如虛線箭頭243f所示成為上位區(qū)域,如劃分層級(jí)4的劃分分配表164所示,分配狀態(tài)是使用中的劃分編號(hào)5的區(qū)域未被釋放,分配狀態(tài)保持使用中的狀態(tài)。根據(jù)以上區(qū)域的釋放和連接的處理,如利用箭頭273e和虛線箭頭272f示出與多層劃分分配表310的分配狀態(tài)的對(duì)應(yīng)那樣,將一次分配區(qū)域與鄰接的空區(qū)域連接后的分配狀態(tài)的多層區(qū)域280f 劃分成劃分編號(hào)是10的空區(qū)域283e和劃分編號(hào)是11的使用中區(qū)域283f0圖17C是詳細(xì)說明圖17A的步驟S1706的處理的圖,是說明嘗試釋放劃分編號(hào)指向的劃分對(duì)的處理流程例的圖。這里,劃分編號(hào)指向的劃分對(duì)是指利用劃分編號(hào)識(shí)別的劃分單元所屬的劃分對(duì)這樣的意思,如后面說明的那樣,該劃分編號(hào)不一定是小號(hào)。換言之,該劃分編號(hào)不一定是偶數(shù)。如圖17A所示的處理流程那樣,從釋放劃分層級(jí)向上位劃分層級(jí)的方向按照每個(gè)劃分層級(jí)執(zhí)行圖17C所示的處理流程,連接空區(qū)域嘗試釋放上位劃分層級(jí)的區(qū)域。如圖所示,首先,在步驟S1711中,判定劃分編號(hào)是否是偶數(shù)。圖17C所示的處理流程與圖16所示的類似,但如先前所述,在圖17A即圖12的步驟S1208的處理中,劃分編號(hào)不一定是偶數(shù)。這是因?yàn)榕c被釋放并且為空狀態(tài)的一次分配區(qū)域?qū)?yīng)的劃分編號(hào)既有偶數(shù)的情況也有奇數(shù)的情況。例如,在圖17B所示的使用中的區(qū)域283f是一次分配區(qū)域且該區(qū)域283f為空時(shí),該劃分編號(hào)是奇數(shù)11。當(dāng)劃分編號(hào)是偶數(shù)時(shí),在步驟S1712中將劃分編號(hào)加上值I而得到的值設(shè)定為對(duì)的劃分編號(hào)并進(jìn)到步驟S1714,當(dāng)劃分編號(hào)是奇數(shù)時(shí),在步驟S1713中將劃分編號(hào)減I而得到的值設(shè)定為對(duì)的劃分編號(hào)并進(jìn)到步驟S1714。在步驟S1714中,讀出對(duì)的劃分編號(hào)指向的多層劃分分配表的分配狀態(tài),在步驟S1715中,判定讀出的分配狀態(tài)是否是空或空候選 。當(dāng)讀出的分配狀態(tài)是空或空候選時(shí),進(jìn)到步驟S1716,當(dāng)讀出的分配狀態(tài)既不是空也不是空候選時(shí),分支到步驟S1719。在步驟S1716中,將劃分編號(hào)指向的多層劃分分配表的分配狀態(tài)設(shè)定為保留,在步驟S1717中,將對(duì)的劃分編號(hào)指向的多層劃分分配表的分配狀態(tài)設(shè)定為保留。接著,在步驟S1718中設(shè)定為具有連接請(qǐng)求并結(jié)束處理。這些步驟S1716 S1718的處理在圖17B的例示中與箭頭241e、242e所示的連接請(qǐng)求的處理對(duì)應(yīng)。另一方面,在分支到步驟S1719的情況下,將劃分編號(hào)指向的多層劃分分配表的分配狀態(tài)設(shè)定為空,在步驟S1720中,設(shè)定為沒有連接請(qǐng)求并結(jié)束處理。這些處理在圖17B的例示中與僅釋放箭頭243e所示的本區(qū)域的處理對(duì)應(yīng)。此外,可知利用使例如圖2C例示的數(shù)據(jù)處理裝置301這樣的計(jì)算機(jī)執(zhí)行本發(fā)明的分區(qū)管理方法的程序,可在計(jì)算機(jī)上構(gòu)建本發(fā)明的分區(qū)管理裝置。因此,以下說明與本發(fā)明的分區(qū)管理裝置相關(guān)的功能塊結(jié)構(gòu)例。圖18A是說明本發(fā)明一個(gè)實(shí)施方式中的分區(qū)管理裝置的功能塊結(jié)構(gòu)例的圖。如圖所示,分區(qū)管理裝置800大致由初始化部810和多層劃分管理部840構(gòu)成。初始化部810和多層劃分管理部840與圖2B例示的分配系統(tǒng)(初始化部)101和分配系統(tǒng)(多層劃分管理部)102相當(dāng)。初始化部810包含取得分區(qū)的尺寸的分區(qū)尺寸取得單元820和多層劃分分配表生成單元830。多層劃分分配表生成單元830在利用互不相同的2的冪乘的和與分區(qū)的分配單位尺寸之積表示分區(qū)的尺寸時(shí),利用尺寸是構(gòu)成該和的各個(gè)2的冪乘與分區(qū)的分配單位尺寸之積的主區(qū)域,按照該尺寸的大小順序分割分區(qū),由此對(duì)該分區(qū)進(jìn)行劃分,將各主區(qū)域每次分割成二分之一而依次劃分成各個(gè)尺寸的區(qū)域,直到成為分區(qū)的分配單位尺寸為止,生成多層劃分分配表并進(jìn)行初始化,該多層劃分分配表與包含主區(qū)域的各個(gè)區(qū)域?qū)?yīng)地存儲(chǔ)表示該各個(gè)區(qū)域各自的分配狀態(tài)的分配信息。另外,多層劃分分配表生成單元830將包含分區(qū)的具有2的冪乘尺寸的最小分區(qū)設(shè)為假想分區(qū),利用規(guī)定該假想分區(qū)的尺寸的2的冪乘尺寸的區(qū)域,將假想分區(qū)劃分成假想主區(qū)域,將該假想主區(qū)域每次分割成二分之一而依次假想地劃分成各個(gè)尺寸的區(qū)域,直到成為分區(qū)的分配單位尺寸為止,按照假想?yún)^(qū)域的劃分層級(jí)順序,在同一劃分層級(jí)中按照該假想?yún)^(qū)域在假想分區(qū)內(nèi)的配置順序分配用于識(shí)別該假想劃分成的假想?yún)^(qū)域的劃分編號(hào)。通過參照?qǐng)D4A 圖4C說明的處理流程例可實(shí)現(xiàn)該多層劃分分配表生成單元830的功能。多層劃分管理部840包含向文件或存儲(chǔ)區(qū)域的空區(qū)域進(jìn)行分配的區(qū)域分配單元850和根據(jù)文件或存儲(chǔ)區(qū)域的分配來釋放分配區(qū)域的區(qū)域釋放單元860。圖18B是說明本發(fā)明一個(gè)實(shí)施方式中的區(qū)域分配單元的功能塊結(jié)構(gòu)例的圖。如圖所示,區(qū)域分配單元850包含接受分配請(qǐng)求的分配請(qǐng)求接受單元851、空區(qū)域搜索單元852、二次分配單元853、分配劃分編號(hào)輸出單元,空區(qū)域搜索單元852包含虛擬分配單元857。通過參照?qǐng)D5說明的處理流程例可實(shí)現(xiàn)區(qū)域分配單元850的功能??諈^(qū)域搜索單元852在分配請(qǐng)求中包含的尺寸即分配請(qǐng)求尺寸利用互不相同的2的冪乘的和與分區(qū)的分配單位尺寸之積表示是劃分層級(jí)不同的區(qū)域尺寸之和時(shí),搜索比該劃分層級(jí)的最大層級(jí)大I的劃分層級(jí)的空區(qū)域即尺寸比分配請(qǐng)求尺寸大的一次分配區(qū)域,在利用2的冪乘與上述分區(qū)的分配單位尺寸之積表示分配請(qǐng)求中包含的尺寸即分配請(qǐng)求尺寸時(shí),搜索該分配請(qǐng)求尺寸的空區(qū)域作為一次分配區(qū)域??諈^(qū)域搜索單元852的功能與圖6、圖9例示的處理流程對(duì)應(yīng)??諈^(qū)域搜索單元852中的虛擬分配單元857在一次分配區(qū)域的劃分層級(jí)沒能搜索到空區(qū)域時(shí),參照多層劃分分配表的與上位劃分層級(jí)的區(qū)域?qū)?yīng)的分配狀態(tài),搜索上位劃分層級(jí)的空區(qū)域,將該區(qū)域作為虛擬分配區(qū)域,將上述多層劃分分配表的分配狀態(tài)設(shè)為使、用中,并且,將虛擬分配區(qū)域分割成一次分配區(qū)域和作為剩余區(qū)域的相鄰多層區(qū)域,將與一次分配區(qū)域內(nèi)的區(qū)域?qū)?yīng)的多層劃分分配表的分配狀態(tài)設(shè)定為使用中,將與構(gòu)成相鄰多層區(qū)域的區(qū)域?qū)?yīng)的多層劃分分配表的分配狀態(tài)設(shè)定為空狀態(tài),其中,所述相鄰多層區(qū)域是按照劃分層級(jí)從小到大的順序連續(xù)分配劃分層級(jí)不同的區(qū)域而得到的區(qū)域。虛擬分配單元857的功能與圖7A和圖8A、圖IOA和圖IOB例示的處理流程對(duì)應(yīng)。二次分配單元853在一次分配區(qū)域的尺寸大于分配請(qǐng)求尺寸的情況下,將一次分配區(qū)域分割成二次分配區(qū)域和作為剩余區(qū)域的相鄰多層區(qū)域,將與二次分配區(qū)域的各個(gè)區(qū)域?qū)?yīng)的多層劃分分配表的分配狀態(tài)設(shè)定為使用中,將與構(gòu)成相鄰多層區(qū)域的區(qū)域?qū)?yīng)的上述多層劃分分配表的分配狀態(tài)設(shè)定為空候選狀態(tài),其中,所述二次分配區(qū)域是按照劃分層級(jí)從大到小的順序連續(xù)分配劃分層級(jí)不同的區(qū)域而得到的區(qū)域,所述相鄰多層區(qū)域是按照劃分層級(jí)從小到大的順序連續(xù)分配劃分層級(jí)不同的區(qū)域而得到的區(qū)域。二次分配單元853的功能與圖11A、圖IlB例示的處理流程對(duì)應(yīng)。圖18C是說明本發(fā)明一個(gè)實(shí)施方式中的區(qū)域釋放單元的功能塊結(jié)構(gòu)例的圖。如圖所示,區(qū)域釋放單元860包含接受釋放請(qǐng)求的釋放請(qǐng)求接受單元851、嘗試釋放一次分配區(qū)域內(nèi)的區(qū)域的一次分配區(qū)域內(nèi)釋放單元862、嘗試釋放劃分層級(jí)比一次分配區(qū)域的劃分層級(jí)大的區(qū)域的上位區(qū)域釋放單元863。區(qū)域釋放單元860的功能與圖12例示的處理流程例對(duì)應(yīng)。一次分配區(qū)域內(nèi)釋放單元862在釋放請(qǐng)求中包含的尺寸即釋放請(qǐng)求尺寸是劃分層級(jí)不同的區(qū)域之和時(shí),求出相鄰多層區(qū)域內(nèi)的最小區(qū)域的劃分編號(hào),從該劃分編號(hào)指向的多層劃分分配表中讀出分配狀態(tài),當(dāng)讀出的分配狀態(tài)是空或空候選的狀態(tài)時(shí),將與二次分配區(qū)域內(nèi)的最小區(qū)域和相鄰多層區(qū)域內(nèi)的最小區(qū)域?qū)?yīng)的多層劃分分配表的分配狀態(tài)設(shè)定為保留,并且,嘗試釋放上一位劃分層級(jí)的區(qū)域,當(dāng)相鄰多層區(qū)域內(nèi)的最小區(qū)域的分配狀態(tài)是使用中時(shí),將二次分配區(qū)域內(nèi)的最小區(qū)域的分配狀態(tài)設(shè)為空狀態(tài)。一次分配區(qū)域內(nèi)釋放單元862的功能與圖14A例示的處理流程對(duì)應(yīng)。上位區(qū)域釋放單元863在一次分配區(qū)域被釋放,且其劃分編號(hào)指向的多層劃分分配表的分配狀態(tài)是空狀態(tài)時(shí),從多層劃分分配表中讀出以將與一次分配區(qū)域相同的劃分層級(jí)即上一位劃分層級(jí)的區(qū)域分割成2個(gè)時(shí)的一個(gè)區(qū)域?yàn)橐淮畏峙鋮^(qū)域時(shí)的另一個(gè)區(qū)域的分配狀態(tài),當(dāng)另一個(gè)區(qū)域的分配狀態(tài)是空或空候選的狀態(tài)時(shí),將與上述一個(gè)區(qū)域和另一個(gè)區(qū)域?qū)?yīng)的多層劃分分配表的分配狀態(tài)設(shè)定為保留,并且,嘗試釋放上位劃分層級(jí)的區(qū)域,當(dāng)另一個(gè)區(qū)域的分配狀態(tài)是使用中時(shí),將一個(gè)區(qū)域的分配狀態(tài)作為空狀態(tài)。上位區(qū)域釋放單元863的功能與圖17A例示的處理流程對(duì)應(yīng)。以上對(duì)用于實(shí)施本發(fā)明的方式進(jìn)行了詳細(xì)說明,但本領(lǐng)域的普通技術(shù)人員可知本發(fā)明的實(shí)施方式不僅限于上述內(nèi)容還可以進(jìn)行各種變形。還可知以上說明的本發(fā)明實(shí)施方式的分區(qū)管理方法以及其等同物可利用使計(jì)算機(jī)執(zhí)行這些方法的程序來實(shí)現(xiàn)。因此,上述程序以及存儲(chǔ)有上述程序的計(jì)算機(jī)可讀取的存儲(chǔ)介質(zhì)也包含在本發(fā)明的實(shí)施方式中。另夕卜,利用本發(fā)明的分區(qū)管理方法來管理該分區(qū)的存儲(chǔ)裝置也包含在本發(fā)明的實(shí)施方式中。并且,在存儲(chǔ)裝置由存儲(chǔ)介質(zhì)驅(qū)動(dòng)裝置和存儲(chǔ)介質(zhì)構(gòu)成時(shí),利用本發(fā)明的分區(qū)管理方法管理該分區(qū)的存儲(chǔ)介質(zhì)也包含在本發(fā)明的實(shí)施方式中。如以上說明的那樣,根據(jù)本發(fā)明,能夠與存儲(chǔ)容量無關(guān)地、有效且高效地管理存儲(chǔ)裝置。另外,可通過采用多層劃分分配表和多層 劃分管理表對(duì)各劃分層級(jí)的區(qū)域以多層的方式進(jìn)行管理,對(duì)連續(xù)的區(qū)域進(jìn)行文件分配。
權(quán)利要求
1.一種存儲(chǔ)裝置的分區(qū)管理裝置,其特征在于, 該分區(qū)管理裝置具有 初始化部,其包含多層劃分分配表生成單元和取得分區(qū)的尺寸的分區(qū)尺寸取得單元,該多層劃分分配表生成單元在利用互不相同的2的冪乘的和與所述分區(qū)的分配單位尺寸之積表示該分區(qū)的尺寸時(shí),利用尺寸是構(gòu)成該和的各個(gè)2的冪乘與所述分區(qū)的分配單位尺寸之積的主區(qū)域,按照該尺寸的順序分割所述分區(qū),由此劃分該分區(qū),將各個(gè)所述主區(qū)域每次分割成二分之一而依次劃分成各個(gè)尺寸的區(qū)域,直到成為所述分區(qū)的分配單位尺寸為止,生成多層劃分分配表并進(jìn)行初始化,該多層劃分分配表與包含所述主區(qū)域在內(nèi)的各個(gè)區(qū)域?qū)?yīng)地存儲(chǔ)表示該各個(gè)區(qū)域各自的分配狀態(tài)的分配信息;以及 多層劃分管理部,其根據(jù)所述多層劃分分配表中存儲(chǔ)的所述分配信息,管理所述各個(gè)區(qū)域的分配, 當(dāng)將規(guī)定所述區(qū)域的尺寸的2的冪乘的指數(shù)作為該區(qū)域的劃分層級(jí)時(shí),所述多層劃分分配表按照所述區(qū)域的劃分層級(jí)順序,在同一劃分層級(jí)中按照所述區(qū)域在所述分區(qū)內(nèi)的配置順序存儲(chǔ)所述區(qū)域的分配信息, 所述多層劃分分配表生成單元將包含所述分區(qū)的具有2的冪乘與所述分區(qū)的分配單位尺寸之積的尺寸的最小分區(qū)作為假想分區(qū),利用尺寸是規(guī)定該假想分區(qū)的尺寸的2的冪乘與所述分區(qū)的分配單位尺寸之積的區(qū)域,將所述假想分區(qū)劃分成假想主區(qū)域,將該假想主區(qū)域每次分割成二分之一而依次假想劃分成各個(gè)尺寸的區(qū)域,直到成為所述分區(qū)的分配單位尺寸為止,將用于識(shí)別該假想劃分成的假想?yún)^(qū)域的劃分編號(hào)按照該假想?yún)^(qū)域的劃分層級(jí)順序,在同一劃分層級(jí)中按照該假想?yún)^(qū)域在所述假想分區(qū)內(nèi)的配置順序進(jìn)行分配, 所述多層劃分管理部采用分配給所述區(qū)域?qū)?yīng)的所述假想?yún)^(qū)域的所述劃分編號(hào),管理所述區(qū)域的分配。
2.根據(jù)權(quán)利要求I所述的分區(qū)管理裝置,其特征在于, 所述多層劃分分配表生成單元設(shè)定表示是空的空狀態(tài)作為所述主區(qū)域的分配信息的初始值,設(shè)定表示不向分割所述主區(qū)域而得到的區(qū)域進(jìn)行分配的空以外狀態(tài)作為該區(qū)域的分配信息的初始值。
3.根據(jù)權(quán)利要求2所述的分區(qū)管理裝置,其特征在于, 所述多層劃分管理部包含 分配請(qǐng)求接受單元,其接受包含尺寸的文件或者存儲(chǔ)區(qū)域的分配請(qǐng)求; 空區(qū)域搜索單元,其參照所述多層劃分管理表,在所述分配請(qǐng)求中包含的尺寸即分配請(qǐng)求尺寸由互不相同的2的冪乘的和與所述分區(qū)的分配單位尺寸之積表示且是所述劃分層級(jí)不同的區(qū)域的尺寸之和時(shí),搜索作為比該劃分層級(jí)的最大層級(jí)大I的劃分層級(jí)的空區(qū)域的、尺寸比所述分配請(qǐng)求尺寸大的一次分配區(qū)域,求出與該一次分配區(qū)域?qū)?yīng)的劃分編號(hào)作為分配劃分編號(hào),在所述分配請(qǐng)求中包含的尺寸即分配請(qǐng)求尺寸由2的冪乘與所述分區(qū)的分配單位尺寸之積表示時(shí),搜索該分配請(qǐng)求尺寸的空區(qū)域作為一次分配區(qū)域,求出與該一次分配區(qū)域?qū)?yīng)的劃分編號(hào)作為分配劃分編號(hào);二次分配單元,其在所述一次分配區(qū)域的尺寸大于所述分配請(qǐng)求尺寸時(shí),將該一次分配區(qū)域分割成二次分配區(qū)域和作為剩余區(qū)域的相鄰多層區(qū)域,求出與所述二次分配區(qū)域的各個(gè)區(qū)域?qū)?yīng)的劃分編號(hào),將該劃分編號(hào)對(duì)應(yīng)的所述多層劃分分配表的分配狀態(tài)設(shè)定為使用中,求出與構(gòu)成所述相鄰多層區(qū)域的區(qū)域?qū)?yīng)的劃分編號(hào),將該劃分編號(hào)對(duì)應(yīng)的所述多層劃分分配表的分配狀態(tài)設(shè)定為空候選狀態(tài),其中,所述二次分配區(qū)域是按照所述劃分層級(jí)的順序連續(xù)分配劃分層級(jí)不同的區(qū)域而得到的區(qū)域,所述相鄰多層區(qū)域是按照與分配所述二次分配區(qū)域的劃分層級(jí)不同的區(qū)域的劃分層級(jí)順序相反的順序,連續(xù)分配劃分層級(jí)不同的區(qū)域而得到的區(qū)域;以及 分配劃分編號(hào)輸出單元,其輸出所述分配劃分編號(hào)作為所述文件或者存儲(chǔ)區(qū)域的分配請(qǐng)求的分配結(jié)果之一, 所述二次分配區(qū)域內(nèi)的最小區(qū)域與相鄰多層區(qū)域內(nèi)的最小區(qū)域的劃分層級(jí)相等,是在所述多層劃分分配表中對(duì)比所述劃分層級(jí)上一位的劃分層級(jí)的區(qū)域進(jìn)行二分而得到的。
4.根據(jù)權(quán)利要求3所述的分區(qū)管理裝置,其特征在于, 所述空區(qū)域搜索單元包含虛擬分配單元,該虛擬分配單元在所述一次分配區(qū)域的劃分層級(jí)上沒能搜索到空區(qū)域時(shí),參照所述多層劃分分配表的與上位劃分層級(jí)的區(qū)域?qū)?yīng)的分配狀態(tài),搜索上位劃分層級(jí)的空區(qū)域,求出該區(qū)域的劃分編號(hào),將該劃分編號(hào)的區(qū)域即虛擬分配區(qū)域分割成所述一次分配區(qū)域和作為剩余區(qū)域的相鄰多層區(qū)域,求出與所述一次分配區(qū)域內(nèi)的區(qū)域?qū)?yīng)的劃分編號(hào),將該劃分編號(hào)對(duì)應(yīng)的所述多層劃分分配表的分配狀態(tài)設(shè)定為使用中,求出與構(gòu)成所述相鄰多層區(qū)域的區(qū)域?qū)?yīng)的劃分編號(hào),將該劃分編號(hào)對(duì)應(yīng)的所述多層劃分分配表的分配狀態(tài)設(shè)定為空狀態(tài),其中,所述相鄰多層區(qū)域是按照所述劃分層級(jí)的順序連續(xù)分配劃分層級(jí)不同的區(qū)域而得到的區(qū)域。
5.根據(jù)權(quán)利要求4所述的分區(qū)管理裝置,其特征在于, 所述空區(qū)域搜索單元在沒能搜索到可分配被請(qǐng)求分配的文件或者存儲(chǔ)區(qū)域的空狀態(tài)的區(qū)域時(shí),從所述多層劃分分配表中搜索空候選狀態(tài)的區(qū)域。
6.根據(jù)權(quán)利要求5所述的分區(qū)管理裝置,其特征在于, 所述多層劃分管理部具有 釋放請(qǐng)求接受單元,其接受包含尺寸和分配劃分編號(hào)的文件或者存儲(chǔ)區(qū)域的釋放請(qǐng)求; 一次分配區(qū)域內(nèi)釋放單元,其在所述釋放請(qǐng)求中包含的尺寸即釋放請(qǐng)求尺寸是所述劃分層級(jí)不同的區(qū)域之和時(shí),求出所述相鄰多層區(qū)域內(nèi)的最小區(qū)域的劃分編號(hào),從該劃分編號(hào)指向的所述多層劃分分配表中讀出分配狀態(tài),當(dāng)該讀出的分配狀態(tài)是空或者空候選的狀態(tài)時(shí),將與所述二次分配區(qū)域內(nèi)的最小區(qū)域和相鄰多層區(qū)域內(nèi)的最小區(qū)域?qū)?yīng)的所述多層劃分分配表的分配狀態(tài)設(shè)定為空或者空候選以外的狀態(tài),并且,嘗試釋放所述上一位的劃分層級(jí)的區(qū)域,當(dāng)所述相鄰多層區(qū)域內(nèi)的最小區(qū)域的分配狀態(tài)是使用中時(shí),將所述二次分配區(qū)域內(nèi)的最小區(qū)域的分配狀態(tài)設(shè)定為空狀態(tài);以及 上位區(qū)域釋放單元,其在所述一次分配區(qū)域被釋放,且其劃分編號(hào)指向的所述多層劃分分配表的分配狀態(tài)是空狀態(tài)時(shí),從所述多層劃分分配表中讀出將作為與該一次分配區(qū)域相同的劃分層級(jí)、對(duì)上一位的劃分層級(jí)的區(qū)域進(jìn)行二分時(shí)的一個(gè)區(qū)域作為所述一次分配區(qū)域時(shí)的另一個(gè)區(qū)域的分配狀態(tài),當(dāng)該另一個(gè)區(qū)域的分配狀態(tài)是空或者空候選的狀態(tài)時(shí),將與所述一個(gè)區(qū)域和另一個(gè)區(qū)域?qū)?yīng)的所述多層劃分分配表的分配狀態(tài)設(shè)定為空或者空候選以外的狀態(tài),并且,嘗試釋放所述上位劃分層級(jí)的區(qū)域,當(dāng)所述另一個(gè)區(qū)域的分配狀態(tài)是使用中時(shí),將所述一個(gè)區(qū)域的分配狀態(tài)設(shè)定為空狀態(tài)。
7.一種計(jì)算機(jī)執(zhí)行的存儲(chǔ)裝置的分區(qū)管理方法,其特征在于, 該分區(qū)管理方法具有以下的步驟 分區(qū)尺寸取得步驟,取得分區(qū)的尺寸; 多層劃分分配表生成步驟,在利用互不相同的2的冪乘的和與所述分區(qū)的分配單位尺寸之積表示該分區(qū)的尺寸時(shí),利用尺寸是構(gòu)成該和的各個(gè)2的冪乘與所述分區(qū)的分配單位尺寸之積的主區(qū)域,按照該尺寸的順序分割所述分區(qū),由此劃分該分區(qū),將各個(gè)所述主區(qū)域每次分割成二分之一而依次劃分成各個(gè)尺寸的區(qū)域,直到成為所述分區(qū)的分配單位尺寸為止,生成多層劃分分配表并進(jìn)行初始化,該多層劃分分配表與包含所述主區(qū)域在內(nèi)的各個(gè)區(qū)域?qū)?yīng)地存儲(chǔ)表示該各個(gè)區(qū)域各自的分配狀態(tài)的分配信息;以及 多層劃分管理步驟,根據(jù)所述多層劃分分配表中存儲(chǔ)的所述分配信息,管理所述各個(gè)區(qū)域的分配, 當(dāng)將規(guī)定所述區(qū)域的尺寸的2的冪乘的指數(shù)作為該區(qū)域的劃分層級(jí)時(shí),所述多層劃分分配表按照所述區(qū)域的劃分層級(jí)順序,在同一劃分層級(jí)中按照所述區(qū)域在所述分區(qū)內(nèi)的配置順序存儲(chǔ)所述區(qū)域的分配信息, 在所述多層劃分分配表生成步驟中,將包含所述分區(qū)的具有2的冪乘與所述分區(qū)的分配單位尺寸之積的尺寸的最小分區(qū)作為假想分區(qū),利用尺寸是規(guī)定該假想分區(qū)的尺寸的2的冪乘與所述分區(qū)的分配單位尺寸之積的區(qū)域,將所述假想分區(qū)劃分成假想主區(qū)域,將該假想主區(qū)域每次分割成二分之一而依次假想劃分成各個(gè)尺寸的區(qū)域,直到成為所述分區(qū)的分配單位尺寸為止,將用于識(shí)別該假想劃分成的假想?yún)^(qū)域的劃分編號(hào)按照該假想?yún)^(qū)域的劃分層級(jí)順序,在同一劃分層級(jí)中按照該假想?yún)^(qū)域在所述假想分區(qū)內(nèi)的配置順序進(jìn)行分配,在所述多層劃分管理步驟中,采用分配給所述區(qū)域?qū)?yīng)的所述假想?yún)^(qū)域的所述劃分編號(hào),管理所述區(qū)域的分配。
8.根據(jù)權(quán)利要求7所述的分區(qū)管理方法,其特征在于, 在所述多層劃分分配表生成步驟中,設(shè)定表示是空的空狀態(tài)作為主區(qū)域的分配信息的初始值,設(shè)定表示不向分割所述主區(qū)域而得到的區(qū)域進(jìn)行分配的空以外狀態(tài)作為該區(qū)域的分配信息的初始值。
9.根據(jù)權(quán)利要求8所述的分區(qū)管理方法,其特征在于, 所述多層劃分管理步驟包含以下的步驟 分配請(qǐng)求接受步驟,接受包含尺寸的文件或者存儲(chǔ)區(qū)域的分配請(qǐng)求; 空區(qū)域搜索步驟,參照所述多層劃分管理表,在所述分配請(qǐng)求中包含的尺寸即分配請(qǐng)求尺寸由互不相同的2的冪乘的和與所述分區(qū)的分配單位尺寸之積表示且是所述劃分層級(jí)不同的區(qū)域的尺寸之和時(shí),搜索作為比該劃分層級(jí)的最大層級(jí)大I的劃分層級(jí)的空區(qū)域的、尺寸比所述分配請(qǐng)求尺寸大的一次分配區(qū)域,求出與該一次分配區(qū)域?qū)?yīng)的劃分編號(hào)作為分配劃分編號(hào),在利用2的冪乘與所述分區(qū)的分配單位尺寸之積表示所述分配請(qǐng)求中包含的尺寸即分配請(qǐng)求尺寸時(shí),搜索該分配請(qǐng)求尺寸的空區(qū)域作為一次分配區(qū)域,求出與該一次分配區(qū)域?qū)?yīng)的劃分編號(hào)作為分配劃分編號(hào); 二次分配步驟,在所述一次分配區(qū)域的尺寸大于所述分配請(qǐng)求尺寸時(shí),將該一次分配區(qū)域分割成二次分配區(qū)域和作為剩余區(qū)域的相鄰多層區(qū)域,求出與所述二次分配區(qū)域的各個(gè)區(qū)域?qū)?yīng)的劃分編號(hào),將該劃分編號(hào)對(duì)應(yīng)的所述多層劃分分配表的分配狀態(tài)設(shè)定為使用中,求出與構(gòu)成所述相鄰多層區(qū)域的區(qū)域?qū)?yīng)的劃分編號(hào),將該劃分編號(hào)對(duì)應(yīng)的所述多層劃分分配表的分配狀態(tài)設(shè)定為空候選狀態(tài),其中,所述二次分配區(qū)域是按照所述劃分層級(jí)的順序連續(xù)分配劃分層級(jí)不同的區(qū)域而得到的區(qū)域,所述相鄰多層區(qū)域是按照與分配所述二次分配區(qū)域的劃分層級(jí)不同的區(qū)域的劃分層級(jí)順序相反的順序,連續(xù)分配劃分層級(jí)不同的區(qū)域而得到的區(qū)域;以及 分配劃分編號(hào)輸出步驟,輸出所述分配劃分編號(hào)作為所述文件或者存儲(chǔ)區(qū)域的分配請(qǐng)求的分配結(jié)果之一, 所述二次分配區(qū)域內(nèi)的最小區(qū)域與相鄰多層區(qū)域內(nèi)的最小區(qū)域的劃分層級(jí)相等,是在所述多層劃分分配表中對(duì)比所述劃分層級(jí)上一位的劃分層級(jí)的區(qū)域進(jìn)行二分而得到的。
10.根據(jù)權(quán)利要求9所述的分區(qū)管理方法,其特征在于, 所述空區(qū)域搜索步驟包含虛擬分配步驟,在該虛擬分配步驟中,在所述一次分配區(qū)域的劃分層級(jí)上沒能搜索到空區(qū)域時(shí),參照所述多層劃分分配表的與上位劃分層級(jí)的區(qū)域?qū)?yīng)的分配狀態(tài),搜索上位劃分層級(jí)的空區(qū)域,求出該區(qū)域的劃分編號(hào),將該劃分編號(hào)的區(qū)域即虛擬分配區(qū)域分割成所述一次分配區(qū)域和作為剩余區(qū)域的相鄰多層區(qū)域,求出與所述一次分配區(qū)域內(nèi)的區(qū)域?qū)?yīng)的劃分編號(hào),將該劃分編號(hào)對(duì)應(yīng)的所述多層劃分分配表的分配狀態(tài)設(shè)定為使用中,求出與構(gòu)成所述相鄰多層區(qū)域的區(qū)域?qū)?yīng)的劃分編號(hào),將該劃分編號(hào)對(duì)應(yīng)的所述多層劃分分配表的分配狀態(tài)設(shè)定為空狀態(tài),其中,所述相鄰多層區(qū)域是按照所述劃分層級(jí)的順序連續(xù)分配劃分層級(jí)不同的區(qū)域而得到的區(qū)域。
11.根據(jù)權(quán)利要求10所述的分區(qū)管理方法,其特征在于, 在所述空區(qū)域搜索步驟中,在沒能搜索到可分配被請(qǐng)求分配的文件或者存儲(chǔ)區(qū)域的空狀態(tài)的區(qū)域時(shí),從所述多層劃分分配表中搜索空候選狀態(tài)的區(qū)域。
12.根據(jù)權(quán)利要求11所述的分區(qū)管理方法,其特征在于, 所述多層劃分管理步驟包含以下的步驟 釋放請(qǐng)求接受步驟,接受包含尺寸和分配劃分編號(hào)的文件或者存儲(chǔ)區(qū)域的釋放請(qǐng)求; 一次分配區(qū)域內(nèi)釋放步驟,在所述釋放請(qǐng)求中包含的尺寸即釋放請(qǐng)求尺寸是所述劃分層級(jí)不同的區(qū)域之和時(shí),求出所述相鄰多層區(qū)域內(nèi)的最小區(qū)域的劃分編號(hào),從該劃分編號(hào)指向的所述多層劃分分配表中讀出分配狀態(tài),當(dāng)該讀出的分配狀態(tài)是空或者空候選的狀態(tài)時(shí),將與所述二次分配區(qū)域內(nèi)的最小區(qū)域和相鄰多層區(qū)域內(nèi)的最小區(qū)域?qū)?yīng)的所述多層劃分分配表的分配狀態(tài)設(shè)定為空或者空候選以外的狀態(tài),并且,嘗試釋放所述上一位的劃分層級(jí)的區(qū)域,當(dāng)所述相鄰多層區(qū)域內(nèi)的最小區(qū)域的分配狀態(tài)是使用中時(shí),將所述二次分配區(qū)域內(nèi)的最小區(qū)域的分配狀態(tài)設(shè)定為空狀態(tài);以及 上位區(qū)域釋放步驟,在所述一次分配區(qū)域被釋放,且其劃分編號(hào)指向的所述多層劃分分配表的分配狀態(tài)是空狀態(tài)時(shí),從所述多層劃分分配表中讀出將作為與該一次分配區(qū)域相同的劃分層級(jí)、對(duì)上一位的劃分層級(jí)的區(qū)域進(jìn)行二分時(shí)的一個(gè)區(qū)域作為所述一次分配區(qū)域時(shí)的另一個(gè)區(qū)域的分配狀態(tài),當(dāng)該另一個(gè)區(qū)域的分配狀態(tài)是空或者空候選的狀態(tài)時(shí),將與所述一個(gè)區(qū)域和另一個(gè)區(qū)域?qū)?yīng)的所述多層劃分分配表的分配狀態(tài)設(shè)定為空或者空候選以外的狀態(tài),并且,嘗試釋放所述上位劃分層級(jí)的區(qū)域,當(dāng)所述另一個(gè)區(qū)域的分配狀態(tài)是使用中時(shí),將所述一個(gè)區(qū)域的分配狀態(tài)設(shè)定為空狀態(tài)。
13.一種程序,其特征在于,該程序使計(jì)算機(jī)執(zhí)行權(quán)利要求7 12中的任意一項(xiàng)所述的方法。
14.一種計(jì)算機(jī)可讀取的記錄介質(zhì),其特征在于,該記錄介質(zhì)記錄有使計(jì)算機(jī)執(zhí)行權(quán)利要求7 12中的任意一項(xiàng)所述的方法的程序。
15.一種存儲(chǔ)裝置,其特征在于,該存儲(chǔ)裝置利用權(quán)利要求7所述的分區(qū)管理方法來管理分區(qū)。
16.一種存儲(chǔ)介質(zhì),其特征在于,該存儲(chǔ)介質(zhì)利用權(quán)利要求7所述的分區(qū)管理方法來管理分區(qū)。
全文摘要
本發(fā)明提供可與存儲(chǔ)裝置的容量無關(guān)地、靈活地分區(qū)并管理區(qū)域,當(dāng)對(duì)分區(qū)分配文件時(shí)可利用高效的方法來有效靈活應(yīng)用區(qū)域的技術(shù)。在利用互不相同的2的冪乘和表示存儲(chǔ)裝置的分區(qū)尺寸,將構(gòu)成和的各個(gè)2的冪乘尺寸的區(qū)域作為主區(qū)域時(shí),劃分成將各個(gè)主區(qū)域依次每次分割成二分之一后的尺寸的各個(gè)尺寸區(qū)域,生成存儲(chǔ)分配信息的分配表,該分配信息表示包含主區(qū)域的各個(gè)尺寸區(qū)域各自的文件的分配狀態(tài)。識(shí)別各個(gè)區(qū)域的分配信息的劃分編號(hào)根據(jù)包含分區(qū)的2的冪乘尺寸的假想?yún)^(qū)域進(jìn)行分配。根據(jù)分配表中存儲(chǔ)的分配信息來管理分區(qū)。
文檔編號(hào)G06F12/02GK102754085SQ20118000931
公開日2012年10月24日 申請(qǐng)日期2011年2月9日 優(yōu)先權(quán)日2010年2月15日
發(fā)明者吉岡誠, 國分光裕, 新莊敏男 申請(qǐng)人:新葉股份有限公司