模擬首次適應(First Fit)演算法

2021-10-10 23:53:18 字數 1707 閱讀 8004

◼ 首次適應演算法 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 它...