Ex. No. :11
|
IMPLEMENTATION
OF DISK SCHEDULING ALGORITHMS
|
AIM:
To
write a ‘C’ program to implement the Disk Scheduling algorithm for First Come
First Served (FCFS), Shortest Seek Time First (SSTF), and SCAN.
PROBLEM DESCRIPTION:
Disk Scheduling is the process of
deciding which of the cylinder request is in the ready queue is to be accessed
next.
The access time and the bandwidth
can be improved by scheduling the servicing of disk I/O requests in good order.
Access Time:
The access time has two major
components: Seek time and Rotational Latency.
Seek Time:
Seek time is the time for disk arm to move the
heads to the cylinder containing the desired sector.
Rotational Latency:
Rotational latency is the
additional time waiting for the disk to rotate the desired sector to the disk
head.
Bandwidth:
The disk bandwidth is the total number of
bytes transferred, divided by the total time between the first request for
service and the completion of the last transfer.
ALGORITHM:
- Input
the maximum number of cylinders and work queue and its head starting
position.
- First Come First Serve Scheduling (FCFS) algorithm – The operations are performed
in order requested.
- There is no reordering of work queue.
- Every
request is serviced, so there is no starvation.
- The
seek time is calculated.
- Shortest Seek Time First Scheduling (SSTF) algorithm –
This algorithm selects the request with the minimum seek time from the
current head position.
- Since
seek time increases with the number of cylinders traversed by the head,
SSTF chooses the pending request closest to the current head position.
- The
seek time is calculated.
- SCAN Scheduling algorithm – The disk arm starts at one
end of the disk, and moves toward the other end, servicing requests as it
reaches each cylinder, until it gets to the other end of the disk.
- At
the other end, the direction of head movement is reversed, and servicing
continues.
- The
head continuously scans back and forth across the disk.
- The
seek time is calculated.
- Display the seek time
and terminate the program
Program :
#include<stdio.h>
#include<math.h>
void fcfs(int noq, int qu[10], int st)
{
int i,s=0;
for(i=0;i<noq;i++)
{
s=s+abs(st-qu[i]);
st=qu[i];
}
printf("\n Total
seek time :%d",s);
}
void sstf(int noq, int qu[10], int st, int visit[10])
{
int min,s=0,p,i;
while(1)
{
min=999;
for(i=0;i<noq;i++)
if (visit[i] == 0)
{
if(min >
abs(st - qu[i]))
{
min =
abs(st-qu[i]);
p = i;
}
}
if(min == 999)
break;
visit[p]=1;
s=s + min;
st = qu[p];
}
printf("\n Total
seek time is: %d",s);
}
void scan(int noq, int qu[10], int st, int ch)
{
int i,j,s=0;
for(i=0;i<noq;i++)
{
if(st < qu[i])
{
for(j=i-1; j>=
0;j--)
{
s=s+abs(st -
qu[j]);
st = qu[j];
}
if(ch == 3)
{
s = s + abs(st -
0);
st = 0;
}
for(j = 1;j <
noq;j++)
{
s= s + abs(st -
qu[j]);
st = qu[j];
}
break;
}
}
printf("\n Total seek time : %d",s);
}
int main()
{
int
n,qu[20],st,i,j,t,noq,ch,visit[20];
printf("\n Enter
the maximum number of cylinders : ");
scanf("%d",&n);
printf("enter
number of queue elements");
scanf("%d",&noq);
printf("\n Enter
the work queue");
for(i=0;i<noq;i++)
{
scanf("%d",&qu[i]);
visit[i] = 0;
}
printf("\n Enter
the disk head starting posision: \n");
scanf("%d",&st);
while(1)
{
printf("\n\n\t\t MENU \n");
printf("\n\n\t\t 1. FCFS \n");
printf("\n\n\t\t 2. SSTF \n");
printf("\n\n\t\t 3. SCAN \n");
printf("\n\n\t\t
4. EXIT \n");
printf("\nEnter
your choice: ");
scanf("%d",&ch);
if(ch > 2)
{
for(i=0;i<noq;i++)
for(j=i+1;j<noq;j++)
if(qu[i]>qu[j])
{
t=qu[i];
qu[i] = qu[j];
qu[j] = t;
}
}
switch(ch)
{
case 1:
printf("\n FCFS \n");
printf("\n*****\n");
fcfs(noq,qu,st);
break;
case 2:
printf("\n SSTF \n");
printf("\n*****\n");
sstf(noq,qu,st,visit);
break;
case 3:
printf("\n SCAN \n");
printf("\n*****\n");
scan(noq,qu,st,ch);
break;
case 4: exit(0);
}
}
}
Output
"disksche.c" 122L, 2076C written
[anandh@localhost ~]$ cc disksche.c
[anandh@localhost ~]$ ./a.out
Enter the maximum
number of cylinders : 200
enter number of queue elements5
Enter the work
queue23
89
132
42
187
Enter the disk head
starting posision:
100
MENU
1.
FCFS
2.
SSTF
3.
SCAN
4. EXIT
Enter your choice: 1
FCFS
*****
Total seek time : 421
MENU
1.
FCFS
2.
SSTF
3.
SCAN
4.
EXIT
Enter your choice: 2
SSTF
*****
Total seek time is:
273
MENU
1.
FCFS
2.
SSTF
3.
SCAN
4.
EXIT
Enter your choice: 3
SCAN
*****
Total seek time : 287
MENU
1.
FCFS
2. SSTF
3.
SCAN
4.
EXIT
Enter your choice: 4
Result:
Thus the C program to implement the Disk scheduling
algorithms namely FCFS, SSTF,
and SCAN algorithms was written and executed.
The obtained outputs were verified.
very helpfull.....tanx a lot.........
ReplyDeletemost welcome
DeleteEngineer Portal - Prem Sasi Kumar Arivukalanjiam: Implementation Of Disk Scheduling Algorithms >>>>> Download Now
Delete>>>>> Download Full
Engineer Portal - Prem Sasi Kumar Arivukalanjiam: Implementation Of Disk Scheduling Algorithms >>>>> Download LINK
>>>>> Download Now
Engineer Portal - Prem Sasi Kumar Arivukalanjiam: Implementation Of Disk Scheduling Algorithms >>>>> Download Full
>>>>> Download LINK O0
how do the prog set up for a disk request file...?
ReplyDeletethank u
ReplyDeletethank u for the prog..
ReplyDeleteThank you so much , Sir !!!!!
ReplyDeleteCan v write the same algorithm using linked list implementation in c? How
ReplyDeleteYes using doubly linked list we can!
DeleteKocaeli
ReplyDeleteDenizli
Bursa
istanbul
Van
İ72UP
Denizli
ReplyDeleteKonya
Denizli
ısparta
Bayburt
İYRHT
whatsapp görüntülü show
ReplyDeleteücretli.show
İOM7İT
görüntülü.show
ReplyDeletewhatsapp ücretli show
KERCVN
Tokat Lojistik
ReplyDeleteKonya Lojistik
Mersin Lojistik
Karabük Lojistik
Samsun Lojistik
1VY
ankara evden eve nakliyat
ReplyDeletemalatya evden eve nakliyat
antep evden eve nakliyat
giresun evden eve nakliyat
kayseri evden eve nakliyat
D3EX2
sakarya evden eve nakliyat
ReplyDeleteosmaniye evden eve nakliyat
aksaray evden eve nakliyat
çanakkale evden eve nakliyat
zonguldak evden eve nakliyat
PLKG
AB9F2
ReplyDeleteEdirne Şehirler Arası Nakliyat
Kocaeli Lojistik
Rize Evden Eve Nakliyat
Ardahan Şehir İçi Nakliyat
Bayburt Şehir İçi Nakliyat
Kocaeli Şehirler Arası Nakliyat
Adana Evden Eve Nakliyat
Konya Parça Eşya Taşıma
Çanakkale Lojistik
D0F3A
ReplyDeleteÇerkezköy Koltuk Kaplama
Trabzon Parça Eşya Taşıma
Etimesgut Parke Ustası
Area Coin Hangi Borsada
Muğla Şehirler Arası Nakliyat
Isparta Lojistik
Mardin Parça Eşya Taşıma
Ünye Yol Yardım
Yenimahalle Boya Ustası
517CF
ReplyDeleteKütahya Şehir İçi Nakliyat
Trabzon Lojistik
Antep Parça Eşya Taşıma
Bitmex Güvenilir mi
Adana Parça Eşya Taşıma
Çankaya Fayans Ustası
Altındağ Fayans Ustası
Kırşehir Şehir İçi Nakliyat
Rize Parça Eşya Taşıma
9C36B
ReplyDeleteSamsun Şehir İçi Nakliyat
Kırklareli Evden Eve Nakliyat
Maraş Evden Eve Nakliyat
İzmir Şehir İçi Nakliyat
Tunceli Evden Eve Nakliyat
Eskişehir Parça Eşya Taşıma
Eskişehir Evden Eve Nakliyat
Edirne Lojistik
Çerkezköy Kombi Servisi
0BD41
ReplyDeletephantom
galagames
pancakeswap
dextools
zkswap
sushi
poocoin
safepal
solflare
345A6
ReplyDeletetrust wallet
galagames
poocoin
bitbox
looksrare
dextools
arculus
ledger live
quickswap
xzxczxcxczcx
ReplyDeleteشركة مكافحة حشرات بالاحساء
VHJNHMKJ
ReplyDeleteشركة صيانة افران بمكة