Bird
Raised Fist0
Operating Systemsknowledge~10 mins

SCAN (elevator algorithm) in Operating Systems - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - SCAN (elevator algorithm)
Start at initial head position
↓
Move head in one direction
↓
Serve requests in order
↓
Reach end of disk
↓
Reverse direction
↓
Serve remaining requests
↓
End
The SCAN algorithm moves the disk head in one direction, serving requests as it goes, then reverses at the end to serve remaining requests.
Execution Sample
Operating Systems
Requests = [10, 22, 20, 2, 40, 6]
Head = 15
Direction = up
# Serve requests while moving up
# Reverse at end
# Serve requests moving down
This simulates the SCAN algorithm serving disk requests starting at position 15 moving upwards first.
Analysis Table
StepHead PositionDirectionRequest ServedAction
115up20Move up, serve 20 (closest above 15)
220up22Move up, serve 22
322up40Move up, serve 40
440upNoneReached end, reverse direction
540down10Move down, serve 10
610down6Move down, serve 6
76down2Move down, serve 2
82downNoneReached start, end
💡 All requests served; head reached both ends and reversed direction once.
State Tracker
VariableStartAfter Step 1After Step 2After Step 3After Step 4After Step 5After Step 6After Step 7Final
Head Position152022404010622
Directionupupupupdowndowndowndowndown
Requests Served[][20][20,22][20,22,40][20,22,40][20,22,40,10][20,22,40,10,6][20,22,40,10,6,2][20,22,40,10,6,2]
Key Insights - 2 Insights
Why does the head reverse direction only after reaching the end of the disk?
Because SCAN moves the head in one direction serving all requests until it reaches the disk's end, then reverses to serve remaining requests, as shown in steps 4 and 5 in the execution_table.
Why are requests served in order as the head moves?
SCAN serves requests in the order the head encounters them while moving in one direction, ensuring efficient servicing without jumping back and forth, as seen in steps 1 to 3 and 5 to 7.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the head position at step 3?
A20
B22
C40
D15
💡 Hint
Check the 'Head Position' column at step 3 in the execution_table.
At which step does the head reverse direction?
AStep 5
BStep 3
CStep 4
DStep 7
💡 Hint
Look for the 'Action' column mentioning reversing direction in the execution_table.
If the initial head position was 5 instead of 15, which request would be served first?
A6
B2
C10
D20
💡 Hint
With head at 5 moving up, the closest request above 5 is served first, see variable_tracker for similar logic.
Concept Snapshot
SCAN (Elevator Algorithm):
- Disk head moves in one direction serving requests in order.
- Upon reaching disk end, head reverses direction.
- Efficiently reduces seek time by servicing requests on the way.
- Like an elevator moving up and down serving floors.
- Ensures no starvation of requests in either direction.
Full Transcript
The SCAN algorithm starts the disk head at an initial position and moves it in one direction, serving requests as it encounters them. When the head reaches the end of the disk, it reverses direction and serves remaining requests on the way back. This process continues until all requests are served. The execution table shows the head moving up from position 15, serving requests at 20, 22, and 40, then reversing direction at the end and moving down to serve requests at 10, 6, and 2. Variables like head position and direction change step-by-step, illustrating the algorithm's flow. Key points include the head reversing only at disk ends and serving requests in order along the path, which helps reduce seek time and prevents starvation. The visual quiz tests understanding of head positions, direction changes, and request servicing order. SCAN is often compared to an elevator moving up and down floors, efficiently serving requests in both directions.

Practice

(1/5)
1. What is the main idea behind the SCAN (elevator) disk scheduling algorithm?
easy
A. Requests are served in the exact order they arrive without reordering.
B. The disk arm moves in one direction, servicing requests until it reaches the end, then reverses direction.
C. The disk arm jumps directly to the closest request regardless of direction.
D. The disk arm moves randomly to service requests.

Solution

  1. Step 1: Understand SCAN movement

    SCAN moves the disk arm in one direction, serving all requests along the way until it reaches the last track in that direction.
  2. Step 2: Direction reversal

    After reaching the end, the arm reverses direction and serves requests on the way back, similar to an elevator moving up and down.
  3. Final Answer:

    The disk arm moves in one direction, servicing requests until it reaches the end, then reverses direction. -> Option B
  4. Quick Check:

    SCAN = moves one way then reverses [OK]
Hint: Think of SCAN like an elevator moving up and down [OK]
Common Mistakes:
  • Confusing SCAN with FCFS (first-come, first-served)
  • Thinking SCAN jumps directly to closest request
  • Assuming SCAN moves randomly
