0% found this document useful (0 votes)
87 views

Lab Exercise 2

The document discusses implementations of different page replacement algorithms in memory management. It includes programs for implementing FIFO and LRU page replacement algorithms. The FIFO program tracks page faults as it processes a reference string within a fixed number of frames. The LRU program is incomplete as it does not fully implement the logic to track least recently used pages and select a victim frame.

Uploaded by

Tharini Sridhar
Copyright
© © All Rights Reserved
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
87 views

Lab Exercise 2

The document discusses implementations of different page replacement algorithms in memory management. It includes programs for implementing FIFO and LRU page replacement algorithms. The FIFO program tracks page faults as it processes a reference string within a fixed number of frames. The LRU program is incomplete as it does not fully implement the logic to track least recently used pages and select a victim frame.

Uploaded by

Tharini Sridhar
Copyright
© © All Rights Reserved
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 27

PANIMALAR ENGINEERING COLLEGE

DEPARTMENT OF CSE
REG.NO:
EX.NO: 10 IMPLEMENTING THREADING & SYNCHRONIZATION APPLICATION
(Producer and Consumer problem)
PROGRAM:
#include <stdio.h>
#include<stdlib.h>
#include <pthread.h>
#define BufferSize 10
void *Producer();
void *Consumer();
int BufferIndex=0;
char *BUFFER;
pthread_cond_t Buffer_Not_Full=PTHREAD_COND_INITIALIZER;
pthread_cond_t Buffer_Not_Empty=PTHREAD_COND_INITIALIZER;
pthread_mutex_t mVar=PTHREAD_MUTEX_INITIALIZER;
main()
{
pthread_t ptid,ctid;
BUFFER=(char *) malloc(sizeof(char) * BufferSize);
pthread_create(&ptid,NULL,Producer,NULL);
pthread_create(&ctid,NULL,Consumer,NULL);
pthread_join(ptid,NULL);
pthread_join(ctid,NULL);
}
void *Producer()
{
for(;;)
{
if(BufferIndex<=10)
{
pthread_mutex_lock(&mVar);
if(BufferIndex==BufferSize)
{
pthread_cond_wait(&Buffer_Not_Full,&mVar);
}
BUFFER[BufferIndex++]='@';
printf("Produce : %d \n",BufferIndex);
pthread_mutex_unlock(&mVar);
}
}
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE
REG.NO:
pthread_cond_signal(&Buffer_Not_Empty);
}
void *Consumer()
{ for(;;)
{
if(BufferIndex>=1)
{
pthread_mutex_lock(&mVar);
if(BufferIndex==0)
{
pthread_cond_wait(&Buffer_Not_Empty,&mVar);
}
printf("Consume : %d \n",BufferIndex--);
pthread_mutex_unlock(&mVar); }
}
pthread_cond_signal(&Buffer_Not_Full);
}

OUTPUT:
[kalai@localhost ~]$ cc -pthread syn.c
[kalai@localhost ~]$ ./a.out
Produce : 1
Produce : 2
Produce : 3
Produce : 4
Produce : 5
Produce : 6
Produce : 7
Consume : 7
Consume : 6
Consume : 5
Consume : 4
Consume : 3
Consume : 2
Consume : 1
Produce : 1
Produce : 2
Produce : 3
Produce : 4
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE
REG.NO:
Produce : 5
Produce : 6
Produce : 7
Produce : 8
Produce : 9
Produce : 10
Consume : 10
Consume : 9
Consume : 8
Consume : 7
Consume : 6
Consume : 5
Consume : 4
Consume : 3
Consume : 2
Consume : 1
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE
REG.NO:
EX.NO: 11a IMPLEMENT FIRST FIT MEMORY MANAGEMENT SCHEME

PROGRAM:

