운영체제(OS)

[OS] Hard Disk, Disk Scheduling

서노리 2022. 12. 8. 03:22
반응형

하드 디스크의 구조에 관한 포스팅

[파일처리] 하드디스크(Hard Disk)의 구조

 

[파일처리] 하드디스크(Hard Disk)의 구조

하드디스크의 구조 (위에서 본 모습) (옆에서 본 모습) Platter - 데이터가 저장되는 곳, 즉 디스크를 말한다. - platter 여러 개가 겹쳐져있는 구조를 가진다. Spindle - 플래터를 회전시키는 역할을 한

sunho-doing.tistory.com

disk I/O 소요 시간에 관한 포스팅

[파일처리] 하드디스크의 구조 - 디스크 액세스 비용

 

[파일처리] 하드디스크의 구조 - 디스크 액세스 비용

하드디스크에 데이터를 읽거나 쓰는 행위를 디스크 액세스(Disk Access)라고 한다. 디스크 액세스 비용 Seek time - Arm이 데이터가 있는 실린더로 이동하는 시간 Rotational Delay - Head 밑에 데이터가 있는

sunho-doing.tistory.com

 


Disk Scheduling

디스크 스케줄링 알고리즘을 사용함으로써 디스크의 seek time을 줄일 수 있다. 

큐에 읽어야 할 트랙 넘버가 다음과 같은 순서로 들어온다고 가정할 때 각 알고리즘의 성능을 비교해보자.

(처음 disk arm의 위치는 15라고 가정)

 

queue: 15, 8, 17, 11, 3, 23, 19, 14, 20

 

FIFO (First In First Out)

  • 큐에 들어온 순서대로 트랙을 이동
  • 모든 트랙에 공정하게 접근
  • 비효율적인 이동이 발생할 수 있음

 

SSTF (Shortest Seek Time First)

  • 현재 disk arm의 위치에서 가장 적게 움직여 도달할 수 있는 트랙으로 먼저 이동
  • 양극단에 가까운 트랙은 starvation이 발생할 수 있음
  • arm stickiness (암 고정 현상) 발생할 수 있음

 

SCAN

  • 한 방향으로만 움직이다가 양극단에 도달한 경우 반대 방향으로 전환하여 이동
  • 양극단에 가까운 트랙은 starvation이 발생할 수 있음
  • arm stickiness (암 고정 현상) 발생할 수 있음

※ SCAN-LOOK

- SCAN과 같은 방식으로 움직이지만 해당 방향에 더 이상 요청한 트랙이 없으면 바로 전환
- 즉, 3에 도달하자마자 0까지 내려가지 않고 바로 전환하여 23까지 이동
- 기존 SCAN 알고리즘의 불필요한 헤더 이동을 개선

 

C-SCAN

  • 한 방향으로만 트랙을 읽어들임
  • 해당 방향의 극단에 도달하면 바로 정반대 극단으로 이동해서 같은 방향으로 읽어들임
  • 양극단 트랙에게 유리
  • arm stickiness (암 고정 현상) 발생할 수 있음

 

C-LOOK

  • C-SCAN과 같은 방식으로 동작
  • 차이점은 해당 방향에 더 이상 요청한 트랙이 없으면 바로 정반대 극단으로 이동
  • 즉, 3에 도달하자마자 0까지 내려가지 않고 바로 23으로 이동
  • 기존 C-SCAN 알고리즘의 불필요한 헤더 이동을 개선

 N-step-SCAN

  • 디스크 요청 큐를 길이가 N인 하위 큐로 분할하여 각각 SCAN 알고리즘 수행
  • N의 값이 커질 경우 SCAN과 유사한 성능
  • N이 1일 경우 FIFO와 동일
  • SSTF, SCAN, C-SCAN에서 발생하는 starvation 문제와 arm stickiness 문제를 해결

FSCAN

  • 두 개의 하위 큐를 이용
  • 스캔이 시작되면 모든 요청들은 하나의 큐에 존재하고 다른 큐는 비어있음
  • 스캔을 하는 동안 새로운 모든 요청들은 비어있는 큐에 들어가게 됨
  • 따라서 새로운 요청들은 이전의 모든 요청이 처리될 때까지 미루어짐
  • SSTF, SCAN, C-SCAN에서 발생하는 starvation 문제와 arm stickiness 문제를 해결

 

반응형

'운영체제(OS)' 카테고리의 다른 글

[OS] FSCK and Journaling  (0) 2022.12.08
[OS] RAID  (0) 2022.12.08
[OS] File System  (0) 2022.12.07
[OS] pthread  (0) 2022.12.06
[OS] Deadlock  (0) 2022.12.05