본문 바로가기
CS/OS

[OS] 09. 디스크 관리

by 원만사 2022. 1. 3.
반응형

1. 디스크의 구조

디스크의 물리적 구조

  • 디스크에 데이터가 저장될 때에는 논리블록 단위로 저장되고, 외부로 입출력이 일어날 때에도 논리블록 단위로 전송된다.
  • 논리블록에 저장된 데이터를 접근하기 위해서는 해당 블록의 인덱스 번호를 디스크에 전달해야 한다. 
  • 각 논리블록이 저장되는 디스크 내의 물리적인 위치를 섹터(sector)라고 부른다. 
  • 디스크는 마그네틱의 원판으로 구성되며 하나일 수도 있고 여러 개일 수도 있다. 
  • 각각의 원판은 트랙(track)으로 구성되고 각 트랙은 섹터로 나뉘며, 섹터에 최소한의 단위 정보가 저장된다. 
  • 여러 개의 원판에서 상대적 위치가 동일한 트랙들의 집합을 실린더(cylinder)라고 부른다. 
  • 디스크에 데이터를 읽고 쓰기 위해서는 암(arm)이 해당 섹터가 위치한 실린더로 이동한후 원판이 회전하여 디스크 헤드가 저장된 섹터 위치에 도달해야 한다. 

 

2. 디스크 스케줄링 

디스크에 대한 접근시간(access time)
 = 탐색시간(seek time) + 회전지연시간(rotational time) + 전송시간(transfer time)

 

  • 탐색시간 : 디스크 헤드를 해당 실린더 위치로 이동시키는 데 걸리는 시간 
  • 회전지연시간 : 디스크가 회전해서 읽고 쓰려는 섹터가 헤드 위치에 도달하기까지 걸리는 시간 
  • 전송시간 : 해당 섹터가 헤드 위치에 도달한 후 데이터를 실제로 섹터에 읽고 쓰는 데 소요되는 시간 
  • 디스크 입출력의 효율을 높이기 위해서는 디스크 입출력에 소요되는 접근시간을 최소화해야 한다. 
  • 회전지연시간과 전송시간은 상대적인 수치가 작을 뿐 아니라 운영체제 입장에서 통제하기 힘들다. 따라서 운영체제는 탐색시간을 줄이기 위해 헤드의 움직임을 최소화하는 스케줄링 작업을 한다. 
  • 디스크 스케줄링의 가장 중요한 목표는 디스크 헤드의 이동거리를 줄이는 것이다. 

 

1) FCFS 스케줄링 (First Come First Served)

  • 디스크에 먼저 들어온 요청을 먼저 처리하는 방식이다.
  • 최악의 경우 입출력 요청이 디스크의 한쪽 끝과 반대쪽 끝에 번갈아 도착한다면 헤드는 디스크를 계속 왕복하며 일을 처리해야 하므로 탐색시간이 매무 비효율적으로 늘어나는 결과를 초래한다. 

 

FCFS 스케줄링의 예 

 

2) SSTF 스케줄링 (Shortest Seek Time First)

  • 헤드의 현재 위치로부터 가장 가까운 위치에 있는 요청을 제일 먼저 처리하는 알고리즘이다. 
  • 헤드의 이동거리를 줄여 디스크의 입출력의 효율성을 증가시킨다.
  • 하지만 현재의 해드 위치로부터 가까운 곳에서 지속적인 요청이 들어올 경우 헤드 위치에서 멀리 떨어진 곳의 요청을 무한히 기다려ㅑ야하는 기아 현상(starvation)을 발생시킬 수 있다.
  • FCFS와 비교해볼 때 헤드의 이동거리를 많이 줄일 수 있지만 그렇다고 헤드의 이동거리 측면에서 가장 우수한 알고리즘은 아니다. 

SSTF 스케줄링의 예 

 

3) SCAN 알고리즘

