xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 7KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-05
  • 語言: C/C++
  • 標簽:

資源簡介

能夠輸入給定的內存大小,進程的個數,每個進程的段數及段大小; 要求當某進程提出申請空間的大小后,顯示能否滿足申請,以及為該進程分配資源后有關內存空間使用的數據(注意回收后的合并)。

資源截圖

代碼片段和文件信息

#include
#include
#include
#define??neicun??1024
using?namespace?std;
struct?kongxian{
unsigned?int?length;
unsigned?int?addr;
????????int?flag;
????????kongxian?*next;
};
struct?Duanbiao{
int?jincheng;
unsigned?int?duannum;
unsigned?int?addr;
unsigned?int?length;
int?flag;?//標識所請求的段在內存還是外存中
????????Duanbiao?*next;
};
kongxian?*Khead;//空閑鏈表頭指針
kongxian?*creatK();//創建初始空閑區
Duanbiao?*Dhead;//請求段表頭指針
Duanbiao?*Dfenpei;//已分配鏈表頭指針
Duanbiao?*qingqiuD(Duanbiao?*head);//輸入請求的進程及各段
kongxian?*zuixian(Duanbiao*?head);
kongxian*?sort(kongxian?*head);
int?huishou();
int?select;
char?ch;
int?jinchengming;
int?jinchenghuishou();
int?duanhuishou();
int?Display();
void?space(int?n);
int?main()
{
cout<<“\t******************************************************“<????cout<<“\t***????????模擬段式存儲管理的分配與回收!???????????***“<????cout<<“\t******************************************************“< Dfenpei=NULL;?//已分配鏈表頭指針
Khead=NULL;??//空閑鏈表頭指針
Khead=creatK();??//創建初始空閑區
Dhead=NULL;??//請求段表頭指針
do
{
cout< space(5);
cout<<“1.分配存儲空間“< space(5);
cout<<“2.回收存儲空間“< space(5);
cout<<“3.顯示存儲資源狀況“<????????space(5);
cout<<“4.退出“<
cin>>select;
switch(?select?)
{
case?1:
Dhead=qingqiuD(Dhead);//創建申請鏈表
Khead=zuixian(Dhead);//為申請鏈表分配空間
break;
case?2:
huishou();
break;
case?3:
Display();
break;
case?4:
break;
default:
cout<<“輸入錯誤請重新選擇操作!“< break;
}
}while(select!=4);
return?0;
}

kongxian?*creatK()
{
kongxian?*p=new?kongxian;
p->length=neicun;
p->addr=0;
p->flag=0;
p->next=NULL;
return?p;
}

Duanbiao*?qingqiuD(Duanbiao*?head)
{
Duanbiao?*p1*p2;
p1=p2=new?Duanbiao;
cout<<“請輸入請求資源的進程號:“;
cin>>jinchengming;
cout<<“請輸入段號及長度\n“;
cout<<“段號“< cin>>p1->duannum>>p1->length;
p1->next=NULL;
if(head!=NULL)
{
p2=head;
while(p2->next!=NULL)p2=p2->next;//p2指向已分配表的最后一個結點
}
while(p1->duannum!=-1)
{
p1->jincheng=jinchengming;
p1->flag=0;
if(head==NULL)head=p1;
else?p2->next=p1;
p2=p1;
p1=new?Duanbiao;
p1->next=NULL;
????????cin>>p1->duannum>>p1->length;
}
delete?p1;
return?head;
}

kongxian?*zuixian(Duanbiao*?head)
{
kongxian?*pK;//空閑鏈表頭指針
Duanbiao?*p1*p2;??//已分配鏈表結點
Duanbiao?*pD=head;//請求段表頭指針
Duanbiao?*pf=Dfenpei;
p1=p2=new?Duanbiao;
p1->next=NULL;
if(Dfenpei!=NULL)
{
p2=Dfenpei;
while(p2->next!=NULL)p2=p2->next;//p2指向已分配表的最后一個結點
}
for(pD;pD!=NULL;pD=pD->next)
{??
pK=Khead;
for(pK;pK!=NULL;pK=pK->next)//從空閑區表順序查找
{
if(pK->length>=pD->length)
{
p1->flag=1;//表示在內存中
p1->jincheng=pD->jincheng;
p1->duannum=pD->duannum;
p1->addr=pK->addr;
p1->length=pD->length;
if(Dfenpei==NULL)Dfenpei=p1;
else?p2->next=p1;
p2=p1;
p1=new?Duanbiao;
p1->nex

評論

共有 條評論