관리자

9.1 디스크 구조

디스크에는 데이터가 일정한 크기로 저장됨: 논리 블럭(logical block)

물리적 저장 위치: 섹터(sector)

sector - logical block: 일대일 매핑

 

디스크는 원판으로 구성.

원판은 트랙으로 구성.

트랙은 섹터로 구성.

섹터에 최소한의 단위 정보가 저장됨.

상대적 위치가 동일한 트랙들의 집합: 실린더.

 

9.2 디스크 스케줄링

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

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

회전 지연 시간(rotational latency): 디스크가 회전해서 읽고 쓰려는 섹터가 헤드에 도달하는데 걸리는 시간

전송 시간(transfer time): 데이터를 실제로 섹터에 읽고 쓰는 데 소요되는 시간

 

탐색 시간을 줄이는 것이 핵심

1) FCFS(Fist Come First Served)

2) SSTF(Shorted Seek Time First): 현재위치에서 가장 가까운 위치에 있는 요청. 기아(starvation)발생 가능

3) SCAN(=엘리베이터 스케줄링 알고리즘): 한쪽 끝에서 한쪽 끝으로. 기아, 이동거리에서 효율적이지만 바깥쪽이 안쪽보다 평균 대기 시간이 긺.

4) C-SCAN(Circular SCAN): SCAN과 비슷하나, 한쪽 끝에 도달하면 다시 시작점으로 돌아가서 처리. 돌아가는 길에는 처리 X. 이동거리는 길어지지만 탐색 시간의 편차는 줄일 수 있음..

5) LOOK: 헤드의 진행방향에 더 이상 요청이 없으면 turn.

   C-LOOK: 헤드의 진행방향에 더 이상 요청이 없으면 시작점으로 돌아감.

 

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

여러 디스크에 데이터가 중복해서 저장된 경우.

어느 디스크에서 작업을 수행할지?에 대한 문제

탐색 시간을 줄이기

디스크간의 부하가 균형을 이루도록

저전력을 원하면 일부 디스크에 요청 집중. -> 디스크에서 요청을 수용할 수 있을 정도에만

 

9.4 디스크의 저전력 관리

1) 비활성화 기법

활동(active): 헤드가 데이터를 읽거나 쓰는 중

공회전(idle): 디스크가 회전중이지만 읽거나 쓰는 중이 아닌 경우

------ ^ 활성화. 아래: 비활성화

준비(standby): 디스크가 회전하지는 않지만 인터페이스가 활성화

휴면(sleep): 디스크 회전 X 인터페이스 비활성화

 

비활성 상태가 활성 상태보다 전력 소모가 적으나, 비활성 때 요청을 처리하는 경우 추가 에너지 소모가 든다.

언제 비활성화 할지 결정하는 알고리즘:

시간 기반 : 일정 시간동안 공회전 -> 정지

예측 기반 : 과거 요청을 보고 공회전 구간의 길이 예측

확률 기반: 마르코프 체인 등의 확률 모델 이용

 

2) 회전 속도 조절 기법

디스크 회전 속도(RPM)

 

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

디스크 내의 복제본을 만듦. -> 헤드 위치에서 가까운 복제본 이용.

 

4) 버퍼 캐슁 및 사전 인출(prefetch) 기법

미래에 요청될 데이터를 알거나/예측 가능하다면 prefetch

디스크가 저전력일 때, 최대한 입출력 지연.

 

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

디스크가 비활성 상태일 때 쓰지 않고 기다렸다가, 활성상태가 되면 씀.

 

 

 

 

 

'CS 기본 이론 > OS' 카테고리의 다른 글

10. 웹 캐슁 기법  (0) 2019.11.04
8. 가상 메모리  (0) 2019.11.04
7. 메모리 관리  (0) 2019.11.04
6.4 CPU 스케줄링  (0) 2019.10.31
5장 프로세스  (0) 2019.10.26

+ Recent posts