#include<stdio.h>
main()
{
int i,j,n,ns,jb,c,ss[20];
printf("\n Enter the no of slots ");
scanf("%d",&ns);
printf("\n Enter the %d slot ",ns);
for(i=0;i<ns;i++)
scanf("%d",&ss[i]);
do
{
printf("\n Enter the job size");
scanf("%d",&jb);
for(i=0;i<ns;i++)
{
if(jb<=ss[i])
{
printf("%d is allocated to slot %d of size %d",jb,i+1,ss[i]);
ss[i]=ss[i]-jb;
printf("\n Remaining space of slots %d is %d",i+1,ss[i]);
n=1;
break;
}
else
continue;
}
if(n!=1)
printf("%d is not allocated to any slots",jb);
n=0;
printf("\n Press 1 to continue");
scanf("%d",&c);
}
while(c==1);
}
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE
REG.NO:
OUTPUT:
[kalai@localhost ~]$ ./a.out

Enter the no of slots 3

Enter the 3 slot 12


2
34

Enter the job size12


12 is allocated to slot 1 of size 12
Remaining space of slots 1 is 0
Press 1 to continue 1

Enter the job size45


45 is not allocated to any slots
Press 1 to continue
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE
REG.NO:
EX.NO: 11b IMPLEMENT BEST FIT MEMORY MANAGEMENT SCHEME

PROGRAM:
#include<stdio.h>
main()
{
int a,b[50],i,j,temp,s;
printf("\n\n\tBEST FIT");
printf("\n Enter the number of unallocated space:");
scanf("%d",&a);
printf("\n Enter the unallocated space in KB\n");
for(i=1;i<=a;i++)
scanf("%d",&b[i]);
for(j=i+1;j<=a;j++)
if(b[i]>b[j])
{
temp=b[j];
b[j]=b[i];
b[i]=temp;
}
printf("\nEnter the space required for process");
scanf("%d",&s);
for(i=1;i<=a;i++)
{
if(s<b[i])
{
printf("\n The best fit for required space is %d\n",b[i]);
break;
}}}
OUTPUT:
[kalai@localhost ~]$ cc best.c
[kalai@localhost ~]$ ./a.out
BEST FIT
Enter the number of unallocated space:2
Enter the unallocated space in KB
100
200
Enter the space required for process 178
The best fit for required space is 200
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE
REG.NO:
EX.NO: 11c IMPLEMENT WORST FIT MEMORY MANAGEMENT SCHEME

PROGRAM:
#include<stdio.h>
main( )
{
int a[50],n,i,j,p,t;
printf("\n\t\tWORST FIT");
printf("\n Enter the unallocated space");
scanf("%d",&n);
printf("\nEnter the memory space\n");
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
printf("\n Enter the memory required for the process:\n");
scanf("%d",&p);
for(i=1;i<n;i++)
for(j=i+1;j<=n;j++)
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
printf("\nThe worst fit process %d\n",a[i]);
}
OUTPUT:
[kalai@localhost ~]$ cc worst.c
[kalai@localhost ~]$ ./a.out

WORST FIT
Enter the unallocated space3
Enter the memory space
12
10
4
Enter the memory required for the process:
5
The worst fit process 12
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE
REG.NO:
EX.NO:12 IMPLEMENTATION OF PAGING TECHNIQUE OF MEMORY MANAGEMENT

