內(nèi)存管理 操作系統(tǒng)實驗 代碼_第1頁
內(nèi)存管理 操作系統(tǒng)實驗 代碼_第2頁
內(nèi)存管理 操作系統(tǒng)實驗 代碼_第3頁
內(nèi)存管理 操作系統(tǒng)實驗 代碼_第4頁
內(nèi)存管理 操作系統(tǒng)實驗 代碼_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、實驗報告撰寫要求實驗報告要求具有以下內(nèi)容:一、實驗?zāi)康亩?、實驗?nèi)容三、實驗要求四、算法流程圖五、給出測試數(shù)據(jù)及運行結(jié)果六、實驗體會或?qū)Ω倪M(jìn)實驗的建議操作系統(tǒng)實驗課第三次實驗及代碼實驗3 內(nèi)存管理(2學(xué)時)一、實驗?zāi)康?通過實驗加強對內(nèi)存管理方法的理解和掌握。二、實驗內(nèi)容 編寫程序?qū)崿F(xiàn)采用可變分區(qū)方法管理內(nèi)存。三、實驗要求1、在該實驗中,采用可變分區(qū)方式完成對存儲空間的管理(即存儲空間的分配與回收工作)。2、設(shè)計用來記錄主存使用情況的數(shù)據(jù)結(jié)構(gòu):已分區(qū)表和空閑分區(qū)表或鏈表。3、在設(shè)計好的數(shù)據(jù)結(jié)構(gòu)上設(shè)計一個主存分配算法。4、在設(shè)計好的數(shù)據(jù)結(jié)構(gòu)上設(shè)計一個主存回收算法。其中,若回收的分區(qū)有上鄰空閑分區(qū)和

2、(或)下鄰空閑分區(qū),要求合并為一個空閑分區(qū)登記在空閑分區(qū)表的一個表項里。5、(附加)若需要可以實現(xiàn)程序的浮動,對內(nèi)存空間進(jìn)行緊湊。#include<iostream>#include<vector>#include<fstream>#include<sstream>#include<string>using namespace std;typedef struct node int ID;/分區(qū)IDstruct node *next; /指向下個分區(qū)的指針float beginAddress;/分區(qū)起始地址float length;/

3、分區(qū)長度int ZY;/分區(qū)是否被占用,1被占用,0未被占用FQ;FQ *First=(FQ*)malloc(sizeof(FQ);/鏈表的頭指針int FQCount=0;/分區(qū)的個數(shù)void display();/顯示內(nèi)存狀態(tài)void FenPei(float len);/主存分配函數(shù)void HuiShou(int id);/主存回收函數(shù)int maxID=0;int main()/初始化內(nèi)存分區(qū)狀態(tài)fstream file; file.open("input.txt",ios_base:in|ios_base:out|ios_base:app);string s0;

4、getline(file,s0);istringstream sin(s0);sin>>FQCount;FQ *temp=(FQ*)malloc(sizeof(FQ);/當(dāng)前指針temp=First;for(string s;getline(file,s);)FQ *fq=(FQ*)malloc(sizeof(FQ);istringstream sin(s);sin>>fq->beginAddress;sin>>fq->length;sin>>fq->ZY;fq->ID=+maxID;fq->next=NULL;te

5、mp->next=fq;temp=fq;cout<<"最初的內(nèi)存分配狀態(tài):"<<endl;display();while(1)cout<<"請選擇要進(jìn)行的操作:n1.請求分配內(nèi)存 2.請求回收內(nèi)存 3.退出n"int choice;cin>>choice;if(choice=1)cout<<"請求分配內(nèi)存n"cout<<"請輸入要分配的內(nèi)存的長度:"int len;cin>>len;FenPei(len);else if(ch

6、oice=2)cout<<"請求回收內(nèi)存n"cout<<"請輸入要回收的內(nèi)存的ID:"int ID;cin>>ID;HuiShou(ID);else if(choice=3)break;elsecout<<"輸入有誤!請重新選擇!n"continue;return 1;void display()FQ *fqBegin=First->next;cout<<"IDtBeginAddresstLengthtStaten"while(fqBegin!=NU

7、LL)cout<<fqBegin->ID<<"t"<<fqBegin->beginAddress<<"tt"<<fqBegin->length<<"t"<<fqBegin->ZY<<endl;fqBegin=fqBegin->next;void FenPei(float len)FQ *temp=(FQ*)malloc(sizeof(FQ);/當(dāng)前指針temp=First;while(!(temp->ne

8、xt->ZY=0&&temp->next->length>=len)temp=temp->next;temp=temp->next;FQ *fq1=(FQ*)malloc(sizeof(FQ);fq1->ID=+maxID;fq1->next=temp->next;fq1->beginAddress=temp->beginAddress+len;fq1->length=temp->length-len;fq1->ZY=0;temp->next=fq1;temp->length=len

9、;temp->ZY=1;display();void HuiShou(int id)FQ *temp=(FQ*)malloc(sizeof(FQ);/當(dāng)前指針temp=First;while(!(temp->next->ID=id)temp=temp->next;if(temp->ZY=0)if(temp->next->next=NULL)temp->next=NULL;temp->length=temp->length+temp->next->length;else if(temp->next->next-&

10、gt;ZY=1)temp->next=temp->next->next;temp->length=temp->length+temp->next->length;elsetemp->length=temp->length+temp->next->length+temp->next->next->length;temp->next=temp->next->next->next;elseif(temp->next->next=NULL|temp->next->next

11、->ZY=1)temp->next->ZY=0;elsetemp->next->length=temp->next->length+temp->next->next->length;temp->next->next=temp->next->next->next;temp->next->ZY=0;display();0805114實驗4 頁面置換算法(2學(xué)時)(待續(xù)敬請期待)一、實驗?zāi)康?通過實驗加強對虛擬存儲管理中頁面置換算法的理解和掌握。二、實驗內(nèi)容 編寫程序?qū)崿F(xiàn)虛擬存儲管理中OPT,FIFO,LRU頁面置換算法。三、實驗要求1、任意給出一組頁面訪問順序(如頁面走向是1、2、5、7、5、7、1、4、3、5、6、4、3、2、1、5、2)。2、分配給該作業(yè)一定的物理塊(如3塊

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論