[운영체제/OS] 디스크 관리
디스크 구조
-
Track(트랙)
디스크의 회전축을 중심으로 데이터가 기록되는 동심원으로 디스크의 종류마다 개수가 다르다 -
Sector(섹터)
하나의 트랙을 몇 개로 분할한 블록으로 한 개의 섹터는 보통 512~1024Byte 용량으로 기록할 수 있다. 데이터를 기록하는 단위를 클러스터라고 하며 1개 또는 여러 개의 섹터로 구성된다 -
IPL(Initial Program Loader)
디스크 드라이브가 디스크에 접근할 때 디스크의 물리적인 정보를 제공하는 것으로 보통 부트 섹터라고 한다.이 섹터에는 다음의 정보를 가진다
- 부팅 시스템의 위치
- 제작사 명칭
- 버전
- 섹터 당 바이트 수
- 클러스터 당 섹터 수
- FAT의 수
- FAT에 할당된 섹터 수
- 디스크면 수 등
-
FAT(File Allocation Table)
사용자가 해당 블록의 포인트를 실수로 지워지게 하는 것을 예방하고 블록 접근을 빠르게 하기 위하여 포인터를 모아 놓은 곳으로 디스크 데이터 영역에 위치를 1:1로 사상한 정보들을 갖고 있다보통 2개 이상의 복사본을 갖고 있으며, 디스크에 문제가 발생하면 언제든지 복사본을 이용해 복구
-
Directory
디스크에 저장된 파일의 기본적인 정보를 수록하는 공간으로 다음 정보를 가진다- 파일명
- 파일 속성
- 작성 날짜
- 작성 시간
- 파일 위치
- 파일의 크기
디스크 접근 시간
-
탐색 시간(Seek Time)
디스크 상의 원하는 데이터를 액세스하기 위해 트랙 또는 실린더에 헤드를 위치시키는데 소요되는 시간을 의미 -
회전 지연 시간(Latency Time, Rotational Delay, RPM 지연 시간)
지정된 트랙에 위치한 헤드가 원하는 섹터에 도달하는데 소요되는 시간 -
전송 시간(Transmission Time)
디스크로부터 주기억 장치로 데이터가 이동하는 시간
디스크 스케줄링
디스크에 존재하는 파일의 데이터들은 연속되지 않은 많은 섹터에 저장되어 있다. 물리적으로 회적하는 디스크에서 어떻게 하면 신속하게 많은 양의 데이터를 가져오느냐를 운영체제는 고민하고 계획하는 과정을 의미
디스크는 한쪽 방향으로 회전시키면서 사용해야 기계적인 부담이 없다. 회전 지연 시간이 빠르다해서 디스크를 양쪽 방향으로 회전시킨다면 디스크 드라이브는 오래 사용할 수 없을 것이다.
해당 섹터에서 데이터를 주기적 장치로 가져오는 전송 시간은 CPU의 성능과 관계가 있으므로 스케줄링의 영향을 받지 못한다. 따라서 디스크 상의 원하는 데이터를 액세스하기 위해 트랙 또는 실린더에 헤드를 위치시키는데 걸리는 탐색 시간을 중심으로 스케줄링을 수행한다.
- 목적
- 처리량을 최대화
- 응답 시간을 최소화
- 응답 시간의 편차를 최소화
디스크 스케줄링 종류
FCFS(First Come First Served, FIFO)
가장 간단한 스케줄링 형태로 대기 큐에 들어온 작업에 CPU를 할당하는 기법
- 도착 순서에 따라 실행 순서가 고정된다는 점에서 공평하다
- 요청한 순서대로 진행하기 때문에 순서가 변경되는 일이 없다
- 디스크의 부하가 적을 때 유리
- 디스크의 부하가 커지면 응답 시간이 길어진다
- 탐색 시간을 최적화하려는 시도가 없다
SSTF(Shortest Seek Time First)
헤드의 탐색 거리가 가장 짧은 요청을 먼저 서비스하는 방식
- 가운데 트랙이 안쪽이나 바깥쪽보다 서비스받을 확률이 높다
- 헤드에서 멀리 떨어진 요청은 기아 상태가 발생할 수 있다
- FCFS보다 처리량이 많고 평균 응답 시간이 짧다
- 처리량이 많기 때문에 일괄 처리에 적합
- 응답 시간의 편차가 크기 때문에 대화형 시스템에는 부적합
SCAN
SSTF의 문제점인 응답 시간의 편차를 극복하기 위해 Denning이 개발한 방법으로 헤드가 디스크 표면을 양방향(안쪽/바깥쪽)으로 이동하면서 I/O 요청을 서비스. 이 때 헤드는 이동하는 방향의 앞쪽에 I/O 요청이 없을 경우에만 후퇴가 가능하다
- 진행 방향상의 가장 짧은 거리에 있는 요청을 먼저 수행
- 진행 방향으로 끝까지 진행
- 부하가 적은 경우 가장 좋은 결과
C-SCAN
SCAN의 문제점인 안쪽과 바깥쪽의 차별 대우를 모두 없애기 위해 항상 바깥쪽 실린더에서 안쪽으로 움직이면서 가장 짧은 탐색 시간을 가진 요청을 우선 서비스
헤드는 트랙의 안쪽으로 한방향으로만 이동하며 안쪽에 더 이상 I/O 요청이 없으면 다시 바깥쪽에서 안쪽으로 이동하면서 I/O 요청을 서비스한다
- 안쪽 방향으로 끝까지 진행
- 응답 시간의 편차가 매우 작다
- 부하가 많을 경우 C-SCAN 기법이 가장 좋은 결과를 가진다
LOOK / C-LOOK
SCAN과 C-SCAN은 헤드를 디스크의 끝까지 이동한다. 요청이 없는 경우에도 끝까지 진행한다는 것은 시간 낭비이다.
따라서 헤드는 각 방향으로 요청에 따르는 거리만큼을 이동하고, 현재 방향에서 더 이상의 요청이 없다면 헤드의 이동 방향이 바뀌는 방법이 효과적이다
SCAN, C-SCAN에서 이런 형태를 추가한 것이 LOOK, C-LOOK이다. 진행 방향에 더 이상의 요청이 있는지를 확인한다는 의미로 “LOOK
“이란 단어를 사용하였다. 엘리베이터 운행 방식과 동일하여 엘리베이터 스케줄링이라고도 한다
N-Step SCAN
어떤 방향의 진행이 시작될 당시 대기 중이던 요청들만 서비스하고, 진행 도중 도착한 요청들은 한데 모아서 다음 진행 때 최적으로 서비스할 수 있도록 배열된다.
대기 중에 있는 요청들을 1차적으로 받아서 진행시키고, 진행을 시작하고 들어온 요청은 받아들이지 않는다. 진행이 모두 끝나고 난 후에 2차적으로 서비스한다
Eschenbach(에센바흐)
부하가 매우 큰 항공 예약 시스템을 위해 개발되었으며 탐색 시간뿐만 아니라 회전 지연 시간의 최적화를 위해 개발된 기법
헤드는 C-SCAN처럼 움직이며 예외적으로 모든 실런더는 그 실린더에 요청이 있거나 없어도 전체 트랙이 한 바퀴 회전할 동안의 서비스를 받는다. 탐색 시간, 회전 지연 시간을 모두 고려해서 개발된 스케줄링이나 디스크 드라이브의 물리적인 성질 때문에 오히려 응답시간이 늘어나서 거의 사용하지 않는 기법
Sector Queuing, SLTF(Shortest Latency Time First)
탐색 시간과 회전 지연 시간을 줄이는 스케줄링.
회전 지연 시간을 최적화하기 위한 스케줄링 기법은 탐색 시간이 필요하지 않는 고정 헤드 디스크 시스템이나 트랙마다 헤드를 갖는 드럼 등의 보조 기억 장치에서 사용
댓글남기기