PROGRAM:
#include<stdio.h>
void main()
{
int np,nf,i,j,framenum,pagesize,vaddress,paddress,vpage,offset,pagetable[20];
printf("Inut no of pages in virtual memory?");
scanf("%d",&np);
printf("\nInput the page size?");
scanf("%d",&pagesize);
printf("\nInput no.of frames in physical memory?");
scanf("%d",&nf);
A:
printf("Input the virtual address?");
scanf("%d",&vaddress);
if(vaddress>=(pagesize*np))
{
printf("\nInvalid virtual address...");
goto A;
}
vpage=vaddress/pagesize;
offset=vaddress%pagesize;
printf("\nInput the physical address?");
scanf("%d",&paddress);
for(i=0;i<nf;i++)
pagetable[i]=-1;
for(i=0;i<np;i++)
{
B:
printf("\nInput frame number for page %d?",i);
scanf("%d",&framenum);
if(framenum>nf)
{
printf("\nInvalid frame number...give valid frame number...");
goto B;
}
else
{
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE
REG.NO:
for(j=0;j<i;j++)
{
if(framenum==pagetable[j])
{
printf("\nFrame %d was already assigned to page %d",pagetable[j],j);
goto B;
}
}
}
pagetable[i]=framenum;
}
printf("\n===============Page Table=================");
printf("\nPage Number | Frame Number");
printf("\n==========================================");
for(i=0;i<np;i++)
printf("\n%5d\t%5d",i,pagetable[i]);
printf("\nVirtual address:\n");
printf("\nPage Number:%d,offset=%d",vpage,offset);
paddress=paddress+((pagetable[vpage]*pagesize)+offset);
printf("\nThe Physical address of given virtual address is %d\n",paddress);
}

OUTPUT:
[kalai@localhost ~]$ cc paging.c
[kalai@localhost ~]$ ./a.out
Inut no of pages in virtual memory? 4

Input the page size? 3

Input no.of frames in physical memory? 4


Input the virtual address? 10

Input the physical address? 3000

Input frame number for page 0? 3

Input frame number for page 1? 0

Input frame number for page 2? 1


PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE
REG.NO:

Input frame number for page 3? 2

===============Page Table=================
Page Number | Frame Number
==========================================
0 3
1 0
2 1
3 2
Virtual address:

Page Number:3,offset=1
The Physical address of given virtual address is 3007
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE
REG.NO:
EX.NO:13a IMPLEMENTATION OF FIFO PAGE REPLACEMENT ALGORITHM

PROGRAM:
#include<stdio.h>
int main()
{
int refstr[20],nf,i,j,rscount,pgfault=0,frame[20],found,loc=0,victim=0;
printf("Input reference string count?");
scanf("%d",&rscount);
printf("enter the reference string\n");
for(i=0;i<rscount;i++)
scanf("%d",&refstr[i]);

printf("Input No. frames? ");


scanf("%d",&nf);
for(i=0;i<nf;i++)
frame[i]=-1;
for(i=0;i<rscount;i++)
{ found=0;
for(j=0;j<nf;j++)
if(refstr[i]==frame[j])
{
found=1;
break;
}
if(!found)
{
if(loc<nf)
frame[loc++]=refstr[i];
else
{
frame[victim]=refstr[i];
victim=(victim+1)%nf;
}
pgfault++;
}
printf("\nref.%d: ",refstr[i]);
if(found)
printf("\t---hit---");
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE
REG.NO:
else
for(j=0;j<nf;j++)
printf("%3d",frame[j]);
}
printf("\nthe number of page fault=%d",pgfault);
}
OUTPUT:
[kalai@localhost ~]$ cc fifo.c
[kalai@localhost ~]$ ./a.out
Input reference string count? 4
enter the reference string
2345
Input No. frames? 3

ref.2: 2 -1 -1
ref.3: 2 3 -1
ref.4: 2 3 4
ref.5: 5 3 4
the number of page fault=4
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE
REG.NO:
EX.NO:13b IMPLEMENTATION OF LRU PAGE REPLACEMENT ALGORITHM

