作業系統 動態分割槽分配模擬程式

2021-08-20 09:33:15 字數 1609 閱讀 6132

/*

**@unintented

**@2017.12.14

*/#include#include#pragma warning(disable:4996)//防止scanf報錯(vs2013)

struct procpro;//存放各程序的請求

struct me;//存放各分割槽

typedef me me;

me *top;//頭結點

void initial(int me_size)

int pro_num;//存放運算元目

int squ=1;//輸出的序號

void ff();//最先適應

void bf();//最好適應

void wf();//最差適應

void print();

int main()

print();

}}void print()

printf("\n");

}void ff()

else

else if(pro.size me_size )

else}}

}else if (pro.act == 2)

else if (p->pid == pro.pid)

else

if (temp->pid == -1)

break;//一定要前後都判斷是否為空後才break}}

}}void bf()

else

else if (pro.size me_size)

p = p->next;

continue;

}else}}

if (t == -1)

else if(t!=-1&&flag==1)

m = m->next;}}

else if (t != -1 && flag != 1)

m = m->next;}}

}else if (pro.act == 2)

else if (p->pid == pro.pid)

else

if (temp->pid == -1)

break;//一定要前後都判斷是否為空後才break}}

}}void wf()

else

else if (pro.size me_size)

p = p->next;

continue;

}else}}

if (t == -1)

else if (t != -1 && flag == 1)

m = m->next;}}

else if (t != -1 && flag != 1)

m = m->next;}}

}else if (pro.act == 2)

else if (p->pid == pro.pid)

else

if (temp->pid == -1&&p->head ==0)

else if(temp->pid==-1&&p->head!=0)

break;//一定要前後都判斷是否為空後才break}}

}}

作業系統 動態分割槽分配演算法的模擬

1.初始化功能 記憶體狀態設定為初始狀態。2.分配功能 要求至少使用兩種演算法,使用者可以選擇使用。3.功能 4.空閒塊的合併 即緊湊功能,用以消除碎片。當做碎片整理時,需要跟蹤分配的空間,修改其引用以保證引用的正確性。5.顯示當前記憶體的使用狀態,可以使用 或圖形。實現分配功能的4種演算法 1.最...

作業系統 動態分割槽分配演算法

空閒分割槽以位址遞增的次序排列,1 2 3。假設要分配為5大小的記憶體,首先從鏈頭開始查詢,第乙個滿足,分配,修改相應的記憶體,再分配乙個為9大小的記憶體,從鏈頭開始查詢,第二個滿足,分配。則 演算法思想 由於動態分割槽分配是一種連續分配方式,為各程序分配的空間必須是連續的一整片區域。因此為了保證當...

作業系統實驗之動態分割槽分配演算法

設計程式模擬四種動態分割槽分配演算法 首次適應演算法 迴圈首次適應演算法 最佳適應演算法和最壞適應演算法的工作過程。假設記憶體中空閒分割槽個數為n,空閒分割槽大小分別為p1,pn,在動態分割槽分配過程中需要分配的程序個數為m m n 它們需要的分割槽大小分別為s1,sm,分別利用四種動態分割槽分配演...