首次適應算法

首次適應算法從空閒分區表的第一個表目起查找該表,把最先能夠滿足要求的空閒區分配給作業,這種方法目的在於減少查找時間。為適應這種算法,空閒分區表(空閒區鏈)中的空閒分區要按地址由低到高進行排序。該算法優先使用低址部分空閒區,在低址空間造成許多小的空閒區,在高地址空間保留大的空閒區。

基本介紹

首次適應算法的特點(First Fit):
該算法傾向於優先利用記憶體中低址部分的空閒分區,從而保留了高址部分的大空閒區,這為以後到達的大作業分配大的記憶體空間創造了條件。
缺點
低址部分不斷被劃分,會留下許多難以利用的,很小的空閒分區,稱為碎片。而每次查找又都是從低址部分開始的,這無疑又會增加查找可用空閒分區時的開銷。
算法實現過程舉例
Question 3: Segment Allocation Algorithms
Given five memory partitions of 100 KB, 500 KB, 200 KB, 300 KB, and 600 KB (in order), how would the first-fit algorithms place processes of 212 KB, 417 KB, 112 KB, and 426 KB (in order)?
對於上述問題,該算法將實現以下操作
為212k分配空間:
依次找尋,找到第一個大於212k的空閒區;
找到第二個空閒區500k>212k,分配給212k,剩餘288k空閒區;
為417k分配空間:
依次找尋,找到第一個大於417k的空閒區;
找到第五個空閒區600k>417k,分配給417k,剩餘183k空閒區
為112k分配空間:
依次找尋,找到第一個大於112k的空閒區;
找到第二個空閒區288k>112k,分配給112k,剩餘176k空閒區
為426k分配空間:
依次找尋,找到第一個大於426k的空閒區;
未找到,此作業將等待釋放空間

相關詞條

熱門詞條

聯絡我們