版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、一、實驗?zāi)康囊?、實驗?zāi)康睦媒處熖峁┑膱D形包代碼,編寫程序,實現(xiàn)內(nèi)存的分配算法(最佳適配和鄰近適配)。二、實驗內(nèi)容二、實驗內(nèi)容(1)在所提供的程序基礎(chǔ)之上實現(xiàn)最佳適配和鄰近適配算法。(2)增加測試案例,驗證程序的正確性——刪除掉一個分配的進程(進程3)——重新分配一個進程,假設(shè)進程6大小為100(3)利用VC6.0實現(xiàn)上述程序設(shè)計和調(diào)試操作。(4)通過閱讀和分析實驗程序,熟悉內(nèi)存分配算法。三、實驗步驟三、實驗步驟1、創(chuàng)建結(jié)構(gòu)體、創(chuàng)建結(jié)構(gòu)
2、體本次實驗將待分配的進程和內(nèi)存空間視作整體進行操作,則應(yīng)構(gòu)造兩個結(jié)構(gòu)體分別用來表示。各結(jié)構(gòu)體的參數(shù)以及注解如下所示:內(nèi)存塊結(jié)構(gòu),可以表示主存空間占用情況(鏈表形式)typedefstructMemyBlocklongStartAddr內(nèi)存塊起始地址(單位KB)longBlockLength內(nèi)存塊長度(單位KB)intJobIndex屬于那個作業(yè)。nBelongToJob=0表示“空閑”MemyBlocknextPointer指向下一個M
3、emyBlockMemyBlockprePointer指向上一個MemyBlock由進程的的信息以及被分配的空間的信息構(gòu)成。然后將新空間裝入被分配的空間中,prePointer指向被分配的空間prePointer指針指向的模塊,nextPointer指針指向分配的空間;同時改變被分配的空間的初始地址和長度,并將其prePointer指針指向新空間。當然還要考慮被分配的進程是不是被放在內(nèi)存的第一個空間塊這一情況。4、下次適配算法、下次適配
4、算法下次適配算法類似于首次適配算法,也是將進程分配給第一個可以裝下該進程的空間。不同的是下次適配算法每次是從上一次分配的地址出開始遍歷內(nèi)存,因此需要設(shè)置一個全局變量MarkPoint,用來標記當前分配后指定的位置,注意當MarkPoint的值變成NULL時,要重新賦值使其跳轉(zhuǎn)到內(nèi)存的鏈表頭部。除此之外的步驟與首次適配算法相同。分配時,創(chuàng)建一個進程大小的新空間tmpMemBlock(指針),新空間的信息由進程的的信息以及被分配的空間的信息
5、構(gòu)成。然后將新空間裝入被分配的空間中,prePointer指向被分配的空間prePointer指針指向的模塊,nextPointer指針指向分配的空間;同時改變被分配的空間的初始地址和長度,并將其prePointer指針指向新空間。當然還要考慮被分配的進程是不是被放在內(nèi)存的第一個空間塊這一情況。5、內(nèi)存釋放算法、內(nèi)存釋放算法因為內(nèi)存的大小只有1024KB,所以如果不對進程進行釋放,很快就會空間不足的情況。對于內(nèi)存釋放算法,最基本的操作是
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c++內(nèi)存分配
- c++_java內(nèi)存分配
- 支持內(nèi)存不連續(xù)分配
- Memcached內(nèi)存分配算法及優(yōu)化.pdf
- c c++語言變量聲明內(nèi)存分配
- 內(nèi)存分配方式,堆和棧區(qū)別
- 第八講內(nèi)存的動態(tài)分配-
- 內(nèi)存區(qū)劃分、內(nèi)存分配、常量存儲區(qū)、堆、棧、自由存儲區(qū)、全局區(qū)[c++][內(nèi)存管理]
- 北大青鳥西安華美校區(qū)告訴你分配內(nèi)存時如何減少內(nèi)存碎片
- x86低端1m內(nèi)存分配
- 10-資源管理和分配-內(nèi)存cpu
- os課程設(shè)計---模擬內(nèi)存分配算法mfc實現(xiàn)
- 實驗 可變分區(qū)內(nèi)存分配首次適應(yīng)算法模擬
- 基于虛擬計算環(huán)境的內(nèi)存資源彈性分配研究.pdf
- 基于JVM的Web容器內(nèi)存分配技術(shù)優(yōu)化研究.pdf
- 一個內(nèi)存分配器的設(shè)計和實現(xiàn).pdf
- 操作系統(tǒng)課程設(shè)計--cpu進程調(diào)度和內(nèi)存分配
- 可控動態(tài)內(nèi)存分配器的研究與開發(fā).pdf
- java內(nèi)存分配與管理是java的核心技術(shù)之一
- 手機平臺web服務(wù)器的內(nèi)存分配研究及實現(xiàn).pdf
評論
0/150
提交評論