디스크 스케줄링 200614121 2-C 박상수
자기 디스크 자기 디스크 보조기억매체의 일종으로 원판형의 알류미늄에 자성재료를 발라서 기억을 저장하는 장치로서 자기 디스크의 표면에 정보를 기록하거나 기록되어 있는 정보를 읽을 수 있는 장치 일반적으로 자기디스크는 기억용량이 크며 디스크의 어느 부분에 들어 있는 데이터도 즉시 꺼낼 수 있는 랜덤액세스(random access) 방식이므로 대형정보처리용 시스템의 보조기억장치로 적합하다. 플로피 디스켓, 하드 디스크가 그 일종이다.
디스크 구조 <자기 디스크의 3대 구성요소> 디스크(disk) 헤드(head) 엑세스 암(access arm) <자기 디스크의 구조> Track, Sector (트랙, 섹터) 플로피 디스크와 하드디스크 기록 단위의 하나로서 자기 매체에 늘어선 동심원으로 구획된 하나하나를 트랙이라 부르고 그 트랙들은 다시 섹터로 나뉩니다. Cyinder (실린더) 다수개의 플래터의 트랙을 수직적으로 관통하는 3차원적인 스택을 말한다. 하드용량=(헤드수) * (실린더수) * (섹터수) * (섹터당 기록용량) 보통 섹터당 512KB 동심원을 동일한 각도록 나누어 데이터를 기록할 경우 내부 섹터와 외부 섹터의 실제 기록 밀도는 상당한 차이가 있다.
디스크 액세스 타임 DISK ACCESS TIME = starting position + seek time + rotational latency + tranfer time 크게 4가지로 볼수가 있다. (Starting Position)스타트할 포인트로 시작지점이다. (Seek Time)탐색시간으로 해당 실린더로 고정축을 이동하여야 한다. (Rotational Latency)잠복시간으로 데이터 레코드가 저장된 부분이 헤드 바로 아래에 오도록 디스크를 회전시킨다. (Trancfer Time)전송시간으로 이들 각 동작들은 기계적인 움직임을 포함하기 때문에 특정 레코드를 액세스하는데 걸리는 시간은 0.01초 내지 0.1초 정도이다.
RAID 를 읽는 장치 또는 읽는 방식이다. 즉, 여러 개의 하드디스크를 마치 정의 데이터를 분할해서 복수의 자기 디스크 장치에 대해 병렬로 데이터 를 읽는 장치 또는 읽는 방식이다. 즉, 여러 개의 하드디스크를 마치 1개의 하드디스크처럼 다룰 수 있는 기술이다. 다시 말하면 여러 개 의 하드디스크를 1개의 디스크처럼 사용함으로써 속도 향상을 가져 온다. RAID의 목적 데이터 전송 속도 향상, 대용량 디스크 확장 가능, I/O 요구 처리율 향상, 결함 허용도 향상 RAID의 Level 복수의 디스크를 병렬로 처리하여 컴퓨터와의 입출력을 제공하기 위한 디스크 관리 방법. 방법에 따라 RAID-0부터 RAID-5까지 있다. ⇒ PC에서 흔히 보이는 것이 RAID Level 0,1,0+1 이다. 원리 원리는 2개의 하드를 하나의 디스크로 다루면 첫 번째 하드가 데이터를 쓰고 있는 동안 두 번째 하드는 그 다음 번 데이터를 쓰고 ... 하는 식으 로 쉬고 있는 하드에 데이터를 읽고 쓰기 때문에 이론적으로 2대를 1대 처럼 쓰면 속도는 2배로 빨라진다.
RAID 0 (스트라이핑) 최소 2개의 하드디스크가 필요. RAID 레벨 0에서는 데이터를 하드디스크의 수많큼 같은 크기로 나눠 각각 디스크에 기록하고 읽는다. 속도가 빠르고, 비용이 적개 드는 것이 장점이지만 사본 없이 데이터를 나눠 저장하는 탓에 하드디스크 하나가 망가지면 다른 하드디스크에 있는 데이터까지 못 쓰게 된다.
RAID 1 Mirroing (미러링) 두 개 이상의 하드디스크에 똑같은 데이터를 기록해 하나가 고장 나도 이상이 없는 하드디스크의 데이터가 살아 있어 중요한 데이터를 담을 때 유리하다. 데이터를 나누어 기록하지 않아 속도는 하드디스크 하나를 쓸 때와 비슷하다. 성능보다 데이터 안전성을 높여야하는 시스템에 알맞다.
RAID 0+1 여러 개의 드라이브를 스트라이핑으로 묶어 데이터를 나눠 저장하고, 데이터로부터 계산해낸 중복 정보를 나누어 저장한다. 하드디스크 하나가 망가져도 중복 정보를 이용해 데이터를 복구한다. 최소 3개의 하드디스크가 필요하다.
RAID 5 스트리이핑의 속도와 미러의 신뢰성을 모두 지녔다. 드라이브가 4개라면 두 개씩 스트리이핑으로 묶은 다음 이둘을 미러로 묶는다. 또는 미러로 묶은 여러 쌍을 스트라이핑으로 배열할 수도 있다. 속도와 안전성에서 높은 평가를 받지만 용량의 낭비가 심하다는 단점이 있다.
디스크 스케줄링 큐(Queue)에 대기중인 요청들에 대해 서비스 순서를 어떻게 결정하는 지에 따라 디스크 시스템의 성능이 달라지므로 더 좋은 성능을 얻기위한 것이다. 디스크 스케줄링의 평가 기준 단위 시간당 처리량(Throughput) 평균 응답 시간(Mean Response Time) 응답 시간의 예측성(Predictability) 디스크 스케줄링에서는 데이터 액세스 시간 중에 데이터 전송시간은 제외 되므로 탐색시간, 회전 대기시간의 최적화 기법이 필요하다.
FCFS FCFS(First Come First Served) 가장 간단한 스케줄링 디스크 입출력 요청 대기 큐에 들어온 순서대로 서비스를 받음 장점 > 프로그래밍이 쉬움 > 대기 큐에 들어온 순서대로 서비스하기 때문에 더 높은 우선순위의 요청 이 입력되어도 순서가 바뀌지 않아 공평성이 보장 단점 > 헤드 이동거리가 상당히 길어질 수 있음 > 디스크 오버헤드(서비스 요구 횟수)가 커지면 응답시간이 길어짐
SSTF SSTF(Shortest Seek Time First) 탐색 시간이 가장 짧은 트랙으로 헤드를 이동시키는 방법 장점 > FCFS보다 처리량이 많고, 평균 탐색시간이 짧음 단점 > 현재 서비스한 트랙에서 가장 가까운 트랙에 대한 서비스 요청이 계속 발생하는 경우, 먼 거리의 트랙에 대한 서비스는 무한정 기다려야 하는 기아 상태가 발생할 수 있음
SCAN SSTF가 갖는 탐색시간의 편차를 해소하기 위한 방법 디스크 헤드가 맨 바깥쪽 트랙에서 가장 안쪽 트랙 쪽으로 이동하면서 해당되는 트랙에 대한 요구를 차례대로 서비스해 주는 방식 디스크 오버헤드가 적어야 가장 좋은 효율을 가짐 대부분의 디스크 스케줄링에서 기본 전략으로 이용 밀도가 높은 쪽의 요청은 상당히 오랜 시간 대기하게 됨
C-SCAN C-SAN(Circular SCAN) 헤드가 항상 바깥쪽 실린더에서 안쪽 실린더로 이동하면서 가장 짧은 탐색 시간을 갖는 요청을 서비스하는 방법 진행도중 도착한 요청은 다음 수행시 서비스 응답시간의 편차가 매우 적음 회전 시간의 최적화가 가능하며 부하(Overhead)가 많이 걸리는 경우 효과적
C-LOOK Scan과 C-Scan의 이런 형태를 LOOK. C-LOOK이라 한다. 검사한다는 뜻이다.)