디스크
- 디스크 드라이버: 구동 모터, 액세스 암 이동장치, 입출력 헤드 부분의 기계적인 부분을 담당
- 프로세서: 컴퓨터의 논리적인 상호작용, 즉 데이터의 위치(디스크 주소)와 버퍼, 판독, 기록 등을 관리
- 디스크 제어기: 디스크 드라이버의 인터페이스 역할
- 프로세서에서 명령을 받아 디스크 드라이버 동작
- 디스크 드라이버는 탐색, 기록, 판독 등 명령 수행
- 디스크의 정보: 드라이버 번호, 표면 번호, 트랙 번호(디스크 주소)로 참조
트랙 | 원형 평판 표면에 데이터를 저장할 수 있는 동심원 |
자기장의 간섭/ 헤드를 정렬을 위해 공간을 두어 트랙 구분 | |
실린더 | 동일한 동심원으로 구성된 모든 트랙 |
동일한 위치에 있는 모든 트랙의 집합을 의미 | |
섹터 | 트랙을 부채꼴 모양으로 나눈 조각을 의미 |
트랙 내의 정보는 블록을 구성 | |
블록이 하드웨어적으로 크기가 고정되었을 때가 바로 섹터 | |
데이터 기록이나 전송의 기본 단위 | |
512(1,024)바이트의 데이터 영역으로 구성 | |
고유 번호가 있어 디스크에 저장된 데이터의 위치 식별 가능 |
디스크 액세스 시간
구분 | 특징 |
탐색 시간 | 헤드가 지정된 트랙에 위치해도 원하는 섹터가 입출력 헤드 아래로 회전할 때까지 기다리는 시간 |
회전 지연 시간 | 시스템이 헤드를 해당 트랙이나 실린더에 위치시켜 디스크의 원하는 섹터에 액세스에 걸리는 시간 |
전송 시간 | 디스크와 메인 메모리 간의 섹터를 주고받는 데 걸리는 시간 |
- 이동 디스크: 탐색 시간 + 회전 지연시간 + 전송시간
- 고정 헤드 디스크: 회전 지연시간 + 전송시간
디스크 주소
- 섹터 번호 k의 디스크 주소(b)
- b = k + s × (j + i × t)
- s = 트랙 당 섹터 수
- t = 실린더당 트랙 수
- i = 실린더 번호
- j = 표면 번호
디스크 스케줄링
- 보조기억장치의 디스크에 저장된 데이터를 주기억장치에 적재하기 위해서 읽기에 소요되는 시간에 대한 최소화를 목적으로 함
- 디스크 검색으로 발생하는 낭비시간 최소화
- 정해진 기한까지 요청 처리
디스크 드라이버 요청 큐의 포함 정보
- 입력/출력 동작 정보
- 디스크 주소(구동기·실린더·표면·블록)
- 메모리 주소 전송할 정보의 총량(바이트나 워드의 수)
디스크 스케줄링의 평가 기준
구분 | 특징 |
처리량 | 시간당 처리한 서비스 요청 수 |
탐색 시간 | 디스크 헤드 이동 시간 |
평균 반응시간 | 요청 후 서비스할 때까지 대기시간 |
반응(응답)시간 변화 | 반응시간 예측 정도 |
적절한 시간 안에 서비스하여 요청이 무기한 연기되지 않도록 방지 |
디스크 스케줄링 운영체제 역할
- 디스크 액세스 요청 스케줄하여 디스크 처리
- 평균 시간 향상시키는데 처리량을 최대화
- 평균 반응시간을 최소화
- 탐색 시간 최소화
- 시스템 성능은 처리량과 평균 반응시간을 최적화
- 시스템 자원을 효과적으로 사용하려면 스케줄링 필요
디스크 스케줄링의 종류
- 탐색 시간 최적화
- 선입선처리(FCFS) 스케줄링
- 최소 탐색 시간 우선(SSTF) 스케줄링
- 스캔 스케줄링
- 순환 스캔(C-SCAN) 스케줄링
- 룩(LOOK) 스케줄링
- 회전 지연시간 최적화
- 최소 지연시간 우선(SLTF) 스케줄링
- 최소 위치 결정 시간 우선(SPTF) 스케줄링
선입선처리 스케줄링
- First Come First Served
- 요청이 도착한 순서에 따라 처리 스케줄링 알고리즘
- 프로그래밍 쉽고, 어떤 요청도 무기한 연기하지 않고, 본질적으로 공평성 유지
- 디스크 요청이 흩어질 때 실행 시간 오버헤드 적음
- 단점: 요청에 대한 정렬이 없어 탐색 시간이 증가하면서 처리량이 감소
최소 탐색 시간 우선 스케줄링
- Shortest Seek Time First
- 디스크 요청을 처리하려고 헤드가 먼 곳까지 이동하기 전에 현재 헤드 위치에 가까운 모든 요구를 먼저 처리하는 방법
- 선입선처리와 비교하면 헤드의 이동 거리가 1/3 정도로 디스크 서비스 시간을 줄임
- 최소작업을 우선 수행하므로 디스크 요구의 기아 상태 발생 가능
- 공정성을 보장할 수 없고, 서비스를 무기한 연기할 수 있음
- 응답시간의 높은 분산은 대화형 시스템에서는 단점
스캔 스케줄링
- 요청 큐의 동적 특성을 반영하여 기아 상태 해결
- 입출력 헤드가 디스크의 한쪽 끝에서 다른 끝으로 이동하며, 한쪽 끝에 도달했을 때는 역방향으로 이동 후 요청한 트랙을 처리
순환 스캔 스케줄링
- Circular-SCAN
- 스캔 스케줄링을 변형하여 대기시간을 좀 더 균등하게 처리하는 방법
- 스캔 스케줄링처럼 헤드는 한쪽 방향으로 이동하면서 요청을 처리하지만, 한쪽 끝에 다다르면 역방향으로 헤드를 이동하는 것이 아니라 다시 처음부터 요청 처리
- 처음과 마지막 트랙을 서로 인접시킨 원형처럼 디스크 처리량 향상
- 바깥쪽 트랙과 안쪽 트랙을 차별하지 않음
- 반응시간의 변화를 줄임
- 동일한 실린더(트랙) 요청이 연속적으로 발생하면 처리가 무기한 연기
룩 스케줄링
- 룩: 진행 방향으로 움직이기 전에 먼저 요청이 있는지 검사한다는 의미
- 스캔 스케줄링이나 순환 스캔 스케줄링은 헤드를 디스크의 끝에서 끝으로 이동하는 원리
- 보통 헤드는 요청에 따라 각 방향으로 이동하지만, 현재 방향에 더는 요청이 없을 때 이동 방향을 바꿔 서비스를 처리
- 스캔 스케줄링과 순환 스캔 스케줄링의 이런 형태를 룩 또는 순환룩(엘리베이터룩)이라고 함
최소 지연시간 우선 스케줄링
- Shortest Latency Time First
- 모든 요청 중 회전 지연시간이 가장 짧은 요청을 먼저 처리
- 디스크 헤드가 특정 실린더에 도달했을 때 해당 실린더의 트랙 요청들이 대기하고 있다면, 헤드는 더 이상 움직이지 않고 도착 순서와 관계없이 모든 요청 우선 처리
- 트랙을 일정한 수의 블록으로 나눈 섹터를 토대로 요청들을 섹터 위치에 따라 큐에 넣은 후 가장 가까운 섹터 요청 먼저 처리
- 고정 헤드에서는 탐색을 하지 않으므로 탐색 시간이 없음
- 회전 지연시간만 지연시간이 되므로 고정 헤드 사용 시 효과적인 알고리즘
- 섹터 큐잉(sector queuing) 알고리즘으로 표현하기도 함
- 선입선처리 스케줄링에서 요청이 모든 섹터에 골고루 분포되어 있다면 예상되는 지연은 0.5 회전
- 요청이 대기 큐의 앞부분에 있지 않더라도 헤드가 지나는 섹터 요청을 서비스하여 처리율 향상 가능
- 섹터 큐잉은 고정헤드장치에서도 사용
- 특별한 트랙마다 실린더 내에 처리 요청이 하나 이상일 때는 이동헤드장치에서도 쓸 수 있음
- 헤드가 특정한 실린더에 도착하면 헤드를 더 이상 움직이지 않고 모든 실린더 요청 처리
- 섹터 큐잉은 동일한 실린더 내에서 다중 요청을 정렬하는 데 사용 가능
최소 위치 결정 시간 우선 스케줄링
- Shortest Positioning Time First
- 가장 짧은 위치 결정 시간
- 탐색 시간과 회전 지연시간의 합이 가장 짧은 요청을 다음 서비스 대상으로 선택
- 최소 탐색 시간 우선 스케줄링처럼 처리량이 많고 평균 반응시간 짧음
- 가장 안쪽과 바깥쪽 실린더 요청이 무기한 연기될 가능성 있음
- 에센바흐 방법: 탐색 시간과 회전 지연시간을 최적화하려고 한 것
- 헤드는 순환 스캔 스케줄링처럼 진행하나, 요청과 관계없이 트랙이 한 바퀴 회전할 동안 요청을 처리하도록 재배열하는 알고리즘
디스크 스케줄링 알고리즘의 선택
- 일반적인 선택: 최소 탐색 시간 우선 스케줄링
- 디스크를 많이 사용하는 시스템: 스캔 스케줄링이나 순환 스캔 스케줄링
- 그러나 최적 알고리즘을 결정하는 것은 가능
- 최적 스케줄링에 필요한 계산량 때문에 스캔 스케줄링이나 최소 탐색 시간 우선 스케줄링 이상의 처리 효율을 얻을 수 있을지 평가하기 곤란
- 스케줄링 알고리즘 성능
- 요청의 형태와 요청 수에 좌우됨
- 큐에서 하나 정도만 요청을 한다면 모든 스케줄링 알고리즘들의 효과는 거의 동일, 이럴 경우 선입선처리 스케줄링이 적당함
- 디스크 서비스의 요청은 파일 할당 방법에 많은 영향을 줌
- 연속적으로 할당된 파일을 읽는 프로그램은 디스크의 인접한 범위 내에서 많은 요청이 발생하여 헤드 이동 제한
- 모든 파일은 열어야 사용할 수 있고, 파일을 열려면 디렉터리 구조를 조사해야 하기 때문에 디렉터리를 자주 호출
- 따라서 디렉터리 위치에 따라 이동 거리 다름
- 디렉터리를 디스크의 양 끝에 두는 것보다는 중간 부분에 두는 것이 디스크 헤드 이동 줄일 수 있음
- 디스크는 컴퓨터의 장치 중에서 가장 속도가 느린 장치
- 전반적으로 시스템 성능은 디스크의 속도와 신뢰성에 좌우됨
RAID
- Redundant Array of Inexpensive Disks or Redundant Array of Independent Disks
- 운영체제로 여러 대의 물리적 디스크를 하나의 논리적 디스크로 인식하는 기술
- 초기의 RAID는 프로세서와 디스크의 속도 차이 극복하려고 디스크 여러 대를 이용
- 다수의 드라이버에 있는 데이터를 동시 액세스할 수 있도록 데이터를 분산·저장
- 이러한 RAID 제안은 데이터 중복의 필요성을 효과적으로 해결