




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
西安郵電大學(xué)操作系統(tǒng)內(nèi)存管理實驗報告4700字
西安郵電大學(xué)(計算機學(xué)院)課內(nèi)實驗報告實驗名稱:內(nèi)存管理專業(yè)名稱:班級:1101班學(xué)生姓名:武妍娜學(xué)號(8指導(dǎo)教師:舒新峰實驗日期:20xx年12月15日一.實驗?zāi)康募皩嶒灜h(huán)境(一)、實驗環(huán)境Ubuntu13.10shell+Vim+GCC編譯器(二)、實驗?zāi)康?1)、掌握內(nèi)存分配FF,BF,WF策略及實現(xiàn)的思路;(2)、掌握內(nèi)存回收過程及實現(xiàn)思路;(3)、參考本程序思路,實現(xiàn)內(nèi)存的申請、釋放的管理程序,調(diào)試運行,總結(jié)程序設(shè)計中出現(xiàn)的問題并找出原因。二.實驗內(nèi)容(1)補充完整FF,BF,WF等算法的代碼;(2)掌握內(nèi)存回收過程及實現(xiàn)思路;(3)實現(xiàn)內(nèi)存的申請和釋放。三.方案設(shè)計(一)、主要模塊的介紹圖一(二)、關(guān)鍵算法思想設(shè)計與分析首次適應(yīng)算法(FirstFit):從空閑分區(qū)表的第一個表目起查找該表,把最先能夠滿足要求的空閑區(qū)分配給作業(yè),這種方法目的在于減少查找時間。為適應(yīng)這種算法,空閑分區(qū)表(空閑區(qū)鏈)中的空閑分區(qū)要按地址由低到高進行排序。該算法優(yōu)先使用低址部分空閑區(qū),在低址空間造成許多小的空閑區(qū),在高地址空間保留大的空閑區(qū)。最佳適應(yīng)算法(BestFit):它從全部空閑區(qū)中找出能滿足作業(yè)要求的、且大小最小的空閑分區(qū),這種方法能使碎片盡量小。為適應(yīng)此算法,空閑分區(qū)表(空閑區(qū)鏈)中的空閑分區(qū)要按從小到大進行排序,自表頭開始查找到第一個滿足要求的自由分區(qū)分配。該算法保留大的空閑區(qū),但造成許多小的空閑區(qū)。最差適應(yīng)算法(WorstFit):它從全部空閑區(qū)中找出能滿足作業(yè)要求的、且大小最大的空閑分區(qū),從而使鏈表中的結(jié)點大小趨于均勻,適用于請求分配的內(nèi)存大小范圍較窄的系統(tǒng)。為適應(yīng)此算法,空閑分區(qū)表(空閑區(qū)鏈)中的空閑分區(qū)要按大小從大到小進行排序,自表頭開始查找到第一個滿足要求的自由分區(qū)分配。該算法保留小的空閑區(qū),盡量減少小的碎片產(chǎn)生。四.測試數(shù)據(jù)及運行結(jié)果圖二主界面圖三設(shè)置內(nèi)存大小圖四顯示內(nèi)存使用情況圖五選擇內(nèi)存分配算法圖六創(chuàng)建新進程圖七顯示內(nèi)存使用情況圖八撤銷進程圖九顯示內(nèi)存使用情況圖十退出程序五.總結(jié)通過本次的內(nèi)存實驗我深刻的體會并了解到內(nèi)存的管理模型的部分相關(guān)知識,尤其是在內(nèi)存緊縮合并回收部分還遇到了一些問題,最終通過查資料解決了問題,雖然對內(nèi)存我可能還有還有很多未知的內(nèi)容,但是這次的內(nèi)存管理實驗過程給我開啟了一個良好的開端,使我對此部分也有了個人的學(xué)習(xí)計劃。同時也讓我復(fù)習(xí)了c語言部分的一些知識。六.附錄:(補充代碼)/*按FF算法重新整理內(nèi)存空閑塊鏈表*/intrearrange_FF(void){structfree_block_type*pointer,*pointer1,*pointer2;pointer=free_block;pointer1=pointer2=pointer->next;/*使用插入法進行排序*/while(pointer->next!=NULL){while(pointer2!=NULL){if(pointer->next->start_addr<=pointer2->start_addr){pointer1=pointer2;pointer2=pointer2->next;}else{pointer1->next=pointer2->next;pointer2->next=pointer->next;pointer->next=pointer2;break;}}pointer=pointer->next;pointer1=pointer2=pointer->next;}return1;}/*按BF算法重新整理內(nèi)存空閑塊鏈表*/intrearrange_BF(void){structfree_block_type*pointer,*pointer1,*pointer2;pointer=free_block;pointer1=pointer2=pointer->next;/*使用冒泡法進行排序*/while(pointer->next!=NULL){while(pointer2!=NULL){if(pointer->next->size<=pointer2->size){pointer1=pointer2;pointer2=pointer2->next;}else{pointer1->next=pointer2->next;pointer2->next=pointer->next;pointer->next=pointer2;break;}}pointer=pointer->next;pointer1=pointer2=pointer->next;}return1;}/*按WF算法重新整理內(nèi)存空閑塊鏈表*/intrearrange_WF(void){structfree_block_type*pointer,*pointer1,*pointer2;pointer=free_block;pointer1=pointer2=pointer->next;/*使用冒泡法進行排序*/while(pointer->next!=NULL){while(pointer2!=NULL){if(pointer->next->size>=pointer2->size){pointer1=pointer2;pointer2=pointer2->next;}else{pointer1->next=pointer2->next;pointer2->next=pointer->next;pointer->next=pointer2;break;}}pointer=pointer->next;pointer1=pointer2=pointer->next;}return1;}/*分配內(nèi)存模塊*/intallocate_mem(structallocated_block*ab){structfree_block_type*fbt,*pre;intrequest_size=ab->size;intmemory_count;fbt=pre=free_block;while((pre!=NULL)&&(request_size>pre->size)){//遍歷查找匹配空白區(qū)memory_count+=pre->size;fbt=pre;pre=pre->next;}if(!pre){if(memory_count>=request_size){free_memory_rearrage(memory_count-request_size,request_size);/*不可滿足,采用緊縮技術(shù)*/return0;}else{printf("thememoryallocatedisfailed!\n");return0;}}else{if((pre->size-request_size)>MIN_SLICE){//找到可滿足空閑分區(qū)且分配后剩余空間足夠大,則分割pre->size=pre->size-request_size;ab->start_addr=pre->start_addr+pre->size;}else{fbt->next=pre->next;//找到可滿足空閑分區(qū)且但分配后剩余空間比較小,則一起分配ab->start_addr=pre->start_addr;ab->size=pre->size;}}rearrange(ma_algorithm);//分配成功,按照相應(yīng)算法排序return1;}/*緊縮內(nèi)存*/intfree_memory_rearrage(intmemory_reduce_size,intsize){structfree_block_type*pointer1,*pointer2;structallocated_block*x1,*x2;x1=(structallocated_block*)malloc(sizeof(structallocated_block));pointer1=free_block->next;pointer2=pointer1->next;pointer1->start_addr=0;pointer1->size=memory_reduce_size;pointer1->next=NULL;while(pointer2!=NULL){pointer1=pointer2;pointer2=pointer2->next;free(pointer1);}x2=allocated_block_head;x1->pid=pid;x1->size=size;x1->start_addr=memory_reduce_size;sprintf(x1->process_name,"PROCESS-%02d",pid);x1->next=allocated_block_head;allocated_block_head=x1;x2=x1->next;while(x2!=NULL){x2->start_addr=x1->start_addr+x1->size;x1=x2;x2=x2->next;}return1;}
第二篇:西安郵電大學(xué)操作系統(tǒng)考題1100字-----------------紙---用--專---卷--題---試---院線學(xué)--電--郵---安--西-------------------訂-----------號---序--內(nèi)---班----------------------裝---名---姓------------------------上--級---班--業(yè)---專------------------共3頁第1頁------------------------------------線------------------------------訂----------------------------------裝-----------------------------封--------------------------------密-------------------------說明:1。擬題請用碳塑墨水鋼筆書寫。不要出框。除填空題、圖解及特殊要求外一般不留答題空間。2.裝訂試卷,考生答卷時不得拆開或在框外留寫標記,否則按零分計-------------------------------紙--用---專--卷--線題試---院---學(xué)--電---郵--安---西
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45605-2025城市道路交通閃爍光信號技術(shù)要求
- 2025屆江西省鷹潭市高三一模語文試題 含解析
- 文物古建-火災(zāi)應(yīng)急預(yù)案(3篇)
- 車間電氣火災(zāi)的應(yīng)急預(yù)案(3篇)
- 二次電纜火災(zāi)應(yīng)急預(yù)案(3篇)
- 行政法學(xué)理論指導(dǎo)試題及答案
- 商場電器火災(zāi)的應(yīng)急預(yù)案(3篇)
- 企業(yè)變化管理與風險防范的結(jié)合試題及答案
- 2025年前沿技術(shù)考試考題及答案
- 發(fā)生火災(zāi)處理應(yīng)急預(yù)案(3篇)
- 涉詐風險賬戶審查表
- 教科版六下科學(xué)全冊課時練(含答案)
- GB/T 18781-2023珍珠分級
- GA/T 544-2021多道心理測試系統(tǒng)通用技術(shù)規(guī)范
- 年代小說先鋒小說
- 【超星爾雅學(xué)習(xí)通】世界建筑史網(wǎng)課章節(jié)答案
- (52)-皰疹性咽峽炎小兒推拿探秘
- 土建施工員培訓(xùn)課件
- 新音樂初放 學(xué)堂樂歌說課課件
- GMP體系文件(手冊+程序)
- 陜西延長石油四海煤化工有限公司金屬鎂廠1萬噸-年金屬鎂生產(chǎn)項目環(huán)評報告
評論
0/150
提交評論