Implement A Code To Solve The Memory Management Technique Problem - Mplement A Code To Solve The Memory Management Technique Problem.
Implement A Code To Solve The Memory Management Technique Problem - Mplement A Code To Solve The Memory Management Technique Problem.
Lab Report NO # 03
Course Title: Operating System lab
Course Code: CSE-310 Section: 212-D4
Lab Experiment Name: Simulating the MFT and MVT Memory Management
Techniques.
Student Details
Name Id
Khalid Bin Walid 212002075
2. Problem Analysis:
3. Analysis
#include <stdio.h>
int main() {
int numBlocks, numProcesses;
printf("Enter the number of blocks: ");
scanf("%d", &numBlocks);
int processSize[numProcesses];
int totalProcessSizes = 0,
totalProcessSizesUsed = 0;
for (int i = 0; i < numProcesses; i++) {
printf("Enter memory required for process %d: ", i + 1);
scanf("%d", &processSize[i]);
totalProcessSizes += processSize[i];
}
for (int i = 0; i < numProcesses; i++) {
for (int j = 0; j < numBlocks; j++) {
if (blockSize[j] >= processSize[i] && blockAllocation[j] == -1) {
blockAllocation[j] = i;
blockSize[j] -= processSize[i];
totalMemoryUsed +=
processSize[i];
break;
}
}
}
printf("\nProcesses\tProcess size\tBlock\tBlock size\tAllocated\tInt. Frag.\n");
for (int i = 0; i < numProcesses; i++) {
int allocatedBlock = -1;
for (int j = 0; j < numBlocks; j++) {
if (blockAllocation[j] == i) {
allocatedBlock = j;
break;
}
}
if (allocatedBlock != -1) {
printf("%d\t\t%d\t\t%d\t\t%d\t\tYES\t\t%d\n", i + 1, processSize[i],
allocatedBlock + 1, blockSizeCopy[allocatedBlock], blockSizeCopy[allocatedBlock]
- processSize[i]);
} else {
printf("%d\t\t%d\t\t-\t\t-\t\tNO\t\t-\n", i + 1, processSize[i]);
}
}
return 0;
}
4. Input/Output:
Input:
Output: