91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

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

資源簡介

設(shè)計程序模擬內(nèi)存的動態(tài)分區(qū)法存儲管理。內(nèi)存空閑區(qū)使用自由鏈管理,采用最壞適應(yīng)算法從自由鏈中尋找空閑區(qū)進行分配,內(nèi)存回收時假定不做與相鄰空閑區(qū)的合并。 假定系統(tǒng)的內(nèi)存共640K,初始狀態(tài)為操作系統(tǒng)本身占用64K。在t1時間之后,有作業(yè)A、B、C、D分別請求8K、16K、64K、124K的內(nèi)存空間;在t2時間之后,作業(yè)C完成;在t3時間之后,作業(yè)E請求50K的內(nèi)存空間;在t4時間之后,作業(yè)D完成。要求編程序分別輸出t1、t2、t3、t4時刻內(nèi)存的空閑區(qū)的狀態(tài)。

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#define?NULL?0

struct?freelink{
?????int?len?address;??//??len為分區(qū)長度??address為分區(qū)起始地址?
?????struct?freelink?*next;
};
//內(nèi)存占用區(qū)用鏈表描述,其結(jié)點類型描述如下:
struct?busylink{
?????char?name;???//?作業(yè)或進程名??name=‘S‘?表示OS占用?
?????int?len??address;
?????struct?busylink?*next;
};
//并設(shè)全程量:
struct?freelink?*free_head=NULL;??????//自由鏈隊列(帶頭結(jié)點)隊首指針?????????
struct?busylink?*busy_head=NULL????//占用區(qū)隊列隊(帶頭結(jié)點)首指針?????????????????
????????????????*busy_tail=NULL;???//占用區(qū)隊列隊尾指針

void?start(void);???/*?設(shè)置系統(tǒng)初始狀態(tài)*/?
void?requireMemo(char??name?int??require);?/*模擬內(nèi)存分配*/
void?freeMemo(char?name);??/*?模擬內(nèi)存回收*/?
void?past(int??time);??/*?模擬系統(tǒng)過了time?時間*/
void?printlink();??/*?輸出內(nèi)存空閑情況(自由鏈的結(jié)點)?*/?

void?main()
{???
int?t1=1t2=2t3=3t4=4;
start();
????past(t1);
????requireMemo(‘A‘8);??requireMemo(‘B‘16);?
????requireMemo(‘C‘64);?requireMemo(‘D‘124);//A、B、C、D分別進入
????printlink();//顯示t1時刻內(nèi)存空閑區(qū)
????past(t2);
????freeMemo(‘C‘);//C結(jié)束
????printlink();//顯示t2時刻內(nèi)存空閑區(qū)
????past(t3);
????requireMemo(‘E‘50);//E進入
????printlink();//顯示t3時刻內(nèi)存空閑區(qū)
past(t4);
????freeMemo(‘D‘);//D結(jié)束
????printlink();//顯示t4時刻內(nèi)存空閑區(qū)
}

void?start()
{?????
struct?freelink?*p;
????struct?busylink?*q;
????free_head=(struct??freelink*)malloc(sizeof(struct??freelink));
????free_head->next=NULL;??//?創(chuàng)建自由鏈頭結(jié)點
????busy_head=busy_tail=(struct??busylink*)malloc(sizeof(struct??busylink));
????busy_head->next=NULL;??//?創(chuàng)建占用鏈頭結(jié)點
????p=(?struct?freelink?*)malloc(sizeof(struct?freelink));
????p->address=64;
????p->len=640-64;??//(OS占用了64K)
????p->next=NULL;?
????free_head->next=p;
????q=(?struct??busylink?*)malloc(sizeof(struct?busylink));
????q->name=‘S‘;??/*??

評論

共有 條評論

相關(guān)資源