PROGRAM:
#include<stdio.h>
int main()
{
int refstr[20],count,nf,i,j,k,rscount,pgfault=0,frame[20],found,loc=0,victim=0,vframe[10];
printf("Input reference string count?");
scanf("%d",&rscount);
printf("enter the reference string\n");
for(i=0;i<rscount;i++)
scanf("%d",&refstr[i]);

printf("Input No. frames? ");


scanf("%d",&nf);
for(i=0;i<nf;i++)
frame[i]=-1;
for(i=0;i<rscount;i++)
{ found=0;
for(j=0;j<nf;j++)
if(refstr[i]==frame[j])
{
found=1;
break;
}
if(!found)
{
if(loc<nf)
frame[loc++]=refstr[i];
else
{
count=0;
for(j=0;j<nf;j++)
vframe[j]=frame[j];
for(j=i-1;j>0 && (count<nf-1);j--)
for(k=0;k<nf && (count<nf-1) ;k++)
if(count< nf-1 )
{
if(refstr[j]==vframe[k])
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE
REG.NO:
{
vframe[k]=-1;
count++;
}
}
for(j=0;j<nf;j++)
if(vframe[j]!=-1) /*victim frame does not contain -1*/
victim=j;

frame[victim]=refstr[i];
}
pgfault++;
}
printf("\nref.%d: ",refstr[i]);
if(found) printf("\t---hit---");
else
for(j=0;j<nf;j++)
printf("%3d",frame[j]);

}
printf("\nthe number of page fault=%d",pgfault);
}

OUTPUT:
[kalai@localhost ~]$ cc lru.c
[kalai@localhost ~]$ ./a.out
Input reference string count? 4
enter the reference string
2345
Input No. frames? 3

ref.2: 2 -1 -1
ref.3: 2 3 -1
ref.4: 2 3 4
ref.5: 5 3 4
the number of page fault=4
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE
REG.NO:
EX.NO:13c IMPLEMENTATION OF OPTIMAL PAGE REPLACEMENT ALGORITHM

PROGRAM:
#include<stdio.h>
int main()
{
int refstr[20],count,nf,i,j,k,rscount,pgfault=0,frame[20],found,loc=0,victim=0,vframe[10];
printf("Input reference string count?");
scanf("%d",&rscount);
printf("enter the reference string\n");
for(i=0;i<rscount;i++)
scanf("%d",&refstr[i]);
printf("Input No. frames? ");
scanf("%d",&nf);
for(i=0;i<nf;i++)
frame[i]=-1;
for(i=0;i<rscount;i++)
{ found=0;
for(j=0;j<nf;j++)
if(refstr[i]==frame[j])
{
found=1;
break;
}
if(!found)
{
if(loc<nf)
frame[loc++]=refstr[i];
else
{
count=0;
for(j=0;j<nf;j++)
vframe[j]=frame[j];
for(j=i+1;j<rscount && (count<nf-1);j++)
for(k=0;k<nf && (count<nf-1) ;k++)
if(count< nf-1 )
{
if(refstr[j]==vframe[k])
{
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE
REG.NO:
vframe[k]=-1;
count++;
}
}
for(j=0;j<nf;j++)
if(vframe[j]!=-1) /*victim frame does not contain -1*/
victim=j;

frame[victim]=refstr[i];
}
pgfault++;
}
printf("\nref.%d: ",refstr[i]);
if(found) printf("\t---hit---");
else
for(j=0;j<nf;j++)
printf("%3d",frame[j]);
}
printf("\nthe number of page fault=%d",pgfault);
}

OUTPUT:
[kalai@localhost ~]$ cc optimal.c
[kalai@localhost ~]$ ./a.out
Input reference string count? 4
enter the reference string
2345
Input No. frames? 3

ref.2: 2 -1 -1
ref.3: 2 3 -1
ref.4: 2 3 4
ref.5: 2 3 5
the number of page fault=4
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE
REG.NO:
EX.NO: 14a IMPLEMENTATION OF SINGLE LEVEL FILE ORGANIZATION TECHNIQUE

PROGRAM:
#include<stdio.h>
main()
{int master, s[20];
char f[20][20][20];
char d[20][20];
int i,j;
printf("Enter number of directories.");
scanf("%d",&master);
printf("Enter names of directories.");
for(i=0;i<master;i++)
scanf("%s",&d[i]);
printf("Enter size of directories.");
for(i=0;i<master;i++)
scanf("%d",&s[i]);
printf("Enter the file names:");
for(i=0;i<master;i++)
for(j=0;j<s[i];j++)
scanf("%s",&f[i][j]);
printf("\n");
printf("Directory \t Size \t Filenames\n");
for(i=0;i<80;i++)
printf("*");
printf("\n");
for(i=0;i<master;i++)
{printf("%s\t\t%2d\t",d[i],s[i]);
for(j=0;j<s[i];j++)
printf("%s\n\t\t\t",f[i][j]);
printf("\n");}
printf("\t\n");
}
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE
REG.NO:
OUTPUT:
[kalai@localhost ~]$ cc onedir.c
[kalai@localhost ~]$ ./a.out
Enter number of directories. 1
Enter names of directories. CSE
Enter size of directories. 3
Enter the file names: C
JAVA
DATASTRUCTURE

