Summary

[운영체제와 정보기술의 원리] 09장. 디스크 관리

프로그래민 2022. 1. 3. 01:52
반응형

디스크의 구조

디스크의 물리적 구조

디스크 외부에서는 디스크를 1차원 배열처럼 취급하게 된다. 이 공간들을 논리블록이라고 하고 데이터가 저장될때에도 논리블록 단위로 젖아된다. 각 논리 블록이 저장되는 디스크 내의 물리적 위치를 섹터라한다. 디스크의 물리적 구조는 마그네틱 원판으로 구성된다. 각각 원판은 트랙으로 구성되고 트랙은 섹터로 나뉘며 섹터에 최소한의 단위 정보가 저장된다. 여러 원판에서 같은 동일한 트랙들의 집합을 실린더라 한다.

 

디스크 스케줄링

디스크에 대한 접근시간은 탐색시간, 회전지연시간, 전송시간으로 구분된다. 탐색시간은 디스크 헤드를 해당 실린더 위치로 이동시키는데 걸리는 시간이다. 회전지연시간은 디스크가 회전해서 읽고 쓰려는 섹터가 헤드 위치에 도달하기까지 걸리는 시간이다. 전송시간은 해당 섹터가 헤드 위치에 도달한 후 데이터를 실제로 섹터에 읽고 쓰는데 소요되는 시간이다. 

디스크 입출력의 효율을 높이기 위해서 접근시간을 최소화해야한다. 그렇기 위해서는 탐색시간, 회전지연시간, 전송시간을 줄여야한다. 따라서 헤드의 움직임(이동거리)을 최소화하는 디스크 스케줄링을 하게된다. 

 

FCFS 스케줄링 (First Come First Served)

FCFC 스케줄링의 예

FCFS 스케줄링은 디스크에 먼저 들어온 요청을 먼저 처리하는 방식이다. 그렇기에 최악의 경우 헤드가 디스크를 왕복하며 일처리하는 비효율적인 상황이 발생할 수 있다.

 

SSTF 스케줄링 (Shoretest Seek Time First)

SSTF 스케줄링의 예

SSTF 스케줄링은 헤드의 현재 위치로부터 가장 가까운 위치에 있는 요청을 제일 먼저 처리하는 방식이다. FCFS 스케줄링에 비해 디스크 입출력의 효율성은 증가하지만 헤드의 먼곳은 무한히 기다리게 되는 기아 현상을 발생시킬 수 있다.

 

SCAN 알고리즘

SCAN 스케줄링의 예

SCAN 알고리즘은 헤드가 디스크 원판의 안쪽 끝과 바깥쪽 끝을 오가며 그 경로에 존재하는 모든 요청을 처리하는 방식이다. 엘리베이터 스케줄링 알고리즘이라고도 한다. 기아현상도 안발생하며, 한쪽 끝에서 다른 쪽 끝으로 이동하면서 요청을 모두 처리하기에 효율성과 형평성을 모두 만족하는 알고리즘이다. 하지만 중앙부가 안쪽이나 바깥쪽보다 기다리는 평균시간이 더 짧기 때문에 공평하지는 않다. 따라서 위치에 따른 탐색시간의 편차를 보완하기 위해 C-SCAN 알고리즘이 개발되었다.

 

C-SCAN 알고리즘

C-SCAN 알고리즘의 예

C-SCAN 알고리즘은 SCAN 알고리즘처럼 헤드가 한쪽 끝에서 다른 쪽 끝으로 이동하며 모든 요청을 처리하지만 헤드가 다른 쪽 끝에 도달해 방향을 바꾼 후에는 요청을 처리하지 않고 출발점으로 다시 이동하는 방식이다. 

 

LOOK 알고리즘 과 C-LOOK 알고리즘

C-LOOK 알고리즘의 예

LOOK 알고리즘은 SCAN 알고리즘과 비슷하게 움직이지만 헤드가 한쪽 방향으로 이동하다가 그 방향에 더 이상 대기 중인 요청이 없으면 헤드의 이동 방향을 즉시 반대로 바꾸는 방식이다. C-LOOK 알고리즘은 C-SCAN과 비슷한 알고리즘인데 LOOK 알고리즘과 동일한 특징이 있다. 

 

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

다중 디스크 환경이란 동일한 정보를 여러 디스크 중복 저장함으로써 데이터를 동시에 서비스할 수 있게 해주고, 오류에도 지속적인 서비스를 제공하는 환경을 의미한다. 이때 같은 데이터가 저장되어 있는 여러개의 디스크 중 어느 디스크에서 요청을 처리할지 결정하는 스케줄링이 필요하게 된다.

탐색시간을 줄이는 것이 목표면 여러 디스크 중에서 헤드의 현재 위치가 요청한 데이터와 가장 가까운 디스크를 선택하는 방법이 있다. 다만 골고루 부한균형을 이루도록 스케줄링해야한다. 다만 전력 절감 측면에서는 부하균형을 이루기보다는 부하편향 기법을 사용하기도 한다.

 

디스크의 저전력 관리

디스크 상태 변화에 드는 전력 및 시간

비활성화 기법

디스크의 상태는 전력소모를 기준으로 활동, 공회전, 준비, 휴면 상태로 나누어진다. 활동 상태는 현재 헤드가 데이터를 읽거나 쓰고 있는 상태이고, 공회전 상태는 디스크가 회전 중이지만 데이터를 읽거나 쓰지 않는 상태이다. 준비 상태는 디스크가 회전하지 않지만 인터페이스가 활성화된 상태이고, 휴면 상태는 디스크가 회전하지 않고 인터페이스도 비활성화된 상태이다. 

디스크가 정지해있는 비활성 상태에서는 전력소모가 적기에 요청이 없을때는 디스크를 정지시키는 것이 전력 절감 측면에서 좋다. 디스크를 비활성화하는 시점을 결정하는 방법으로 시간기반 기법, 에측기반 기법, 확률기반 기법등이 있다. 

 

회전속도 조절 기법

디스크의 전력소모를 줄이기 위해 회전속도를 가변적으로 조절하는 기법 또한 존재한다. 

 

디스크의 데이터 배치 기법

디스크 내에 데이터의 복제본을 많이 많들어 헤드 위치에서 가까운 복제본에 접근하도록하는 방법또한 존재한다.

 

버퍼캐싱 및 사전인출 기법

요청될 데이터를 예측할 수 있다면 디스크가 활성 상태일 때 헤드 위치로부터 가까운 데이터를 사전일출 함으로써 디스크의 비활성화 가능성을 높여 전력 소모를 줄일 수도 있다. 또한 디스크 활성 상태 여부에 따라 요청을 최대한 지연시키는 방식으로 전력 소모를 줄일 수 도 있다.

 

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

대상 디스크가 비활성 상태일때에는 디스크 쓰기를 하지 않고 기다렸다가 디스크가 활성 상태로 돌와왔을 때 쓰는 방식으로 전력소모를 줄일 수도 있다.

 

 

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

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

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

www.kyobobook.co.kr

반응형