/*
**@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,分別利用四種動態分割槽分配演...