TASK:
DESCRIPTION
One of the simplest methods for memory allocation is to divide memory into several fixed-sized partitions. Each partition may contain exactly one process. In this multiple-partition method, when a partition is free, a process is selected from the input queue and is loaded into the free partition. When the process terminates, the partition becomes available for another process. The
PROGRAM
FIRST-FIT
#include<stdio.h>
#include<conio.h> #define max 25
void main()
{
int frag[max],b[max],f[max],i,j,nb,nf,temp; static int bf[max],ff[max];
clrscr();
printf("\n\tMemory Management Scheme - First Fit"); printf("\nEnter the number of blocks:"); scanf("%d",&nb);
printf("Enter the number of files:"); scanf("%d",&nf);
printf("\nEnter the size of the blocks:-\n");for(i=1;i<=nb;i++)
{
printf("Block %d:",i); scanf("%d",&b[i]);
}
printf("Enter the size of the files :-\n");for(i=1;i<=nf;i++)
{
printf("File %d:",i); scanf("%d",&f[i]);
}
for(i=1;i<=nf;i++)
{
for(j=1;j<=nb;j++)
{
if(bf[j]!=1)
{
temp=b[j]-f[i];
if(temp>=0)
{
ff[i]=j;
break;
}
}
}
frag[i]=temp;
bf[ff[i]]=1;
}
printf("\nFile_no:\tFile_size :\tBlock_no:\tBlock_size:\tFragement"); for(i=1;i<=nf;i++)
printf("\n%d\t\t%d\t\t%d\t\t%d\t\t%d",i,f[i],ff[i],b[ff[i]],frag[i]);
getch();
}
INPUT
Enter the number of blocks: 3 Enter the number of files: 2
Enter the size of the blocks:-
Block 1: 5
Block 2: 2
Block 3: 7
Enter the size of the files:-
File 1: 1
File 2: 4
OUTPUT |
|
|
|
|
File No |
File Size |
Block No |
Block Size |
Fragment |
1 |
1 |
1 |
5 |
4 |
2 |
4 |
3 |
7 |
3 |
BEST-FIT
#include<stdio.h>
#include<conio.h> #define max 25
void main()
{
int frag[max],b[max],f[max],i,j,nb,nf,temp,lowest=10000; static int bf[max],ff[max];
clrscr();
printf("\nEnter the number of blocks:"); scanf("%d",&nb);
printf("Enter the number of files:"); scanf("%d",&nf);
printf("\nEnter the size of the blocks:-\n");for(i=1;i<=nb;i++)
printf("Block %d:",i);scanf("%d",&b[i]);
printf("Enter the size of the files :-\n");for(i=1;i<=nf;i++)
{
printf("File %d:",i); scanf("%d",&f[i]);
}
for(i=1;i<=nf;i++)
{
for(j=1;j<=nb;j++)
{
if(bf[j]!=1)
{
temp=b[j]-f[i];if(temp>=0)
if(lowest>temp)
{
ff[i]=j;
lowest=temp;
}
}
}
frag[i]=lowest;
bf[ff[i]]=1;
lowest=10000;
}
printf("\nFile No\tFile Size \tBlock No\tBlock Size\tFragment"); for(i=1;i<=nf && ff[i]!=0;i++)
printf("\n%d\t\t%d\t\t%d\t\t%d\t\t%d",i,f[i],ff[i],b[ff[i]],frag[i]);
getch();
}
INPUT
Enter the number of blocks: 3
Enter the number of files: 2
Enter the size of the blocks:-
Block 1: 5
Block 2: 2
Block 3: 7
Enter the size of the files:-
File 1: 1
File 2: 4
OUTPUT |
|
|
|
|
File No |
File Size |
Block No |
Block Size |
Fragment |
1 |
1 |
2 |
2 |
1 |
2 |
4 |
1 |
5 |
1 |
Lab Task:
- You are required to make changes in the above programs and introduce the use of compaction where required?
- Write code to simulate Worst-Fit
Algorithm ?
Step by stepSolved in 3 steps with 6 images
- Why do we have several partitioning methods for operating systems?arrow_forwardA is a scenario in which two or more processes are unable to continue because each is waiting for one of the others to accomplish anything.arrow_forwardDescription:The project I am working on needs to demonstrate how two processes (parent and child) can communicatethrough a shared memory region, with the child process writing a value to the shared memoryand the parent process reading that value. This is my code and I wont run. Can you help: #include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <sys/ipc.h>#include <sys/shm.h>#include <unistd.h> #define SHM_SIZE 1024 /* shared memory size */ void error_exit(const char *msg) { perror(msg); exit(EXIT_FAILURE);} int main() { key_t key; int shmid; char *data; // Create a unique key for shared memory if ((key = ftok("shared_memory.c", 'R')) == -1) { error_exit("ftok"); } // Create the shared memory segment if ((shmid = shmget(key, SHM_SIZE, 0644 | IPC_CREAT)) == -1) { error_exit("shmget"); } // Attach the shared memory segment to our data space data = shmat(shmid, (void *)0, 0); if…arrow_forward
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education