Operating System - Elevator Algorithm
Operating System - Elevator Algorithm
{ Elevator Algorithm
Elevator Algorithm
is a disk scheduling algorithmthe This algorithm is named after to determine thebuildingof the disk's behavior of a motion elevator, arm and head in servicing read and where the elevator continues to write requests. travel in its current direction (up or down) until empty, stopping only to let individuals off or to pick up new individuals heading in the same direction.
Elevator Algorithm
{ How it works?
When a new request arrives while the drive is idle, the initial arm/head movement will be in the direction of the cylinder where the data is stored, either in or out.
As additional requests arrive, requests are serviced only in the current direction of arm movement until the arm reaches the edge of the disk. When this happens, the direction of the arm reverses, and the requests that were remaining in the opposite direction are serviced, and so on.
Elevator Algorithm
this method ensures all requests are serviced in only one direction, that is, once the head has arrived at the outer edge of the disk, it returns to the beginning and services the new requests in this one direction only
Elevator Algorithm
{ Example
Given the following disk request sequence for a disk with 100 tracks:
list of pending disk requests (listed by track number): 44, 20, 95, 4, 50, 52, 47, 61, 87, 25 Head pointer 50 (current position of R/W heads) assume that the SCAN algorithm is currently going from a lower track number to a higher track number
Seek 1 : | 50 - 52 | Seek 2 : | 61 - 52 | Seek 3 : | 87 - 61 | Seek 4 : | 95 - 87 | Seek 5 : | 47 - 95 | Seek 6 : | 44 - 47 | Seek 7 : | 25 - 44 | Seek 8 : | 20 - 25 | Seek 9 : | 4 - 20 | Total
=2 =9 = 26 =8 = 48 =3 = 19 =5 = 16 = 136
Elevator Algorithm
Example list of pending disk requests (listed by track number): 100, 50, 10, 20, 75. The starting track number for the examples will be 35. The list will need to be sorted in ascending order: 10, 20, 50, 75, 100. Direction will be upward
The following is an example showing the difference of Scan and C-Scan in terms of Average Time Seek
SCAN
Seek 1 : 50 - 35 = 15 Seek 2 : 75 - 50 = 25 Seek 3 : 100 - 75 = 25 (SCAN will just reverse direction and service the next closest disk request) Seek 4 : 20 - 100 = 80 Seek 5 : 10 - 20 = 10 Total : 155 Average : 155 / 5 = 31
C-SCAN
Seek 1 : 50 - 35 = 15 Seek 2 : 75 - 50 = 25 Seek 3 : 100 - 75 = 25 (c-scan always goes back to the first track) Seek 4: 0 - 100 = 100 Seek 5 : 10 - 0 = 10 Seek 6 : 20 - 10 = 10 Total : 185 Average : 185 / 5 = 37