OS - 디스크 스케줄링

yonii·2021년 8월 6일
0

운영체제 기억장치 구조
운영체제 기억장치 구조에는 보조기억장치, 주기억장치, 캐시, 레지스터가 있으며
보조기억장치중 아직까지는 하드디스크가 주로 사용된다.


하드디스크의 구조는 상단 이미지와 같다. 구조별 각 주요 역할을 간단히 정리해보면

  1. head & arm
    헤드가 플래터의 표면에 움직임으로써 데이터를 쓰거나 읽어온다. 암은 헤드와 하나의 유닛처럼 움직인다.
  2. track & sector
    플래터 표면 내에 동심원에 데이터를 저장하는 공간이 있는데 이를 track이라 한다. 트랙의 일부를 작은 단위로 쪼갠 것을 sector라고 한다.
  3. spindle motor
    모터로 플래터들을 회전시키는 역할을 한다.
  4. cylinder
    platter들의 track 동심원 크기의 track 집합들을 cylinder라고 한다.

디스크 접근시간은 두 가지 요소로 이루어지는데 seek time 과 rotational delay이다. 이중 Seek Time이 가장 큰 비중을 차지한다.
Seek Time: 디스크 암이 헤드를 해당 실린더로 움직이는데에 걸리는 시간)
Rotational Delay: 디스크 헤드가 원하는 섹터 위치로 도달하기까지 회전에 소요되는 시간

컴퓨터 환경은 대부분 다중 프로그래밍환경이다. 여러 프로세스가 메인 메모리에서 실행중인경우 여러 프로세스가 동시에 디스크를 읽으려는 요청이 올 수 있다. 이런 경우 디스크도 CPU와 같이 디스크 큐에서 요청을 저장해두고 처리해야하는 과정이 필요하다.

디스크 스케줄링 알고리즘이란 컴퓨터 성능을 위해 디스크 큐에 쌓이는 요청들을 효율적으로 처리하는 방법을 말한다.

1. FCFS(First-Come First-Served)

먼저 들어온 요청부터 처리하는 방식으로 가장 간단하다. 이 알고리즘은 본질적으로는 공평해 보이지만 빠른 서비스를 제공하지는 못한다. 예를 들어 다음과 같은 입/출력 요청이 디스크 큐에 있다고 가정한다.

98, 183, 37, 122, 65, 67

디스크 헤드가 현재 53 실린더에 있다면 헤드는 53->98->183->37 … 67로 이동하여 총 640 실린더 헤드를 이동하므로 비용이 많이 든다는 문제점이 있다.

2. SSTF(Shortest Seek Time First)

SSTF 스케줄링 알고리즘은 가장 짧은 탐색 시간을 먼저 선택하는 방식이다. 디스크 큐에 몇개의 요청들은 매우 오래 기다리게 되는 Starvation이 발생할 수 있다는 문제점이 있다. 새로운 요청이 기존의 위치와 가까운 요청이 계속 들어온다면 멀리 있는 요청은 무한정 기다려야한다.

3. Scan

Scan 알고리즘에서는 디스크 암(disk arm)이 디스크의 한 끝에서 시작하여 다른 끝으로 이동하며 가는 길에 있는 모든 요청을 처리 한다. 다른 한쪽 끝에 도달하면 역 방향으로 이동하면서 오는 길에 있는 요청을 처리 한다. 엘리베이터처럼 왕복하며 처리하므로 엘리베이터(elevator algorithm)이라고도 부름

4. C-Scan

C-Scan 스케줄링은 각 요청에 걸리는 시간을 좀 더 균등하게 하기 위한 Scan의 변형이다. Scan과 같이 C-Scan은 한쪽 방향으로 헤드를 이동해 가면서 요청을 처리하지만 한쪽 끝에 다다르면 반대 방향으로 헤드를 이동하며 처리하는 것이 아니라 처음 시작했던 자리로 다시 되돌아가서 서비스를 시작한다. C-Scan 스케줄링 알고리즘은 실린더들을 마지막 실린더가 처음 실린더와 맞닿은 원형 리스트로 간주 한다.

5. Look

Scan나 C-Scan 스케줄링은 헤드를 디스크의 끝에서 끝으로 이동한다는 점에 유의해야 한다. 그러나 실제로 이런 방식으로 구현하지는 않는다. 보통 헤드는 각 방향으로 가다가 그 방향에서 아무도 기다리는 요청이 없으면 헤드의 이동 방향을 즉시 반대로 바꾸면 된다. Scan과 C-Scan 스케줄링의 이런 변형을 한 방향으로 계속 움직이기 전에 요구가 있는지 확인(look for)하기 때문에 각각 Look, C-Look 스케줄링 이라 한다. 즉 Scan과의 차이는 Look의 경우 움직이는 방향으로 더이상 요청이 없으면 끝까지 가지 않고 반대 방향으로 헤드를 움직인다는 점이다.

참고자료

디스크 스케줄링
디스크 스케줄링
디스크 스케줄링 알고리즘
하드디스크 구조

profile
공부하려고 노력ing....

0개의 댓글