3. 다중 디스크 환경에서의 스케줄링
여러 사용자를 동시에 서비스하는 서버에서는 다중 디스크를 사용한다. 왜냐하면 여러 디스크로 동시에 서비스할 수 있고 일부 디스크에 오류가 발생해도 지속적인 서비스가 가능하기 때문이다.
이러한 다중 디스크 환경에서는 디스크 내에서의 입출력 요청의 처리 순서만 결정하는 것이 아니라 어떤 디스크의 작업을 수행할 것인지를 고르는 문제까지 해결해야 한다. 최근에는 전력 소모를 줄이는 것이 디스크 관리의 또 다른 중요한 목표로 인식되고 있다.
4. 디스크의 저전력 관리
1) 비활성화 기법
디스크의 상태는 전력 소모를 기준으로 크게 4가지 상태인 활동(active), 공회전(idle), 준비(standby), 휴면(sleep)으로 나눌 수 있다. 이 때 현재 상태에서 다른 상태로 넘어가려면 부가적인 전력 및 시간이 소요된다. 따라서 후속 요청까지의 시간 간격이 일정 시간 이상일 경우에만 디스크의 회전을 정지시키는 것이 전력 소모를 절감하는데 효과적이다.
디스크를 비활성화하는 시점을 결정하는 방법으로는 시간 기반(일정 시간동안 디스크가 공회전 하면 장치를 정지 시켰다가 요청이 들어오면 그 때 다시 살린다)과 예측 기반(과거 요청을 관찰하여 다음 공회전구간의 길이를 예측하고 디스크를 비활성화할 시점을 결정한다), 확률 기반(디바이스의 상태 변경 시간 간격을 구하기 위해 확률 분포를 통해 요청을 모델링한다.)이 있다.
2) 회전속도 조절 기법
디스크의 회전속도(Rotations Per Minute: RPM)을 가변적으로 조절하는 기법이 제안되었다.
3) 디스크의 데이터 배치 기법
디스크 내에 데이터의 복제본을 많이 만들어 헤드 위치에 가까운 복제본에 접근하도록 하는 기법이 제안되었다.
4) 버퍼 캐싱 및 사전인출 기법
디스크가 저전력 모드일 때에는 입출력 처리를 최대한 지연시켰다가 디스크가 정상 전력 모드로 돌아왔을 때 사전 인출을 공격적으로 함으로써 디스크의 상태 변화 횟수를 최소화 하는 방법이 연구된 바 있음.
5) 쓰기전략을 통한 저전력 디스크 기법
대상 디스크가 비활성 상태일 때에는 디스크 쓰기를 하지 않고 기다렸다가, 디스크가 활성 상태로 돌아왔을 때 쓰는 방식으로 전력 소모를 줄이는 방법이 연구된 바 있다고 한다.
<Swap Disk>
* disk를 사용하는 2가지 이유
- 메모리의 voltile한 특성 -> file system
- 프로그램 실행을 위한 메모리 공간 부족 -> swap area (swap space)
* swap space
- virtual memory system 에서는 disk를 memory의 연장 공간으로 사용
- 파일 시스템 내부에 둘 수 있으나 별도 partition 사용이 일반적이다.
- 공간 효율성보다는 속도 효율성이 우선
- 일반 파일보다 훨씬 짧은 시간만 존재하고 자주 창조된다.
- 따라서 block의 크기 및 저장 방식이 다른 파일 시스템과 다르다
<RAID>
RAID(Redundant Array of Independant Disks)
여러 개의 디스크를 묶어서 사용한다.
RAID의 사용 목적
1. 디스크 처리 속도 향상
- 여러 디스크에 block의 내용을 분산 저장
- 병렬적으로 읽어온다. (interleaving, striping)
2. 신뢰성 (reliability) 향상
- 동일 정보를 여러 디스크에 중복 저장
- 하나의 디스크가 고장(failure)시 다른 디스크에서 읽어옴(Mirroring, shadowing)
- 단순한 중복 저장이 아니라 일부 디스크에 parity를 저장, 공간 효율성 증진시킨다.
'CS > operating system' 카테고리의 다른 글
Deadlock: 교착 상태 (2/2) (0) | 2021.02.26 |
---|---|
Deadlock: 교착 상태 (1/2) (0) | 2021.02.25 |
Disk Management: 디스크 관리 (1/2) (0) | 2021.02.23 |
Virtual Memory: 가상 메모리 (2/2) (0) | 2021.02.22 |
Virtual Memory: 가상 메모리 (1/2) (0) | 2021.02.19 |