內存分配_第1頁
已閱讀1頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、一、實驗目的一、實驗目的利用教師提供的圖形包代碼,編寫程序,實現(xiàn)內存的分配算法(最佳適配和鄰近適配)。二、實驗內容二、實驗內容(1)在所提供的程序基礎之上實現(xiàn)最佳適配和鄰近適配算法。(2)增加測試案例,驗證程序的正確性——刪除掉一個分配的進程(進程3)——重新分配一個進程,假設進程6大小為100(3)利用VC6.0實現(xiàn)上述程序設計和調試操作。(4)通過閱讀和分析實驗程序,熟悉內存分配算法。三、實驗步驟三、實驗步驟1、創(chuàng)建結構體、創(chuàng)建結構

2、體本次實驗將待分配的進程和內存空間視作整體進行操作,則應構造兩個結構體分別用來表示。各結構體的參數以及注解如下所示:內存塊結構,可以表示主存空間占用情況(鏈表形式)typedefstructMemyBlocklongStartAddr內存塊起始地址(單位KB)longBlockLength內存塊長度(單位KB)intJobIndex屬于那個作業(yè)。nBelongToJob=0表示“空閑”MemyBlocknextPointer指向下一個M

3、emyBlockMemyBlockprePointer指向上一個MemyBlock由進程的的信息以及被分配的空間的信息構成。然后將新空間裝入被分配的空間中,prePointer指向被分配的空間prePointer指針指向的模塊,nextPointer指針指向分配的空間;同時改變被分配的空間的初始地址和長度,并將其prePointer指針指向新空間。當然還要考慮被分配的進程是不是被放在內存的第一個空間塊這一情況。4、下次適配算法、下次適配

4、算法下次適配算法類似于首次適配算法,也是將進程分配給第一個可以裝下該進程的空間。不同的是下次適配算法每次是從上一次分配的地址出開始遍歷內存,因此需要設置一個全局變量MarkPoint,用來標記當前分配后指定的位置,注意當MarkPoint的值變成NULL時,要重新賦值使其跳轉到內存的鏈表頭部。除此之外的步驟與首次適配算法相同。分配時,創(chuàng)建一個進程大小的新空間tmpMemBlock(指針),新空間的信息由進程的的信息以及被分配的空間的信息

5、構成。然后將新空間裝入被分配的空間中,prePointer指向被分配的空間prePointer指針指向的模塊,nextPointer指針指向分配的空間;同時改變被分配的空間的初始地址和長度,并將其prePointer指針指向新空間。當然還要考慮被分配的進程是不是被放在內存的第一個空間塊這一情況。5、內存釋放算法、內存釋放算法因為內存的大小只有1024KB,所以如果不對進程進行釋放,很快就會空間不足的情況。對于內存釋放算法,最基本的操作是

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論