반응형
하드 디스크의 구조에 관한 포스팅
disk I/O 소요 시간에 관한 포스팅
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 |