Directory Size Filenames


***********************************************************************
CSE 3 C
JAVA
DATASTRUCTURE
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE
REG.NO:
EX.NO: 14b IMPLEMENTATION OF TWO LEVEL FILE ORGANIZATION TECHNIQUE

PROGRAM:
#include<stdio.h>
struct st
{char dname[10];
char sdname[10][10];
char fname[10][10][10];
int ds,sds[10];
}dir[10];
main()
{
int i,j,k,n;
printf("Enter no. of directories: ");
scanf("%d",&n);
for(i=0;i<n;i++)
{printf("Enter directory %d names: ",i+1);
scanf("%s",&dir[i].dname);
printf("Enter size of directory: ");
scanf("%d",&dir[i].ds);
for(j=0;j<dir[i].ds;j++)
{printf("Enter subdirectory name and size.");
scanf("%s",&dir[i].sdname[j]);
scanf("%d",&dir[i].sds[j]);
for(k=0;k<dir[i].sds[j];k++)
{printf("Enter file name: ");
scanf("%s",&dir[i].fname[j][k]);
}
}
}
printf("\nDirname \t \t Size \t Subdirname \t Size \t Files \n");
for(i=0;i<80;i++)
printf("*");
printf("\n");
for(i=0;i<n;i++)
{printf("%s\t\t%d",dir[i].dname,dir[i].ds);
for(j=0;j<dir[i].ds;j++)
{printf("\t%s\t\t%d\t",dir[i].sdname[j],dir[i].sds[j]);
for(k=0;k<dir[i].sds[j];k++)
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE
REG.NO:
printf("%s\t",dir[i].fname[j][k]);
printf("\n\t\t");
}printf("\n");}}

OUTPUT:
[kalai@localhost ~]$ cc twodir.c
[kalai@localhost ~]$ ./a.out
Enter no. of directories: 1
Enter directory 1 names: CSE
Enter size of directory: 1
Enter subdirectory name and size.IICSE
3
Enter file name: OS
Enter file name: SE
Enter file name: DAA

Dirname Size Subdirname Size Files


*******************************************************************
CSE 1 IICSE 3 OS SE DAA
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE
REG.NO:
EX.NO:15a IMPLEMENTATION OF SEQUENTIAL FILE ALLOCATION STRATEGY

PROGRAM:
#include <stdio.h>
main()
{
int i,j,a[200],n,t,b;
printf("\n\t Sequential Allocation");
printf("\n\t***********************");
printf("\n\t No. of Files : ");
scanf("%d",&n);
j=1;
for(i=1;i<=n;i++)
{
printf("\n\tNumber of Blocks - File %d : ",i);
scanf("%d",&b);
t=1;
while(t<=b)
{
a[j]=i;
j++;
t++;
}
}
printf("\n\t Sequential Allocation");
printf("\n\t***********************");
i=1;
j=1;
while(i<=n)
{
printf("\n\t Blocks Allocated for File - %d \n\t",i);
while(a[j]==i)
{
printf(" %d",j);
j++;
}
i++;
}
return 0;
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE
REG.NO:
}
OUTPUT:
[kalai@localhost ~]$ cc seq.c
[kalai@localhost ~]$ ./a.out

Sequential Allocation
***********************
No. of Files : 2

Number of Blocks - File 1 : 4

Number of Blocks - File 2 : 5

