用c語言實現採用最佳適應演算法的動態分割槽分配過程和**過程。
其中,空閒分割槽通過空閒分割槽鏈(表)來管理;在進行記憶體分配時,系統優先使用空閒區低端的空間,要求每次分配和**後顯示出空閒記憶體分割槽鏈的情況。
#include
#include
#include
#define free 0
#define busy 1
#define max_length 640
typedef
struct freearea//空閒區的結構體
freearea;
typedef
struct dunode//首尾不互連的雙向鍊錶結點
dunode,
*dulinklist;
dulinklist m_rid;
dulinklist m_last;
void
init()
//空閒區佇列初始化
intbest_fit
(int id,
int size)
//最佳適應演算法
p=p->next;
}while
(p)//繼續遍歷,找到合適的位置
if(p->data.isused == free && p->data.size > size)
//可用記憶體與需求記憶體的差值更小
} p=p->next;}if
(q ==
null
)//沒有找到位置
return0;
else
//找到最佳位置
}void
alloc()
//分配記憶體
void
freenode()
//釋放記憶體if(
!p->next->data.isused && p->prior->data.isused)
//與後乙個空閒區相鄰,則合併
else
p->next = p->next->next;}if
(!p->prior->data.isused &&
!p->next->data.isused)
//前後的空閒區均為空
else
p->prior->next = p->next->next;
}printf
("釋放記憶體成功!\n");
break;}
p = p->next;if(
!p)printf
("記憶體中沒有該需要釋放記憶體的作業!");
}}void
show()
}int
main()
}}
首次適應演算法 C語言實現
用c語言實現採用首次適應演算法的動態分割槽分配過程和 過程。其中,空閒分割槽通過空閒分割槽鏈 表 來管理 在進行記憶體分配時,系統優先使用空閒區低端的空間,要求每次分配和 後顯示出空閒記憶體分割槽鏈的情況。include include include define free 0 define bu...
C 最佳適應演算法實現
include includeusing namespace std define max free 10 空閒區最大個數 define max job 10 已分分割槽最大個數 struct table free table max free used table max job static f...
c語言實現磁碟排程演算法 C語言實現洗牌演算法
首先看一道題目 有乙個大小為100的陣列,裡面的元素是從 1 到 100,隨機從陣列中選擇50個不重複數。用math.random 100,就可以拿到乙個 0 到 99 的隨機數,是不是重複50次就可以了?當然不是,假如,第一次隨機到5,第二次如果再一次隨機到5的話,要求是選擇不重複的數,所以要選出...