# Sstf Disk Algorithm Coding

Disk-Scheduling solver Danger alert This front-end is obsolute! Use: nicomedes.assistedcoding.eu instead!!! Click here for Instructions Other problems About. Aim is to provide total head movement in different disk scheduling algorithms namely FCFS, SSTF, LOOK, C-LOOK, SCAN, C-SCAN. Code Review Stack Exchange is a. Disk Response Time. It is the average of time spent by each request waiting for the IO operation. Purpose of Disk Scheduling. The main purpose of disk scheduling algorithm is to select a disk request from the queue of IO requests and decide the schedule when this request will be processed. Goal of Disk Scheduling Algorithm. Program for SSTF disk scheduling algorithm Prerequisite – Disk scheduling algorithms Given an array of disk track numbers and initial head position, our task is to find the total number of seek operations done to access all the requested tracks if Shortest Seek Time First (SSTF) is a disk scheduling algorithm.

Let us learn how to implement shortest seek time first algorithm in C programming with its explanation, output, advantages, disadvantages and much more.

#### What is Shortest Seek Time First Disk Scheduling Algorithm?

The shortest seek time first is commonly abbreviated as **SSTF**. It is also popularly known as **shortest seek first algorithm**.

## Sstf Disk Algorithm Coding Guide

The SSTF disk scheduling algorithm is a secondary storage scheduling algorithm which enables to determine the motion of the disk’s arm and the disk head in servicing read and write requests.

This algorithm helps to determine which job is nearest to the current head position with minimum seek time, and then services that job next.

In the SSTF algorithm, the jobs having the shortest seek time are executed first. Therefore, the seek time of each job is pre-calculated in the job queue and every job is scheduled according to its seek time.

This enables the job nearest to the disk arm to get executed first. It also has a better average response time and throughput as compared to the FCFS scheduling algorithm.

#### Advantages

- Reduced total seek time as compared to FCFS algorithm
- Increased throughput time
- Decreased average response time

#### Disadvantages

## Sstf Disk Scheduling Algorithm Program In Java

- There are high chances of starvation if the seek time is higher than the incoming jobs
- Switching the directions may slow down the process
- There are chances of overheads.
- This algorithm is not the most optimal one

**Note:** This C program to implement SSTF algorithm is compiled with GNU GCC compiler using CodeLite IDE on Microsoft Windows 10 operating system.

#### C Program For Shortest Seek Time First Disk Scheduling Algorithm

2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 | { intflag; { intarray_1[33],array_2[33]; intcount=0,j,x,limit,minimum,location,disk_head,sum=0; scanf('%d',&limit); scanf('%d',&disk_head); while(count<limit) scanf('%d',&h[count].num); count++; for(count=0;count<limit;count++) x=0; location=0; { { { if(array_1[j]<0) array_1[j]=h[j].num-disk_head; minimum=array_1[j]; x++; else array_1[j]=disk_head-h[j].num; { } if(minimum>array_1[j]) minimum=array_1[j]; } } array_2[count]=h[location].num-disk_head; { } } while(count<limit) sum=sum+array_2[count]; } printf('nTotal movements of the cylinders:t%d',sum); } |

## Sstf Disk Algorithm Coding Pdf

#### Output

## Sstf Disk Algorithm Coding Questions

If you have any doubts about the implementation of shortest seek first disk scheduling C program, let us know about it in the comment section. Find more about it here.

CPU Scheduling Algorithms |
---|

FCFS Algorithm |

Preemptive Shortest Job First Algorithm |

Round Robin Algorithm |

Shortest Job First Algorithm |

C SCAN Scheduling C Program |

SCAN Algorithm |

Multi-Level Feedback Queue Algorithm |

Preemptive Priority Algorithm |

Priority Scheduling Algorithm |

## SCAN Disk Scheduling algorithm Program in C++ language .

## Sstf Disk Scheduling Algorithm Program In C

2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 | usingnamespacestd; constintN=100005; intn; intdirection; intpositions[N]; voidscan(void) intmovement,best,index,complete; movement=0; while(complete<n) index=-1; if(direction1)best=INT_MAX; for(inti=0;i<n;i++) if(!done[i]) if(direction0&&positions[i]>best&&positions[i]<head) index=i; } if(direction1&&positions[i]<best&&positions[i]>head) index=i; } } if(index>=0) complete++; movement+=abs(head-best); } { } cout<<'Total Head Movement '<<movement<<' Cylindersn'; } intmain() cout<<'Initial Head Position: '; cin>>direction; cout<<'Queue Size: '; for(inti=0;i<n;i++)cin>>positions[i]; scan(); return0; /** 0 98 183 37 122 14 124 65 67 |