亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        可變分區(qū)存儲(chǔ)管理方式的內(nèi)存分配回收

        2014-07-03 05:22:04宋新偉
        電腦知識(shí)與技術(shù) 2014年12期
        關(guān)鍵詞:存儲(chǔ)管理回收

        宋新偉

        摘要:該文首先介紹了存儲(chǔ)管理中可變分區(qū)的管理方式。通過實(shí)驗(yàn)編寫程序模擬實(shí)現(xiàn)了可變分區(qū)存儲(chǔ)管理方式的內(nèi)存分配和回收。

        關(guān)鍵詞:可變分區(qū);存儲(chǔ)管理;內(nèi)存分配;回收

        中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)12-2880-03

        1 存儲(chǔ)管理中可變分區(qū)的管理方式

        可變分區(qū)管理方式將內(nèi)存除操作系統(tǒng)占用區(qū)域外的空間看做一個(gè)大的空閑區(qū)。當(dāng)作業(yè)要求裝入內(nèi)存時(shí),根據(jù)作業(yè)需要內(nèi)存空間的大小 查詢內(nèi)存中的各個(gè)空閑區(qū),當(dāng)從內(nèi)存空間中找到一個(gè)大于或等于該作業(yè)大小的內(nèi)存空閑區(qū)時(shí),選擇其中一個(gè)空閑區(qū),按作業(yè)需求量劃出一個(gè)分區(qū)裝人該作業(yè),作業(yè)執(zhí)行完后,其所占的內(nèi)存分區(qū)被收回,成為一個(gè)空閑區(qū)。如果該空閑區(qū)的相鄰分區(qū)也是空閑區(qū),則需要將相鄰空閑區(qū)合并成一個(gè)空閑區(qū)。

        2 本實(shí)驗(yàn)的具體實(shí)現(xiàn)

        本次實(shí)驗(yàn)的具體內(nèi)容包括:1)建立相關(guān)的數(shù)據(jù)結(jié)構(gòu),作業(yè)控制塊、已分配分區(qū)及未分配分區(qū);2)實(shí)現(xiàn)一個(gè)分區(qū)分配算法,如最先適應(yīng)分配算法、最壞或者最優(yōu)適應(yīng)分配算法;3)實(shí)現(xiàn)一個(gè)分區(qū)回收算法;4)給定一批作業(yè)/進(jìn)程,選擇一個(gè)分配或者回收算法,實(shí)現(xiàn)分區(qū)存儲(chǔ)模擬管理;5)設(shè)計(jì)界面并將所有的模塊整合到一起,形成一個(gè)完整的系統(tǒng)。

        2.1 設(shè)計(jì)所采用的算法

        采用最壞適應(yīng)算法,每次為作業(yè)分配內(nèi)存時(shí),總是把最大的空閑分區(qū)和所需要的程序塊進(jìn)行比較,如果該塊的大小大于或者等于所需要的內(nèi)存大小,則從該塊中分配出一塊內(nèi)存給程序。

        2.2 內(nèi)存分配與回收所使用的結(jié)構(gòu)體

        為便于對(duì)內(nèi)存的分配和回收,建立兩張表記錄內(nèi)存的使用情況。一張為記錄作業(yè)占用分區(qū)的“內(nèi)存分配表”,內(nèi)容包括分區(qū)起始地址、長(zhǎng)度、作業(yè)名/標(biāo)志(為0時(shí)作為標(biāo)志位表示空欄目);一張為記錄空閑區(qū)的“空閑分區(qū)表”,內(nèi)容包括分區(qū)起始地址、長(zhǎng)度、標(biāo)志(0表空欄目,1表未分配)。兩張表都采用順序表形式。

        2.3 關(guān)于分配留下的內(nèi)存小碎片問題

        當(dāng)要裝入一個(gè)作業(yè)時(shí),從“空閑分區(qū)表”中查找標(biāo)志為“1”(未分配)且滿足作業(yè)所需內(nèi)存大小的最小空閑區(qū),若空閑區(qū)的大小與作業(yè)所需大小的差值小于或等于minsize,把該分區(qū)全部分配給作業(yè),并把該空閑區(qū)的標(biāo)志改為“0”(空欄目)。同時(shí),在已分配區(qū)表中找到一個(gè)標(biāo)志為“0”的欄目登記新裝人作業(yè)所占用分區(qū)的起始地址,長(zhǎng)度和作業(yè)名。若空閑區(qū)的大小與作業(yè)所需大小的差值大于minsize。則把空閑區(qū)分成兩部分,一部分用來裝入作業(yè),另外一部分仍為空閑區(qū)。這時(shí)只要修改原空閑區(qū)的長(zhǎng)度,且把新裝人的作業(yè)登記到已分配區(qū)表中。

        2.4 內(nèi)存的回收

        在可變分區(qū)方式下回收內(nèi)存空間時(shí),先檢查是否有與歸還區(qū)相鄰的空閑區(qū)(上鄰空閑區(qū),下鄰空閑區(qū))。若有,則將它們合件成一個(gè)空閑區(qū)。程序?qū)崿F(xiàn)時(shí),首先將要釋放的作業(yè)在“內(nèi)存分配表”中的記錄項(xiàng)的標(biāo)志改為“0”(空欄目),然后檢查“空閑區(qū)表”中標(biāo)志為‘1(未分配)的欄目,查找是否有相鄰的空閑區(qū),若有,將之合并,并修改空閑區(qū)的起始地址和長(zhǎng)度。

        3 數(shù)據(jù)結(jié)構(gòu)

        1)塊類結(jié)構(gòu)

        public class Kuai{

        private int startAddr; //塊的在內(nèi)存中的開始位置

        private int size; //塊的大小

        private int state=0; //塊的狀態(tài),1表示已分配,0表示未分配

        private int runprogram; } //表示該快所運(yùn)行的程序編號(hào)

        2)分區(qū)表結(jié)構(gòu)

        Public class KuaiBiao()//塊表

        {private int memorysize=1000; //系統(tǒng)的內(nèi)存大小,為1000

        private List KuaiList=new ArrayList(); //分區(qū)表

        public KuaiBiao()

        { Kuai kuai=new Kuai();

        kuai.setRunprogram(0);

        kuai.setSize(1000);

        kuai.setStartAddr(0);

        this.KuaiList.add(kuai);}}

        3)表模型結(jié)構(gòu)

        Public class TableModel{

        Vector cols=null; //初始化表模型的列名

        Vector rowdata=null; }//某行某列的數(shù)據(jù)

        4 程序算法

        本程序的功能模塊主要為內(nèi)存分配和內(nèi)存回收。首頁是一個(gè)顯示界面,從list 中獲取數(shù)據(jù),將數(shù)據(jù)加入JTable中,顯示出來。首頁有兩個(gè)功能按鈕即:內(nèi)存分配按鈕和內(nèi)存回收按鈕。點(diǎn)擊每個(gè)按鈕執(zhí)行相應(yīng)的功能模塊。當(dāng)點(diǎn)擊內(nèi)存分配按鈕時(shí),會(huì)彈出一個(gè)對(duì)話框,輸入待分配內(nèi)存的大小和指定程序編號(hào),如果輸入的內(nèi)存大小超出最大未分配內(nèi)存的大小,程序會(huì)提示錯(cuò)誤信息。如果想回收某個(gè)內(nèi)存塊,選定該行,點(diǎn)擊回收按鈕,執(zhí)行相應(yīng)的功能,更新JTable表格,完成相應(yīng)功能的顯示。

        4.1 內(nèi)存分配模塊算法

        內(nèi)存的分配采用最壞適應(yīng)算法(Worst fit)。最壞適應(yīng)分配算法要掃描整個(gè)空閑分區(qū)分割給作業(yè)使用。該算法要求將所有的空閑分區(qū)按其容量以從大到小的順序形成一空閑分區(qū)鏈,查找時(shí)只要看第一個(gè)分區(qū)是否滿足作業(yè)要求。在系統(tǒng)分配內(nèi)存的時(shí)候,每次調(diào)用分配算法,只需要傳遞一個(gè)待分配內(nèi)存的大小和所要運(yùn)行的程序編號(hào),然后通過Util類中的FenPei(int size,int prograid)方法從內(nèi)存表中分配一塊內(nèi)存。FenPei(int size,int prograid)方法每次都會(huì)將塊表中的塊按size大小從大到小排序,遍歷塊表判斷該塊的狀態(tài)是否為空閑,如果該塊狀態(tài)為空閑,則從 該塊中分配出一塊內(nèi)存作為程序運(yùn)行所需要的內(nèi)存。如果該塊的狀態(tài)不為空閑,則繼續(xù)遍歷塊表(KuaiBiao)中的下一個(gè)塊內(nèi)存。

        4.2 內(nèi)存回收模塊算法

        選擇回收的內(nèi)存塊,當(dāng)點(diǎn)擊回收內(nèi)存時(shí),調(diào)用public List setFree(int startAddr,List le)方法,首先根據(jù)回收區(qū)的地址找到此內(nèi)存塊在List集合中的索引位置,然后判斷點(diǎn)擊的待回收的內(nèi)存塊的狀態(tài),若為0,則提示已是空閑狀態(tài);若為1,則調(diào)用方法Judge.judgement(ku, i) , 此方法根據(jù)索引位置和內(nèi)存塊的List集合返回要操作的方法,可以細(xì)化成9種情況來判斷:1)待回收的內(nèi)存塊沒有上塊也沒有下塊內(nèi)存,則回收后地址為本塊地址,大小為本塊內(nèi)存的大小;2)待回收的內(nèi)存塊沒有上塊,有下塊內(nèi)存,且下塊內(nèi)存為空閑狀態(tài),則回收后地址為本塊地址,大小為本塊大小加下塊內(nèi)存大小;3)待回收的內(nèi)存塊沒有上塊,有下塊內(nèi)存,且下塊內(nèi)存為占用狀態(tài),則回收后地址為本塊地址,大小為本塊大小;4)待回收的內(nèi)存塊有上塊內(nèi)存,且上塊空閑,沒有下塊,則回收后地址為上塊地址,大小為本塊大小加下塊大小;5)待回收的內(nèi)存塊有上塊內(nèi)存,上塊內(nèi)存占用,沒有下塊,則回收后地址為本塊地址,大小為本塊大??;6)待回收的內(nèi)存塊上塊和下塊都是空閑,則回收后地址為本塊地址,大小為本塊大小加上塊和下塊大??;7)待回收的內(nèi)存塊的上塊和下塊都是占用狀態(tài),則回收后地址為本塊地址,大小為本塊大??;8)待回收的內(nèi)存塊的上塊占用,下塊空閑,則回收后地址為本塊地址,大小為本塊大小加下塊大??;9)待回收的內(nèi)存塊的上塊空閑,下塊占用,回收后地址為上塊地址,大小為本塊大小加上塊大小。之后根據(jù)返回的操作方法進(jìn)行對(duì)內(nèi)存塊的處理,然后返回一個(gè)按內(nèi)存地址排序的內(nèi)存塊集合。

        5 內(nèi)存分配回收實(shí)現(xiàn)部分截圖

        1)系統(tǒng)內(nèi)存未分配(如圖1所示)。

        6 結(jié)束語

        本文通過編寫和調(diào)試存儲(chǔ)管理的模擬程序,加深了對(duì)存儲(chǔ)管理方案的理解,熟悉了對(duì)可變分區(qū)存儲(chǔ)管理的內(nèi)存分配和回收。

        參考文獻(xiàn):

        [1] 戴銀飛,趙耀紅.可變分區(qū)存儲(chǔ)管理方式的模擬[J].長(zhǎng)春大學(xué)學(xué)報(bào),2005(4):36-38.

        [2] 曹剛.大數(shù)據(jù)存儲(chǔ)管理系統(tǒng)面臨挑戰(zhàn)的探討[J].軟件產(chǎn)業(yè)與工程,2013(6):34-38.

        [3] 張迎舂,張衛(wèi).虛擬化環(huán)境中的存儲(chǔ)基礎(chǔ)架構(gòu)管理及優(yōu)化方案[J].計(jì)算機(jī)與現(xiàn)代化,2013(10).

        [4] 朱愷文,戴麗絲.系統(tǒng)配置參數(shù)通用性存儲(chǔ)管理的設(shè)計(jì)與實(shí)現(xiàn)[J].科技信息,2013(12).

        4.2 內(nèi)存回收模塊算法

        選擇回收的內(nèi)存塊,當(dāng)點(diǎn)擊回收內(nèi)存時(shí),調(diào)用public List setFree(int startAddr,List le)方法,首先根據(jù)回收區(qū)的地址找到此內(nèi)存塊在List集合中的索引位置,然后判斷點(diǎn)擊的待回收的內(nèi)存塊的狀態(tài),若為0,則提示已是空閑狀態(tài);若為1,則調(diào)用方法Judge.judgement(ku, i) , 此方法根據(jù)索引位置和內(nèi)存塊的List集合返回要操作的方法,可以細(xì)化成9種情況來判斷:1)待回收的內(nèi)存塊沒有上塊也沒有下塊內(nèi)存,則回收后地址為本塊地址,大小為本塊內(nèi)存的大??;2)待回收的內(nèi)存塊沒有上塊,有下塊內(nèi)存,且下塊內(nèi)存為空閑狀態(tài),則回收后地址為本塊地址,大小為本塊大小加下塊內(nèi)存大?。?)待回收的內(nèi)存塊沒有上塊,有下塊內(nèi)存,且下塊內(nèi)存為占用狀態(tài),則回收后地址為本塊地址,大小為本塊大??;4)待回收的內(nèi)存塊有上塊內(nèi)存,且上塊空閑,沒有下塊,則回收后地址為上塊地址,大小為本塊大小加下塊大?。?)待回收的內(nèi)存塊有上塊內(nèi)存,上塊內(nèi)存占用,沒有下塊,則回收后地址為本塊地址,大小為本塊大小;6)待回收的內(nèi)存塊上塊和下塊都是空閑,則回收后地址為本塊地址,大小為本塊大小加上塊和下塊大小;7)待回收的內(nèi)存塊的上塊和下塊都是占用狀態(tài),則回收后地址為本塊地址,大小為本塊大?。?)待回收的內(nèi)存塊的上塊占用,下塊空閑,則回收后地址為本塊地址,大小為本塊大小加下塊大?。?)待回收的內(nèi)存塊的上塊空閑,下塊占用,回收后地址為上塊地址,大小為本塊大小加上塊大小。之后根據(jù)返回的操作方法進(jìn)行對(duì)內(nèi)存塊的處理,然后返回一個(gè)按內(nèi)存地址排序的內(nèi)存塊集合。

        5 內(nèi)存分配回收實(shí)現(xiàn)部分截圖

        1)系統(tǒng)內(nèi)存未分配(如圖1所示)。

        6 結(jié)束語

        本文通過編寫和調(diào)試存儲(chǔ)管理的模擬程序,加深了對(duì)存儲(chǔ)管理方案的理解,熟悉了對(duì)可變分區(qū)存儲(chǔ)管理的內(nèi)存分配和回收。

        參考文獻(xiàn):

        [1] 戴銀飛,趙耀紅.可變分區(qū)存儲(chǔ)管理方式的模擬[J].長(zhǎng)春大學(xué)學(xué)報(bào),2005(4):36-38.

        [2] 曹剛.大數(shù)據(jù)存儲(chǔ)管理系統(tǒng)面臨挑戰(zhàn)的探討[J].軟件產(chǎn)業(yè)與工程,2013(6):34-38.

        [3] 張迎舂,張衛(wèi).虛擬化環(huán)境中的存儲(chǔ)基礎(chǔ)架構(gòu)管理及優(yōu)化方案[J].計(jì)算機(jī)與現(xiàn)代化,2013(10).

        [4] 朱愷文,戴麗絲.系統(tǒng)配置參數(shù)通用性存儲(chǔ)管理的設(shè)計(jì)與實(shí)現(xiàn)[J].科技信息,2013(12).

        4.2 內(nèi)存回收模塊算法

        選擇回收的內(nèi)存塊,當(dāng)點(diǎn)擊回收內(nèi)存時(shí),調(diào)用public List setFree(int startAddr,List le)方法,首先根據(jù)回收區(qū)的地址找到此內(nèi)存塊在List集合中的索引位置,然后判斷點(diǎn)擊的待回收的內(nèi)存塊的狀態(tài),若為0,則提示已是空閑狀態(tài);若為1,則調(diào)用方法Judge.judgement(ku, i) , 此方法根據(jù)索引位置和內(nèi)存塊的List集合返回要操作的方法,可以細(xì)化成9種情況來判斷:1)待回收的內(nèi)存塊沒有上塊也沒有下塊內(nèi)存,則回收后地址為本塊地址,大小為本塊內(nèi)存的大??;2)待回收的內(nèi)存塊沒有上塊,有下塊內(nèi)存,且下塊內(nèi)存為空閑狀態(tài),則回收后地址為本塊地址,大小為本塊大小加下塊內(nèi)存大小;3)待回收的內(nèi)存塊沒有上塊,有下塊內(nèi)存,且下塊內(nèi)存為占用狀態(tài),則回收后地址為本塊地址,大小為本塊大小;4)待回收的內(nèi)存塊有上塊內(nèi)存,且上塊空閑,沒有下塊,則回收后地址為上塊地址,大小為本塊大小加下塊大??;5)待回收的內(nèi)存塊有上塊內(nèi)存,上塊內(nèi)存占用,沒有下塊,則回收后地址為本塊地址,大小為本塊大小;6)待回收的內(nèi)存塊上塊和下塊都是空閑,則回收后地址為本塊地址,大小為本塊大小加上塊和下塊大?。?)待回收的內(nèi)存塊的上塊和下塊都是占用狀態(tài),則回收后地址為本塊地址,大小為本塊大??;8)待回收的內(nèi)存塊的上塊占用,下塊空閑,則回收后地址為本塊地址,大小為本塊大小加下塊大小;9)待回收的內(nèi)存塊的上塊空閑,下塊占用,回收后地址為上塊地址,大小為本塊大小加上塊大小。之后根據(jù)返回的操作方法進(jìn)行對(duì)內(nèi)存塊的處理,然后返回一個(gè)按內(nèi)存地址排序的內(nèi)存塊集合。

        5 內(nèi)存分配回收實(shí)現(xiàn)部分截圖

        1)系統(tǒng)內(nèi)存未分配(如圖1所示)。

        6 結(jié)束語

        本文通過編寫和調(diào)試存儲(chǔ)管理的模擬程序,加深了對(duì)存儲(chǔ)管理方案的理解,熟悉了對(duì)可變分區(qū)存儲(chǔ)管理的內(nèi)存分配和回收。

        參考文獻(xiàn):

        [1] 戴銀飛,趙耀紅.可變分區(qū)存儲(chǔ)管理方式的模擬[J].長(zhǎng)春大學(xué)學(xué)報(bào),2005(4):36-38.

        [2] 曹剛.大數(shù)據(jù)存儲(chǔ)管理系統(tǒng)面臨挑戰(zhàn)的探討[J].軟件產(chǎn)業(yè)與工程,2013(6):34-38.

        [3] 張迎舂,張衛(wèi).虛擬化環(huán)境中的存儲(chǔ)基礎(chǔ)架構(gòu)管理及優(yōu)化方案[J].計(jì)算機(jī)與現(xiàn)代化,2013(10).

        [4] 朱愷文,戴麗絲.系統(tǒng)配置參數(shù)通用性存儲(chǔ)管理的設(shè)計(jì)與實(shí)現(xiàn)[J].科技信息,2013(12).

        猜你喜歡
        存儲(chǔ)管理回收
        一種衛(wèi)星數(shù)據(jù)廣播系統(tǒng)端站存儲(chǔ)管理方案設(shè)計(jì)
        電子制作(2017年13期)2017-12-15 09:00:32
        文檔存儲(chǔ)管理系統(tǒng)的設(shè)計(jì)
        TFT玻璃研磨廢水回收再利用系統(tǒng)設(shè)計(jì)
        科技視界(2016年23期)2016-11-04 13:01:10
        煉油廢水處理及回用工藝探討
        關(guān)于調(diào)試現(xiàn)場(chǎng)隔離與隔離鑰匙的管理
        科技視界(2016年15期)2016-06-30 22:10:24
        淺析計(jì)算機(jī)虛擬化儲(chǔ)存管理
        基于物聯(lián)網(wǎng)的建筑廢料回收問題研究
        商(2016年14期)2016-05-30 09:45:24
        油田活動(dòng)鍋爐污水回收裝置的研制與應(yīng)用
        煉廠催化干氣氫氣回收工藝選擇
        省級(jí)氣象數(shù)據(jù)文件共享存儲(chǔ)管理系統(tǒng)研究
        国产suv精品一区二区| 亚洲视频在线免费不卡| 乱色欧美激惰| 99精品国产综合久久久久五月天| 日本免费一区二区三区在线看| 99国产精品欲av麻豆在线观看| 日本不卡在线视频二区三区| 中文字幕在线精品视频入口一区| 二区三区视频| 风韵丰满妇啪啪区老老熟女杏吧| 日本不卡的一区二区三区中文字幕| 人妻丰满熟妇av无码区| 最新国产日韩AV线| 国产一区二区在线观看视频免费| 久久天天躁狠狠躁夜夜中文字幕| 在线高清亚洲精品二区| аⅴ天堂中文在线网| 偷偷色噜狠狠狠狠的777米奇| 亚洲91av| 亚洲中文有码一区二区| 男女裸体做爰视频高清| 亚洲综合国产一区二区三区| 亚洲精品中国国产嫩草影院美女| 骚货人妻视频中文字幕| 99国产精品久久久久久久成人热 | 91热视频在线观看| 日韩中文字幕乱码在线| 亚洲av成人综合网成人| 青青草原综合久久大伊人| 96精品免费视频大全| 人妖啪啪综合av一区| 多毛小伙内射老太婆| 亚洲精品午夜无码电影网| 色拍拍在线精品视频| av毛片在线播放网址| 亚洲精品国产av成人精品| 亚洲色www成人永久网址| 国产精品国产三级农村妇女| 人妻熟女中文字幕在线视频| 国产性自爱拍偷在在线播放| 双乳被一左一右吃着动态图|