Sequential Allocation
***********************
Blocks Allocated for File - 1
1 2 3 4
Blocks Allocated for File - 2
5 6 7 8 9
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE
REG.NO:
EX.NO:15b IMPLEMENTATION OF INDEXED FILE ALLOCATION STRATEGY

PROGRAM:
#include <stdio.h>
main()
{
int n,i,j,t,k,pos,b[10],a[100];
printf("\n\t Indexed Allocation \n");
printf("\n\t********************\n");
printf("\n\t Enter Number of Files:");
scanf("%d",&n);
pos=0;
for(i=1;i<=n;i++)
{
printf("\n\t Number of Blocks for File %d :",i);
scanf("%d",&b[i]);
for(j=1;j<=b[i];j++)
{
a1: printf("\nIndex %d : ",j);
scanf("%d",&t);
if(pos!=0)
{
for(k=1;k<=pos;k++)
{
if(a[k]==t)
{
printf("\n\tIndex location is already Occupied ");
goto a1;
}
}
}
pos++;
a[pos]=t;
}
}
printf("\n\t File Length Indexes\n");
j=1;
for(i=1;i<=n;i++)
{
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE
REG.NO:
printf("\n\t %d \t\t %d \t",i,b[i]);
for(k=1;k<=b[i];k++)
{
printf(" %d",a[j]);
j++;
}
printf("\n");
}
return 0;
}
OUTPUT:
[kalai@localhost ~]$ cc index.c
[kalai@localhost ~]$ ./a.out

Indexed Allocation
********************
Enter Number of Files: 2

Number of Blocks for File 1 : 2

Index 1 : 1
Index 2 : 3

Number of Blocks for File 2 : 3

Index 1 : 4
Index 2 : 9
Index 3 : 10

File Length Indexes

1 2 1 3
2 3 4 9 10
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE
REG.NO:
EX.NO:15c IMPLEMENTATION OF LINKED FILE ALLOCATION STRATEGY

PROGRAM:
#include <stdio.h>
#include<stdlib.h>
struct node
{
int data;
struct node *nxt;
}*st=NULL;
int f[10],n;
void cre()
{
struct node *t,*nn,*cn;
nn=(struct node *) malloc (sizeof(struct node));
nn->nxt=NULL;
a1:scanf("%d", &nn->data);
t=st;
while(t!=NULL)
{
if(t->data==nn->data)
{
printf("\n\t Block is already occupied \n");
goto a1;
}
else
t=t->nxt;
}

if(st==NULL)
st=nn;
else
{
t=st;
while (t->nxt!=NULL)
t=t->nxt;
t->nxt=nn;
}
}
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE
REG.NO:
void display()
{
struct node *nn;
int t,j,i=1;
printf("\n\t Linked List :");
nn=st;
while(nn!=NULL)
{
t=f[i];
printf("\n\t Contents of File %d :",i);
for(j=1;j<=t;j++)
{
printf(" %d -->",nn->data);
nn=nn->nxt;
}
printf(" NULL");
i++;
}
}
void main()
{
int i,b,j;
printf("\n\t Linked Allocation");
printf("\n\t*******************");
printf("\n\t Number of Files: ");
scanf("%d",&n);

for(i=1;i<=n;i++)
{
printf("\n\t Number of Blocks for File %d : ",i);
scanf("%d",&b);
f[i]=b;
for(j=1;j<=b;j++)
{
printf("\n\t Block %d: ",j);
cre();
}
}
display();
PANIMALAR ENGINEERING COLLEGE
DEPARTMENT OF CSE
REG.NO:
}

OUTPUT:
[kalai@localhost ~]$ cc link.c
[kalai@localhost ~]$ ./a.out

Linked Allocation
*******************
Number of Files: 2

Number of Blocks for File 1 : 2

Block 1: 1
Block 2: 2

Number of Blocks for File 2 : 2

Block 1: 2
Block is already occupied 5

Block 2: 3

Linked List :
Contents of File 1 : 1 --> 2 --> NULL
Contents of File 2 : 5 --> 3 --> NULL[

You might also like