Untitled
unknown
plain_text
7 months ago
1.2 kB
2
Indexable
Never
#include <iostream> #include <climits> using namespace std; void bestFit(int blockSize[], int m, int processSize[], int n) { int allocation[n]; for (int i = 0; i < n; i++) { int bestIdx = -1; for (int j = 0; j < m; j++) { if (blockSize[j] >= processSize[i]) { if (bestIdx == -1 || blockSize[j] < blockSize[bestIdx]) { bestIdx = j; } } } if (bestIdx != -1) { allocation[i] = bestIdx; blockSize[bestIdx] -= processSize[i]; } else { allocation[i] = -1; } } cout << "Process No\tProcess Size\tBlock Number\n"; for (int i = 0; i < n; i++) { cout << " " << i+1 << "\t\t" << processSize[i] << "\t\t"; if (allocation[i] != -1) { cout << allocation[i] + 1 << endl; } else { cout << "Not Allocated" << endl; } } } int main() { int blockSize[] = {100, 50, 30, 120, 35}; int processSize[] = {40, 10, 30, 60}; int m = sizeof(blockSize) / sizeof(blockSize[0]); int n = sizeof(processSize) / sizeof(processSize[0]); bestFit(blockSize, m, processSize, n); return 0; }
Leave a Comment