SCAN 알고리즘에서 디스크 헤드의 요청 처리 경로 

  • 헤드가 디스크 원판의 안쪽 끝과 바깥쪽 끝을 오가며, 그 경로에 존재하는 모든 요청을 처리한다. 
  • 요청과 상관없이 헤드는 정해진 방향으로 이동하면서 길목에 있는 요청들을 처리하며 지나간다. 
  • 엘리베이터의 알고리즘과 유사하여 엘리베이터 스케줄링 알고리즘이라고도 부른다. 
  • FCFS처럼 불필요한 헤드의 이동이 발생하거나 SSTF처럼 일부 지역이 지나치게 오래 기다리는 현상은 발생하지 않는다. 즉, 효율성과 형평성을 모두 만족한다고 볼 수 있다.
  • 한쪽 끝에서 다른 쪽 끝으로 한 번만 이동하면 현재 큐에 들어온 모든 요청을 처리할 수 있으므로 이동거리 측면에서 매우 효율적이다. 
  • 하지만 제일 안쪽이나 제일 바깥쪽 위치보다는 가운데 위치가 기다리는 평균시간이 더 짧기 때문에 모든 실린더 위치의 기다리는 시간이 공평한 것은 아니다. 
  • 위치에 따른 탐색시간의 편차를 보완하기 위한 C-SCAN 알고리즘이 존재한다.

 

4) C-SCAN 알고리즘 

C-SCAN 알고리즘에서 디스크 헤드의 요청 처리 경로 

  • SCAN처럼 헤드가 한쪽 끝에서 다른 쪽 끝으로 이동하며 모든 요청을 처리하지만 SCAN과 달리 헤드가 다른 쪽 끝에 도달해 방향을 바꾼 후에는 요청을 처리하지 안혹 곧바로 출발점으로 다시 이동만 한다. 
  • 각 실린더 위치에 대해 SCAN보다 좀 더 균일한 탐색시간을 제공한다. 
  • SCAN보다 헤드의 이동거리는 조금 길어지지만 탐색시간의 편차를 줄일 수 있다.

C-SCAN 스케줄링의 예

 

5) LOOK과 C-LOOK 알고리즘 

  • LOOK 알고리즘은 헤드가 한쪽 방향으로 이동하다가 그 방향에 더 이상 대기 중인 요청이 없으면 헤드의 이동 방향을 즉시 반대로 바꾸는 스케줄링 방식이다.
  • C-LOOK의 경우 C-SCAN과 같이 한쪽 방향으로 이동할 때에만 요청을 처리한다는 점이 유사하다. 

C-LOOK 스케줄링의 예

 

 

3. 다중 디스크 환경에서의 스케줄링 

 수많은 동시 사용자를 서비스하는 서버에서는 다수의 디스크를 함께 사용한다. 동일한 정보를 여러 디스크에 중복 저장함으로써 인기 있는 데이터를 여러 디스크로부터 동시에 서비스할 수 있고, 일부 디스크에 오류가 발생해도 지속적인 서비스가 가능하며, 정보의 유실을 방지할 수 있기 때문이다. 다중 디스크를 사용하면 시스템의 성능과 신뢰성을 동시에 향상시킬 수 있다. 

 

 다중 디스크 환경에서는 어느 디스크에서 요청을 처리할지 결정하는 스케줄링 문제가 발생한다. 스케줄링의 목표에 따라 요청을 처리할 디스크를 결정하는 기준이 달라진다. 탐색시간을 줄이기 위해서 여러 디스크 중에서 헤드의 현재 위치가 요청한 데이터와 가장 가까운 디스크를 선택하는 방법을 사용할 수 있다. 또한 각 디스크 간의 부하균형을 이루도록 스케줄링하는 것도 중요하다. 최근에는 전력 소모를 줄이기 위해서 일부 디스크에 요청을 집중시키고 나머지 디스크는 회전을 정지시키기도 한다. 

 

 

Reference

 

운영체제와 정보기술의 원리 - 교보문고

이 책은 총 10장으로 구성되어 있다.1장 ‘컴퓨터 및 정보기술의 역사’에서는 운영체제를 설명하기에 앞서 정보기술의 원리와 철학에 대해 정의하고, 컴퓨터와 정보기술 분야의 역사를 간략히

www.kyobobook.co.kr

 

반응형

'CS > OS' 카테고리의 다른 글

[OS] 08. 가상메모리  (0) 2022.01.01
[OS] 프로세스와 스레드  (0) 2021.12.29
[OS] 07. 메모리 관리  (0) 2021.12.27
[OS] 06. CPU 스케줄링  (0) 2021.12.26
[OS] 스핀락, 뮤텍스, 세마포어  (0) 2021.12.22

댓글