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