可變分區(qū)存儲管理方式的內(nèi)存分配和回收_第1頁
可變分區(qū)存儲管理方式的內(nèi)存分配和回收_第2頁
可變分區(qū)存儲管理方式的內(nèi)存分配和回收_第3頁
可變分區(qū)存儲管理方式的內(nèi)存分配和回收_第4頁
可變分區(qū)存儲管理方式的內(nèi)存分配和回收_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、#include<stdio.h>/定義輸入/輸出函數(shù)#include<iostream.h>/數(shù)據(jù)流輸入/輸出 #include<string.h>/字符串處理#include<iomanip.h>/參數(shù)化輸入/輸出const int MJ=10;/假定系統(tǒng)允許的最大作業(yè)數(shù)量為10typedef struct nodeint address;int length;char tag10;job;job freesMJ;int free_quantity;job occupysMJ;int occupy_quantity;int read()FIL

2、E *fp;char fn10;cout<<"請輸入初始空閑表文件名:"cin>>fn;if(fp=fopen(fn,"r")=NULL) 其意義是在當前目錄下打開文件file a,只允許進行“讀”操作,并使fp指向該文件cout<<"錯誤,文件打不開,請檢查文件名"<<endl;elsewhile(!feof(fp)fscanf(fp,"%d,%d",&freesfree_quantity.address,&freesfree_quantity.le

3、ngth);free_quantity+; fscanf(文件指針,格式字符串,輸入表列);return 1;return 0;void sort()int i,j,p;for(i=0;i<free_quantity-1;i+)p=i;for(j=i+1;j<free_quantity;j+)if(freesj.address<freesp.address)p=j;if(p!=i)freesfree_quantity=freesi;freesi=freesp;freesp=freesfree_quantity;void view()int i;cout<<endl

4、<<"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm"<<endl;cout<<"輸出空閑區(qū)表:n起始地址 分區(qū)長度 狀態(tài)n"<<endl;for(i=0;i<free_quantity;i+)cout.setf(2);cout.width(12);cout<<freesi.address;cout.width(10);cout<<freesi.length;cout.width(8);cout<&l

5、t;freesi.tag<<endl;cout<<endl<<"wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww"<<endl;cout<<"輸出已分分區(qū)表:n起始地址 分區(qū)長度 占用作業(yè)名n"<<endl;for(i=0;i<occupy_quantity;i+)cout.setf(2);cout.width(12);cout<<occupysi.address;cout.width(10);

6、cout<<occupysi.length;cout.width(8);cout<<occupysi.tag<<endl;void ear()char job_name10;int job_length;int i,j,flag,t;cout<<"請輸入分配內(nèi)存的作業(yè)名和空間大小:"cin>>job_name;cin>>job_length;flag=0;for(i=0;i<free_quantity;i+) /尋找空間大于作業(yè)的空閑區(qū)登記項if(freesi.length>=job_len

7、gth)flag=1;if(flag=0) /未找到空閑區(qū),返回cout<<endl<<"無可用的空閑區(qū)n"<<endl;elset=0;i=0;while(t=0)if(freesi.length>=job_length)/找到可用空閑區(qū),開始分配t=1;i+;i-;occupysoccupy_quantity.address=freesi.address; /修改已分配區(qū)表 strcpy(occupysoccupy_quantity.tag,job_name);occupysoccupy_quantity.length=job_

8、length;occupy_quantity+;if(freesi.length>job_length)freesi.address+=job_length;freesi.length-=job_length;elsefor(j=i;j<free_quantity-1;j+)freesj=freesj+1;free_quantity-;cout<<"內(nèi)存空間成功:)"<<endl; void reclaim()/回收作業(yè)所占的內(nèi)存空間char job_name20;int i,j,flag,p=0;int address;int leng

9、th;/尋找已分分區(qū)表中對應(yīng)的登記項cout<<"輸入要回收分區(qū)的作業(yè)名:"cin>>job_name;flag=-1;for(i=0;i<occupy_quantity;i+)if(!strcmp(occupysi.tag,job_name)flag=i;address=occupysi.address;length=occupysi.length;if(flag=-1) /在已分分區(qū)表中找不到作業(yè)cout<<"沒有這個作業(yè)名"<<endl;else/修改空閑區(qū)表,加入空閑表for(i=0;i<

10、;free_quantity;i+)if(freesi.address+freesi.length)=address)if(i+1)<free_quantity)&&(freesi+1.address=address+length)freesi.length=freesi.length+freesi+1.length+length;for(j=i+1;j<free_quantity;j+)freesj=freesj+1;free_quantity-;p=1;elsefreesi.length+=length;p=1;if(freesi.address=(addres

11、s+length)freesi.address=address;freesi.length+=length;p=1;if(p=0)freesfree_quantity.address=address;freesfree_quantity.length=length;free_quantity+;/刪除分配表中的該作業(yè)for(i=flag;i<occupy_quantity;i+)occupysi=occupysi+1;occupy_quantity-;void main()int flag=0;int t=1;int chioce=0;int i;for(i=0;i<MJ;i+)f

12、reesi.address=-1;/空閑區(qū)表初始化freesi.length=0;strcpy(freesi.tag,"free");occupysi.address=-1;/已分分區(qū)表初始化occupysi.length=0;strcpy(occupysi.tag,"");free_quantity=0;occupy_quantity=0;flag=read();while(flag=1)sort();cout<<"選擇功能項: (0-退出,1-分配內(nèi)存,2-回收內(nèi)存,3-顯示內(nèi)存)n"<<endl;cout<<&

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論