◼ 首次適應演算法 ff(first fit)
◼ 基本思想:要求空閒分割槽按位址遞增的次序排列。當進行記憶體分配時,從空閒區表頭開始順序查詢,直到找到第乙個能滿足其大小要求的空閒區為止。分一塊給請求者,餘下部分仍留在空閒區中。
**:
#include
#include
#include
#include
//#define null 0
typedef
struct table
node;
bool success;
/*分配成功與否的標誌*/
node *
insert
(node *head, node *p)
/*按照「位址遞增方式」將 p 結點插入鍊錶相應位置*/
pre=head;
while
(q)else}if
(!q)
return head;
}node *
creat()
/*根據位址遞增方式建立分配分割槽表(flag==1)或空閒分割槽表(flag==0)*/
return head;
}int
distribute
(node *freehead, node *distributedhead, node *work)
/*在空閒分割槽表中找出首次合適 work 的分割槽,同時修改空閒分割槽表和分配分割槽表*/
return1;
}else}if
(!s)
return0;
}void print (node *head)
/*輸出鍊錶*/
}int
main()
work->length=a;
while
(a!=-1
) work=
(node*
)malloc
(sizeof
(node));
printf
("the length of worked job is:");
scanf
("%d"
,&a)
;printf
("\n");
//getchar();
printf
("the name of worked job is:");
scanf
("%s"
,workn)
;for
(int i=
0; i<
10; i++
) work->length=a;
}return0;
}
測試資料:
/*0 60 1 os
60 40 1 task1
132 18 1 task2
160 40 1 task3
205 15 1 task4
438 92 1 task5
626 174 1 task6
0 -1 1 0*/
/*100 32 0 nuil
150 10 0 nuil
200 5 0 nuil
220 218 0 nuil
530 96 0 nuil
0 -1 0 0*/
動態分割槽 首次適應 最佳適應
對分割槽的分配演算法可以是下面三種演算法之一 memory v1.cpp 定義控制台應用程式的入口點。name memory v1.cpp author wanglin created on 2015 11 04 function 首次適應演算法 可變式分割槽分配,模擬實現分割槽的分配和 過程。in...
首次適應演算法 FF 和迴圈首次適應演算法 NF
原文 ff和nf演算法都是基於順序搜尋的動態分割槽分配演算法,在記憶體中檢索一塊分割槽分配給作業。如果空間大小合適則分配,如果找不到空間則等待。ff演算法按位址遞增從頭掃瞄空閒分割槽,如果找到空閒分割槽大小 作業大小則分配。如果掃瞄完空閒分割槽表都沒有找到分割槽,則分配失敗。nf演算法和ff演算法類...
首次適應演算法 最佳適應演算法和最差適應演算法
首次適應演算法 first fit 從空閒分割槽表的第乙個表目起查詢該錶,把最先能夠滿足要求的空閒區分配給作業,這種方法的目的在於減少查詢時間。最佳適應演算法 best fit 從全部空閒區中找出能滿足作業要求的,且大小最小的空閒分割槽,這種方法能使碎片盡量小。最差適應演算法 worst fit 它...