운영체제와 정보기술의 원리

2 minute read

9장 디스크 관리

디스크: 컴퓨터 시스템의 대표적인 2차 저장장치

메모리는 휘발성인 반면 디스크는 영구 저장장치

디스크 구조

논리블록: 1차원 배열로 취급되는 일정한 크기의 저장공간

디스크 외부로 입출력 일어날 때, 저장될 때 논리블록 단위로 접근

배열의 인덱스 번호를 디스크에 전달 -> 디스크 컨트롤러는 논리블럭의 위치를 찾아 데이터에 대한 작업 수행

섹터: 각 논리블록이 저장되는 디스크 내 물리적 위치, 논리블록과 1대1 매핑

디스크는 여러 개의 마그네틱의 원판으로 구성되어 있고, 원판은 트랙으로 구성되어 있고, 트랙은 섹터로 나뉘어 섹터에 최소한의 단위 정보가 저장된다.

여러 개의 원판에서 상대적 위치가 동일한 트랙의 집합을 실린더라고 한다. 이 읽고자 하는 섹터가 위치한 실린더로 이동해 원판이 회전하며 섹터에 도달한다.


디스크 스케줄링

디스크 접근시간: 탐색시간, 회전지연시간, 전송시간

이 시간이 줄어야 디스크 입출력의 효율이 좋아진다.

  • 탐색시간

    디스크 헤드를 실린더 위치로 이동시키는데 걸리는 시간

    회전지연, 전송시간은 통제하기 어려운 반면에 이건 쉬워서 이 시간을 줄이기 위해 디스크 스케줄링

  • 회전지연시간

    디스크가 회전해서 읽고 쓰려는 섹터가 헤드 위치에 도달하기까지 걸리는 시간

  • 전송시간

    헤드 위치에 도달한 후 실제 섹터에 읽고 쓰는데 걸리는 시간

디스크 스케줄링: 효율적인 디스크 입출력을 위해 여러 섹터들에 대한 입출력 요청이 들어왔을 때 어떤 순서로 처리할지 결정하는 메커니즘

FCFS 스케줄링

먼저 들어온 요청을 먼저 처리

디스크의 끝과 끝에서 요청이 들어오면 매우 비효율적

image

SSTF 스케줄링

현재 위치에서 가장 가까운 요청 먼저 처리

멀리 있는 애는 영원히 읽어올 수 없는 기아 현상 발생 가능

image

SCAN 알고리즘

헤드가 양 끝을 오가며 경로에 존재하는 모든 요청 처리, 엘레베이터와 비슷

헤드가 한번 스캔하면 모든 요청이 처리되어 효율성과 형평성을 모두 만족

양 끝과 가운데 대기 시간이 공평하지 않은 것 C-SCAN으로 해결

image

C-SCAN 알고리즘

SCAN과 같으나 헤드가 다른 쪽 끝에 도달해 방향을 바꾸면 요청을 처리하지 않고 출발점으로 다시 이동

SCAN보다 균일한 탐색시간 제공, 탐색시간 간 편차 줄어듦

image

LOOK 알고리즘, C-LOOK 알고리즘

  • LOOK

    헤드가 한쪽 방향으로 이동하다가 그 방향에 더 이상 대기 중인 요청이 없으면 즉시 이동 방향을 바꿈

    image

  • C-LOOK

    전방에 요청이 없을 때 방향을 바꾸는 것은 LOOK과 같지만 한쪽 방향으로 이동할 때에만 요청 처리

    image

  • 참고

FCFS < SSTF < SCAN, C-SCAN < LOOK, C-LOOK


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

다중 디스크를 사용하면 시스템 성능과 신뢰성 동시 향상

어느 디스크에서 요청 처리할지 스케줄링 문제 발생

  • 탐색시간을 줄이려면?

    헤드 위치가 가까운 디스크 선택, 부하균형

  • 전력 소모 즐이려면?

    일부 디스크에 요청 집중시키고 나머지 회전 정지


디스크의 저전력 관리

비활성화 기법

  • 활동 active

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

  • 공회전 idle

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

  • 준비 standby

    디스크가 회전하지 않지만 인터페이스 활성화

  • 휴면 sleep

    디스크가 회전하지 않고 인터페이스 비활성화

디스크 정지시키는게 전력 절감에 효과적

후속 요청까지 일정 시간 이상 소요될 경우 회전 정지가 효과적

디스크 비활성화 시점 결정 방법

  • 시간기반

    일정 시간동안 공회전 상태면 장치 정지, 재요청 오면 디스크 활성화

  • 예측기반

    과거 요청 관찰해 공회전 구간 길이 예측해 비활성화 시점 결정

  • 확률기반

    상태변경 시간 간격 구하기 위해 확률분포를 통해 요청 모델링

회전속도 조절 기법

디스크의 회전속도(RPM) 조절하는 기법 제안

디스크의 데이터 배치 기법

FS2 파일 시스템 통해 디스크 내 데이터 복제본을 많이 만들어 헤드 위치에서 가까운 복제본에 접근하도록 함

빠른 응답시간과 전력 소모량 절감 가능

일관성 문제를 복제본에서는 무효화 연산만 수행해 쓰기연산 효율성 향상

버퍼캐싱 및 사전인출 기법

디스크가 활성 상태일 때 헤드 위치로부터 가까운 데이터를 사전인출하여 향후 디스크의 비활성화 가능성을 높여 전력 소모를 절감할 수 있고 요청을 최대한 지연시키는 방식으로도 전력 소모를 줄일 수 있다.

저전력 모드일 때는 최대한 지연시켰다가 디스크가 정상적으로 돌아왔을 때는 사전인출을 공격적으로 함으로써 상태 변화 횟수 최소화

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

비활성 상태일 때에는 디스크 쓰기를 하지 않고 기다렸다가 활성 상태로 돌아오면 쓰는 방식