2. Which of the following correctly describes the order in which SCAN services disk requests?
easy
A. It services the closest request next, regardless of direction.
B. It services requests in the order they arrive without reordering.
C. It services requests by moving the arm in one direction, then reverses at the end.
D. It randomly selects requests to service next.

Solution

  1. Step 1: Identify SCAN's servicing order

    SCAN moves the disk arm in one direction, servicing all requests in that path.
  2. Step 2: Direction reversal at end

    When the arm reaches the last request or the disk end, it reverses direction and services requests on the return path.
  3. Final Answer:

    It services requests by moving the arm in one direction, then reverses at the end. -> Option C
  4. Quick Check:

    SCAN = one direction then reverse [OK]
Hint: Remember SCAN moves like an elevator, up then down [OK]
Common Mistakes:
  • Confusing SCAN with SSTF (closest request first)
  • Assuming SCAN ignores direction
  • Thinking SCAN services requests randomly
3. Given the disk requests at tracks [10, 22, 20, 2, 40, 6] and the disk arm currently at track 15 moving towards higher tracks, which request will SCAN service first?
medium
A. Track 20
B. Track 10
C. Track 6
D. Track 2

Solution

  1. Step 1: Identify current arm position and direction

    The arm is at track 15 and moving towards higher tracks (upwards).
  2. Step 2: Find the closest request in the moving direction

    Requests above 15 are 20, 22, and 40. The closest is track 20.
  3. Final Answer:

    Track 20 -> Option A
  4. Quick Check:

    SCAN services requests ahead in current direction first [OK]
Hint: Pick closest request ahead in current direction [OK]
Common Mistakes:
  • Choosing requests behind current arm position
  • Ignoring arm's moving direction
  • Picking the closest request overall instead of in direction
4. A disk arm is at track 50 moving towards track 0. The requests are at tracks [10, 20, 30, 40, 60]. Which request will SCAN service next? Identify the error in this reasoning: "Since the arm is moving towards 0, it will service track 60 next because it is the closest."
medium
A. The arm will service track 60 next; no error in reasoning.
B. The arm will service track 20 next; the error is ignoring request order.
C. The arm will service track 10 next; the error is assuming direction matters.
D. The arm will service track 40 next; the error is ignoring the arm's direction.

Solution

  1. Step 1: Understand arm direction and position

    The arm is at track 50 moving towards 0 (downwards).
  2. Step 2: Identify requests in arm's direction

    Requests below 50 are 10, 20, 30, 40; above 50 is 60.
  3. Step 3: Find next request in direction

    The closest request in the moving direction is track 40, not 60.
  4. Final Answer:

    The arm will service track 40 next; the error is ignoring the arm's direction. -> Option D
  5. Quick Check:

    SCAN respects arm direction when choosing requests [OK]
Hint: Always consider arm direction before picking requests [OK]
Common Mistakes:
  • Ignoring arm direction and picking closest request overall
  • Assuming SCAN jumps to farthest request
  • Confusing SCAN with SSTF
5. A disk arm is at track 50 on a disk with tracks numbered 0 to 199. Requests are at tracks [95, 180, 34, 119, 11, 123, 62, 64]. The arm is moving towards higher tracks. Using the SCAN algorithm, what is the order in which the requests will be serviced?
hard
A. [62, 64, 95, 119, 123, 180, 199, 34, 11]
B. [62, 64, 95, 119, 123, 180, 34, 11]
C. [95, 119, 123, 180, 199, 64, 62, 34, 11]
D. [95, 119, 123, 180, 64, 62, 34, 11]

Solution

  1. Step 1: Identify requests above current arm position

    Arm at 50 moving up; requests above 50 are 62, 64, 95, 119, 123, 180.
  2. Step 2: Service requests upwards in order

    Requests are serviced in ascending order: 62, 64, 95, 119, 123, 180.
  3. Step 3: Reach end of disk and reverse

    SCAN continues to the last track (199) before reversing direction.
  4. Step 4: Service remaining requests on return

    On return, service requests below 50 in descending order: 34, then 11.
  5. Final Answer:

    [62, 64, 95, 119, 123, 180, 199, 34, 11] -> Option A
  6. Quick Check:

    SCAN = up servicing, end, then down servicing [OK]
Hint: Service all requests up, go to end, then service down [OK]
Common Mistakes:
  • Skipping the last track before reversing
  • Not servicing requests in sorted order
  • Ignoring requests on return path
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard