본문 바로가기
{ Computer Science }/Operating System

[운영체제OS]9(完). 디스크 관리(구조, 스케줄링, 저전력 관리)

by ggyongi 2021. 3. 15.
반응형

********************************

##이 글은 제가 공부하고 있는 책을 요약해놓은 것이므로 본문 내용만 봐선 이해가 어려울 수 있습니다.

 

목차

1. 디스크의 구조

2. 디스크 스케줄링

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

4. 디스크의 저전력 관리

********************************

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

 

1. 디스크의 구조

디스크 외부에서는 디스크를 일정한 크기의 저장공간들로 이루어진 1차원 배열처럼 취급하게 됨. 이 일정크기의 저장공간을 논리블록(logical block)이라 하며, 디스크에 데이터가 논리블록 단위로 저장됨. 디스크 외부로 입출력이 일어날 때에도 논리블록 단위로 전송됨. 논리블록에 저장된 데이터를 접근하기 위해서는 배열을 접근하는 것처럼 해당 블록의 인덱스 번호를 디스크에 전달해야 한다. 그러면 디스크 컨트롤러가 해당 논리블록이 저장된 물리적 위치를 찾아 요청된 데이터에 대한 입출력작업을 수행. 이때 각 논리블록이 저장되는 디스크의 물리적 위치를 섹터라고 부느다. 즉 논리블록 하나가 섹터 하나와 1대1로 매핑되어 저장. 

디스크의 물리적인 구조는 마그네틱의 원판으로 구성. 원판의 수는 다양할 수 있고, 각 원판은 트랙으로 구성되고 각 트랙은 섹터로 나뉘며, 섹터에 최소 단위의 정보가 저장됨. 여러개의 원판에서 상대적 위치가 동일한 트랙들의 집합을 실린더(cylinder)라고 부른다. 섹터 0은 최외곽 실린더의 첫번째 트랙에 있는 첫번째 섹터이다. 디스크에 데이터를 읽고 쓰기 위해 암(arm)이 해당 섹터가 위치한 실린더로 이동한 후 원판이 회전하여 디스크 헤드가 저장된 섹터 위치에 도달해야 함.

 

2. 디스크 스케줄링

디스크 접근시간(access time): 탐색시간+회전지연시간+전송시간

탐색시간(seek time): 디스크 헤드를 해당 실린더 위치로 이동시키는 데 걸리는 시간.

회전지연시간(rotational latency): 디스크가 회전해서 읽고 쓰려는 섹터가 헤드 위치에 도달하기까지의 시간.

전송시간(transfer time): 해당 섹터가 헤드 위치에 도달한 후 데이터를 실제로 섹터에 읽고 쓰는데 소요되는 시간.

접근시간을 줄여야 디스크 입출력의 효율이 높아지는데, 회전지연시간과 전송시간은 상대적으로 수치가 작을 뿐아니라 운영체제 입장에서 통제하기 힘든 부분이다. 따라서 운영체제는 탐색시간을 줄이기 위한 스케줄링 작업을 한다. 

디스크 스케줄링이란 여러 섹터들에 대한 입출력 요청이 들어왔을 때 처리 순서를 결정하는 메커니즘이다. 가장 중요한 목표는 디스크 헤드의 이동거리를 줄이는 것이다. 

 

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

디스크에 먼저 들어온 요청을 먼저 처리하는 방식. 효율성이 매우 떨어짐. 최악의 경우 입출력 요청이 디스크의 한쪽 끝과 반대쪽 끝에 번갈아 도착한다면 헤드는 디스크를 왕복하며 일을 처리해야함.

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

헤드의 현재 위치로부터 가장 가까운 위치에 있는 요청을 먼저 처리하는 방식. 헤드의 이동거리를 줄여 입출력 효율성을 증가시키지만, 자칫 기아 현상이 발생할 수 있음. 가까운 곳에서 지속적인 요청이 들어오면 먼 곳의 요청은 무한히 기다려야 함.

3)SCAN 알고리즘

헤드가 디스크 원판의 안쪽 끝과 바깥쪽 끝을 오가며, 그 경로에 존재하는 모든 요청을 처리. 일상에서 흔히 볼 수 있는 엘리베이터에서 사용하는 스케줄링 알고리즘과 유사. SCAN 알고리즘에서는 FCFS처럼 불필요한 헤드의 이동이 발생하거나 SSTF처럼 일부 지역이 지나치게 오래 기다리는 현상이 발생하지 않아 효율성, 형평성을 모두 만족하는 알고리즘. 하지만 SCAN알고리즘에서 모든 실린더 위치의 기다리는 시간이 공평한 것은 아니다. 제일 안쪽이나 바깥쪽 위치보다는 가운데 위치가 기다리는 평균시간이 더 짧기 때문. 

4) C-SCAN 알고리즘

C-SCAN(Circular-SCAN) 알고리즘은 SCAN처럼 헤드가 한쪽 끝에서 다른 끝으로 이동하며 모든 요청을 처리한다. 그러나 SCAN과 달리 헤드가 다른 쪽 끝에 도달해 방향을 바꾼 후에는 요청을 처리하지 않고 곧바로 출발점으로 이동만 한다. 이 방식은 기존보다 더 균일한 탐색시간을 제공함. 즉 SCAN보다 헤드의 이동거리는 조금 길어지지만 탐색시간의 편차를 줄일 수 있다는 것이 C-SCAN의 장점.

5) LOOK과 C-LOOK 알고리즘

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

 

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

포털사이트 등 동시 사용자를 서비스하는 서버에서는 다수의 디스크를 함께 사용함. 동일한 정보를 여러 디스크에 중복 저장함으로써 인기 데이터를 여러 디스크로부터 동시에 서비스하고, 일부 디스크에 오류가 발생해도 지속적인 서비스가 가능하며, 정보의 유실을 방지할 수 있음. 이러한 환경에서는 같은 데이터가 저장되어 있는 여러 개의 디스크 중 어느 디스크에서 요청을 처리할지 결정하는 스케줄링 문제가 발생. 이러한 시스템에서는 스케줄링의 목표에 따라 요청을 처리할 디스크를 결정하는 기준이 달라진다. 예를 들어 탐색시간을 줄이는 것이 목표라면 여러 디스크 중에서 헤드의 현재 위치가 요청한 데이터와 가장 가까운 디스크를 선택하는 방법을 사용할 수 있다. 거시적인 관점에서는 각 디스크 간의 부하균형(load balancing)을 이루도록 스케줄링하는 것이 중요. 일부 디스크가 과부하 상태에 이르지 않고 모든 디스크에 요청이 골고루 분배되도록 스케줄링해야 하기 때문이다. 

전력 소모를 줄이는 측면에서는 모든 디스크에 요청을 골고루 분배시키기보다는 일부 디스크에 요청을 집중시켜 나머지는 회전을 정지시키는 것이 효율적. 물론 일부 디스크만으로 요청을 충분히 처리할 수 있는 상황에 한해서 성립(부하편향 기법).

 

4. 디스크의 저전력 관리

1)비활성화 기법

활동 상태: 현재 헤드가 데이터를 읽거나 쓰고 있는 상태.

공회전 상태: 디스크가 회전 중이지만 데이터를 읽거나 쓰지는 않는 상태.

준비 상태: 디스크가 회전하지 않지만 인터페이스가 활성화된 상태.

휴면 상태: 디스크가 회전하지 않고 인터페이스도 비활성화된 상태.

