22IT3044 - OS - Assignment - Lab 8
22IT3044 - OS - Assignment - Lab 8
Problem 1
#include <stdio.h>
#define MAX_BLOCKS 10
#define MAX_PROCESSES 10
// Copy the block sizes to preserve the original values for output
for (i = 0; i < numBlocks; i++) {
originalBlockSizes[i] = blockSizes[i];
}
int main() {
int numBlocks, numProcesses;
int blockSizes[MAX_BLOCKS], processSizes[MAX_PROCESSES];
return 0;
}
Problem 2
#include <stdio.h>
struct Block {
int size;
int is_allocated;
int fragment;
};
struct File {
int size;
int block_index;
int fragment;
};
void bestFit(int num_blocks, int num_files, struct Block blocks[], struct File
files[]) {
for (int i = 0; i < num_files; i++) {
int best_index = -1;
int main() {
int num_blocks, num_files;
// Input number of blocks and files
printf("Enter number of blocks: ");
scanf("%d", &num_blocks);
printf("Enter number of files: ");
scanf("%d", &num_files);
// Output results
printf("\nFile_no\tFile_size\tBlock_no\tBlock_size\tFragment\n");
for (int i = 0; i < num_files; i++) {
if (files[i].block_index != -1) {
printf("%d\t%d\t\t%d\t\t%d\t\t%d\n",
i + 1, files[i].size, files[i].block_index, blocks[files[i].block_index - 1].size,
files[i].fragment);
} else {
printf("%d\t%d\t\tNot Allocated\n", i + 1, files[i].size);
}
}
return 0;
}
#include <stdio.h>
struct Block {
int size;
int is_allocated;
int fragment;
};
struct File {
int size;
int block_index;
int fragment;
};
void worstFit(int num_blocks, int num_files, struct Block blocks[], struct File
files[]) {
for (int i = 0; i < num_files; i++) {
int worst_index = -1;
int main() {
int num_blocks, num_files;
// Input number of blocks and files
printf("Enter number of blocks: ");
scanf("%d", &num_blocks);
printf("Enter number of files: ");
scanf("%d", &num_files);
// Output results
printf("\nFile_no\tFile_size\tBlock_no\tBlock_size\tFragment\n");
for (int i = 0; i < num_files; i++) {
if (files[i].block_index != -1) {
printf("%d\t%d\t\t%d\t\t%d\t\t%d\n",
i + 1, files[i].size, files[i].block_index, blocks[files[i].block_index - 1].size,
files[i].fragment);
} else {
printf("%d\t%d\t\tNot Allocated\n", i + 1, files[i].size);
}
}
return 0;
}