CS/Operating System

디스크 관리

olsohee 2024. 3. 5. 18:34

디스크는 컴퓨터 시스템의 대표적인 2차 저장장치이다. 메모리는 휘발성 저장장치이므로 전원이 나가면 그 내용이 모두 사라진다. 따라서 컴퓨터에서 수행한 작업의 결과를 영구적으로 보관하기 위해서는 디스크 같은 2차 저장장치를 이용해야 한다.

디스크의 구조

  • 논리블록디스크 외부에서는 디스크를 일정한 크기의 저장공간들로 이루어진 1차원 배열처럼 취급하게 된다. 그리고 이때 이 일정한 크기의 저장공간을 논리블록이라고 한다. 디스크에 데이터가 저장될 때 논리블록 단위로 저장되고, 디스크 외부로 입출력이 일어날 때도 논리블록 단위로 전송된다.
  • 섹터: 각 논리블록이 저장되는 디스크 내의 물리적 위치이다. 디스크 컨트롤러가 논리블록을 디스크 내의 섹터 번호로 매핑하는 역할을 담당한다. 즉, 해당 논리블록이 저장된 물리적 위치를 찾아 요청된 데이터에 대한 입출력 작업을 수행하게 된다. 섹터 0번은 최외각 실린더의 첫 트랙에 있는 첫 번째 섹터이다.
  • 트랙: 하나의 디스크 내에 원판의 수는 하나일 수도 있고 여러 개일 수도 있다. 각각의 원판은 트랙으로 구성되고 각 트랙은 섹터로 나뉜다.
  • 실린더: 여러 개의 원판에서 상대적 위치가 동일한 트랙들의 집합 실린더라고 한다.

디스크에 데이터를 읽고 쓰기 위해서는 암이 해당 섹터가 위치한 실린더로 이동한 후, 원판이 회전하여 디스크 헤드가 저장된 섹터의 위치에 도달해야 한다. 

디스크 스케줄링

디스크에 대한 접근시간은 다음 세 가지로 구분된다.

  • 탐색시간: 디스크 헤드를 해당 실린더 위치로 움직이는 데 걸리는 시간
  • 회전지연시간: 디스크가 회전해서 헤드가 원하는 섹터에 도달하기까지 걸리는 시간
  • 전송시간: 데이터를 실제로 섹터에 읽고 쓰는 데 소요되는 시간

디스크 대역폭(dist bandwidth)은 디스크 성능을 나타내는 값으로, 단위 시간 당 전송된 바이트 수이다. 디스크 성능을 높이기 위해서는 디스크 입출력에 소요되는 접근시간을 최소화해야 하는데, 회전지연시간과 전송시간은 상대적인 수치가 작을 뿐 아니라 운영체제 입장에서 통제하기 힘든 부분이다. 따라서 운영체제는 탐색시간을 줄이기 위해 헤드의 움직임을 최소화하는 스케줄링 작업을 진행한다. 디스크 스케줄링이란 여러 섹터들에 대한 입출력 요청이 들어왔을 때 효율적인 디스크 입출력을 위해 이들을 어떤 순서로 처리할 것인지 결정하는 메커니즘이다. 그리고 디스크 스케줄링의 핵심 목표는 디스크 헤드의 이동거리를 줄이는 것이다. 

  • FCFS(First Come First Served): 디스크에 먼저 들어온 요청을 먼저 처리하는 방법
    • 단점: 효율적이지 못한 방법이다. 최악의 경우 입출력 요청이 디스크의 한쪽 끝과 반대쪽 끝에 번갈아 도착한다면 헤드는 디스크를 계속 왕복하며 일을 처리해야 하므로 탐색시간이 비효율적으로 매우 길어질 것이다. 

  • SSTF(Shortest Seek Time First): 헤드의 현재 위치로부터 가장 가까운 위치에 있는 요청을 제일 먼저 처리하는 방법
    • 장점: 헤드의 이동거리를 줄여 디스크 입출력의 효율성을 증가시킬 수 있다.
    • 단점: 기아 현상이 발생할 수 있다. 현재 헤드 위치로부터 가까운 곳에서 지속적인 요청이 들어온다면 헤드 위치에서 먼 곳의 요청은 무한정 기다려야 하기 때문이다. 

  • SCAN: 헤드가 디스크 원판의 안쪽 끝과 바깥쪽 끝을 오가며, 그 경로에 존재하는 모든 요청을 처리하는 방법
    • 장점: FCFS처럼 불필요한 헤드의 이동이 발생하거나 SSTF처럼 일부 지역이 지나치게 오래 기다리는 현상이 발생하지 않는다. 즉 효율성과 형평성을 모두 만족하는 알고리즘이다. 
    • 단점: 하지만 실린더 위치에 따라 평균 대기 시간이 다르다. 제일 안쪽이나 제일 바깥쪽 위치보다는 가운데 위치가 기다리는 평균 시간이 더 짧기 때문이다. 따라서 이러한 차이를 보완하기 위해 C-SCAN 알고리즘이 등장했다.

  • C-SCAN: SCAN처럼 헤드가 한쪽 끝에서 다른 쪽 끝으로 이동하며 가는 길목에 있는 모든 요청을 처리하는데, SCAN과 달리 헤드가 다른 쪽 끝에 도달해 방향을 바꾼 후에는 요청을 처리하지 않고 곧바로 출발점으로 이동만 하는 방법
    • 장점: SCAN 방식보다 각 실린더 위치에 대해 좀 더 균일한 탐색시간을 제공한다. 즉, SCAN 보다 헤드의 이동거리는 조금 길어지지만 대기시간의 편차는 줄일 수 있다. 
  • LOOK: SCAN 알고리즘과 유사하지만, 헤드가 한쪽 방향으로 이동하다가 그 방향에 더 이상 대기 중인 요청이 없으면 헤드의 방향을 즉시 반대로 바꾸는 방법

  • C-LOOK: LOOK 알고리즘과 유사하지만, 한쪽 방향으로 이동할 때에만 요청을 처리하는 방법


Reference

  • 이화여자대학교출판문화원, 운영체제와 정보기술의 원리, 반효경

'CS > Operating System' 카테고리의 다른 글

스케줄러  (0) 2024.04.02
블로킹/논블로킹과 동기/비동기 처리 방식  (1) 2024.04.01
메모리 관리 기법 - 페이징 기법  (0) 2024.02.29
가상 메모리와 메모리 관리 기법  (0) 2024.02.29
CPU 스케줄링  (1) 2024.02.28