OS Lab Task PDF

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 10

Neha Asim -70109091-Section 6C

First Fit:

#include <stdio.h>

int main() {

int size, fsize;

printf("Enter number of blocks in memory: ");

scanf("%d",&size);

printf("Enter number of files you want to save in memory:");

scanf("%d",&fsize);

int bsize[size],block[size],files[fsize],allocated[fsize],fragment[fsize];

for(int i=0; i<size; i++)

printf("Enter block size of Block %d :",i+1);

scanf("%d",&bsize[i]);

for(int i=0; i<size; i++)

block[i]=bsize[i];

for(int i=0; i<fsize; i++)

printf("Enter file size of File %d :",i+1);

scanf("%d",&files[i]);

allocated[i] = -1;
}

for (int i = 0; i < fsize; i++) {

for (int j = 0; j < size; j++) {

if (bsize[j] >= files[i] && allocated[i] == -1) {

bsize[j] -= files[i];

allocated[i] = j;

printf("File No\n");

for (int i = 0; i < fsize; i++) {

printf("%d\n", i + 1);

printf("File Size\n");

int total_fragment = 0;

for (int i = 0; i < fsize; i++) {

if (allocated[i] == -1) {

printf("%d\n", files[i]);

total_fragment += files[i];

} else {

printf("%d\n", files[i] + total_fragment);

total_fragment = 0;

printf("Block No\n");
for (int i = 0; i < fsize; i++) {

if (allocated[i] != -1) {

printf("%d\n", allocated[i] + 1);

printf("Block Size\n");

for (int i = 0; i < size; i++) {

if (allocated[i] != -1) {

printf("%d\n", block[i]);

printf("Fragment:\n") ;

for(int i = 0; i < size; i++) {

if (allocated[i] != -1 )

fragment[i]=block[i]-files[allocated[i]];

printf("%d\n",fragment[i]);

return 0;
}

Worst Fit:

#include <stdio.h>

int main() {

int size, fsize;

printf("Enter number of blocks in memory: ");

scanf("%d",&size);

printf("Enter number of files you want to save in memory:");

scanf("%d",&fsize);
int bsize[size],block[size],files[fsize],allocated[fsize],fragment[fsize];

for(int i=0; i<size; i++)

printf("Enter block size of Block %d :",i+1);

scanf("%d",&bsize[i]);

for(int i=0; i<size; i++)

block[i]=bsize[i];

for(int i=0; i<fsize; i++)

printf("Enter file size of File %d :",i+1);

scanf("%d",&files[i]);

allocated[i] = -1;

for (int i = 0; i < fsize; i++) {

int max_block_index = -1;

for (int j = 0; j < size; j++) {

if (bsize[j] >= files[i] && allocated[i] == -1) {

if (max_block_index == -1 || bsize[j] > bsize[max_block_index]) {

max_block_index = j;

}
if (max_block_index != -1) {

bsize[max_block_index] -= files[i];

allocated[i] = max_block_index;

printf("File No\n");

for (int i = 0; i < fsize; i++) {

printf("%d\n", i + 1);

printf("File Size\n");

int total_fragment = 0;

for (int i = 0; i < fsize; i++) {

if (allocated[i] == -1) {

printf("%d\n", files[i]);

total_fragment += files[i];

} else {

printf("%d\n", files[i] + total_fragment);

total_fragment = 0;

printf("Block No\n");

for (int i = 0; i < fsize; i++) {

if (allocated[i] != -1) {

printf("%d\n", allocated[i] + 1);

}
}

printf("Block Size\n");

for (int i = 0; i < size; i++) {

if (allocated[i] != -1) {

printf("%d\n", block[i]);

printf("Fragment:\n") ;

for(int i = 0; i < size; i++) {

if (allocated[i] != -1 )

fragment[i]=block[i]-files[allocated[i]];

printf("%d\n",fragment[i]);

return 0;

Best Fit:

#include <stdio.h>

int main() {

int size, fsize;

printf("Enter number of blocks in memory: ");

scanf("%d",&size);

printf("Enter number of files you want to save in memory:");


scanf("%d",&fsize);

int bsize[size],block[size],files[fsize],allocated[fsize],fragment[fsize];

for(int i=0; i<size; i++)

printf("Enter block size of Block %d :",i+1);

scanf("%d",&bsize[i]);

for(int i=0; i<size; i++)

block[i]=bsize[i];

for(int i=0; i<fsize; i++)

printf("Enter file size of File %d :",i+1);

scanf("%d",&files[i]);

allocated[i] = -1;

for (int i = 0; i < fsize; i++) {

int min_block_index = -1;

for (int j = 0; j < size; j++) {

if (bsize[j] >= files[i] && allocated[i] == -1) {

if (min_block_index == -1 || bsize[j] < bsize[min_block_index]) {

min_block_index = j;

}
}

if (min_block_index != -1) {

bsize[min_block_index] -= files[i];

allocated[i] = min_block_index;

printf("File No\n");

for (int i = 0; i < fsize; i++) {

printf("%d\n", i + 1);

printf("File Size\n");

int total_fragment = 0;

for (int i = 0; i < fsize; i++) {

if (allocated[i] == -1) {

printf("%d\n", files[i]);

total_fragment += files[i];

} else {

printf("%d\n", files[i] + total_fragment);

total_fragment = 0;

printf("Block No\n");

for (int i = 0; i < fsize; i++) {

if (allocated[i] != -1) {

printf("%d\n", allocated[i] + 1);


}

printf("Block Size\n");

for (int i = 0; i < size; i++) {

if (allocated[i] != -1) {

printf("%d\n", block[i]);

printf("Fragment:\n") ;

for(int i = 0; i < size; i++) {

if (allocated[i] != -1 )

fragment[i]=block[i]-files[allocated[i]];

printf("%d\n",fragment[i]);

return 0;

You might also like