디스크가 회전 중인 활동 상태와 공회전 상태를 활성 상태라 부르고, 디스크가 정지한 준비 상태와 휴면 상태를 비활성 상태라고 부른다. 요청이 없을 경우 디스크를 정지시키는 것이 전력 절감 측면에서 효율적이지만, 상태 전환시 부가적인 전력 및 시간이 소모된다. 따라서 후속 요청까지의 시간 간격이 일정 시간 이상일 경우에만 디스크의 회전을 정지시키는 것이 전력 소모를 절감하는 데 효과적. 이는 장치를 비활성화할 시점을 결정하기 위해 미래의 요청이 도작하는 시점과 간격을 정확히 예측하는 것이 중요함을 뜻한다. 

<디스크를 비활성화하는 시점을 결정하는 방법 3가지>

시간기반(timeout based) 기법: 일정 시간 동안 디스크가 공회전 상태이면 장치를 정지시켰다가, 다시 요청이 왔을 때 디스크를 활성화

예측기반(prediction based) 기법: 과거 요청을 관찰하여 다음 공회전 구간의 길이를 예측한 후 디스크를 비활성화할 시점을 결정

확률기반(stochastic based) 기법: 디바이스의 상태변경 시간 간격을 구하기 위해 확률분포를 통해 요청을 모델링하고 마르코프 체인 등과 같은 통계적 모델 이용

 

2)회전속도 조절 기법

디스크의 회전속도를 가변적으로 조절하는 기법. 운영체제는 시스템 자원과 부하를 포괄적으로 볼 수 있기 때문에 하드웨어 혼자서 전력 관리를 하는 것에 비해 더 많은 전력 절감 효과를 얻을 수 있다. 

워크로드 특성을 활용해 회전속도를 조절하려는 시도, 멀티미디어 환경에서 저전력을 위한 디스크 스케줄링으로 23프로까지 전력 소모를 줄인 연구, 실시간 응용프로그램의 재생률과 버퍼 크기에 따라 디스크의 회전속도를 조절해서 전력 소모를 줄이는 기법 등이 제안되었다.

 

3)디스크의 데이터 배치 기법

디스크 용량은 빠른 속도로 증가하고 있으나 디스크의 접근 속도는 기계적 매커니즘으로 인해 그다지 큰 발전이 없는 실정. 미시간대학교의 신강근 교수 팀은 대부분의 컴퓨터 시스템에서 디스크의 53프로 이상이 빈 공간인 상태로 남아 있다는 점에 착안, 디스크 내에 데이터의 복제본을 많이 만들어 헤드 위치에서 가까운 복제본에 접근하도록 하여 빠른 응답시간과 전력 소모량 절감을 얻는 FS2 파일 시스템(free space file system)을 제안. 

 

4)버퍼캐싱 및 사전인출 기법

미래에 요청될 데이터를 알거나 예측할 수 있다면 디스크가 활성 상태일때 헤드위치로부터 가까운 데이터를 사전인출함으로써 향후 디스크의 비활성화 가능성을 높여 전력소모를 줄일 수 있음. 또한 데드라인을 꼭 지켜야하는 긴급 요청이 아닌 경우 디스크의 활성 상태 여부에 따라 요청을 최대한 지연시키는 방식으로 전력 소모를 줄일 수 있음. 이 둘을 통합하여 디스크가 저전력 모드일 때는 입출력 처리를 최대한 지연시켰다가 디스크가 정상 전력 모드로 돌아왔을 때 사전인출을 공격적으로 함으로써 디스크의 상태 변화 횟수를 최소화하는 방법이 연구된 바 있음.

 

5)쓰기전략을 통한 저전력 디스크 기법

대상 디스크가 비활성 상태일 때에는 디스크 쓰기를 하지 않고 기다렸다가, 디스크가 활성 상태로 돌아왔을 때 쓰는 방식으로 전력 소모를 줄이는 방안, 대상 디스크가 활성 상태가 아니면 일단 블록들을 로그 디스크에 썼다가 디스크가 활성 상태로 돌아왔을 때 디스크에 쓰기연산을 수행하는 방안이 제안된 바 있음.  

 

 

비전공자 네카라 신입 취업 노하우

시행착오 끝에 얻어낸 취업 노하우가 모두 담긴 전자책!

kmong.com

댓글