디스크 예약 알고리즘에는 다음이 포함됩니다. 1. 프로세스가 디스크에 대한 액세스를 요청하는 순서에 따라 예약하는 선착순 알고리즘 2. 가장 가까운 예약 처리를 위한 트랙을 선택하는 최단 검색 시간 우선 순위 알고리즘 3. 탐색 알고리즘은 현재 헤드가 위치한 트랙에 가장 가까운 요청을 다음 서비스로 선택한다. 4. 스캐닝 알고리즘을 기반으로 지정된 순환 스캐닝 알고리즘 디스크 헤드는 서비스를 제공하기 위해 한 방향으로 이동하며, 돌아올 때는 요청을 처리하지 않고 바로 시작 끝으로 이동합니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, Dell G3 컴퓨터.
디스크 스케줄링 다중 프로그래밍 컴퓨터 시스템에서 각 프로세스는 디스크의 읽기/쓰기 작업에 대해 지속적으로 서로 다른 요청을 보낼 수 있습니다. 때때로 이러한 프로세스는 디스크가 응답할 수 있는 것보다 더 빠르게 요청을 보낼 수 있으므로 각 디스크 장치에 대해 대기 대기열을 생성해야 합니다.
일반적으로 사용되는 디스크 스케줄링 알고리즘
선착순 알고리즘
FCFS 알고리즘은 프로세스가 디스크 액세스를 요청하는 순서에 따라 스케줄링하는 가장 간단한 스케줄링 알고리즘입니다. 이 알고리즘의 장점은 공정성입니다. 소수의 프로세스만 액세스가 필요하고 대부분의 요청이 클러스터된 파일 섹터에 액세스하는 경우 좋은 성능이 예상되지만 디스크 사용을 위해 경쟁하는 프로세스가 많은 경우 이 알고리즘의 성능은 종종 무작위 스케줄링에 가깝습니다. 따라서 실제 디스크 스케줄링에서는 좀 더 복잡한 스케줄링 알고리즘이 고려됩니다.
알고리즘 아이디어: 액세스 요청이 도착하는 순서대로 처리됩니다.
장점: 간단하고 공정합니다.
단점: 비효율성이 높지 않습니다. 두 개의 인접한 요청으로 인해 실린더가 가장 안쪽에서 가장 바깥쪽으로 탐색되어 자기 헤드가 반복적으로 움직여 서비스 시간이 늘어나고 기계에 해를 끼칠 수 있습니다.
가장 짧은 탐색 시간 우선 알고리즘
SSTF 알고리즘은 매번 탐색 시간이 가장 짧도록 현재 헤드가 위치한 트랙과 가장 가까운 트랙을 스케줄링 처리용으로 선택합니다. 물론, 항상 최소 검색 시간을 선택한다고 해서 최소 평균 검색 시간이 보장되는 것은 아니지만 FCFS 알고리즘보다 더 좋은 성능을 제공할 수 있습니다. 이 알고리즘은 "기아" 현상을 생성합니다.
알고리즘 아이디어: 주로 탐색 우선순위를 고려하여 서비스를 위해 현재 헤드에 가장 가까운 액세스 요청의 우선순위를 지정합니다.
장점: 디스크 평균 서비스 시간이 향상되었습니다.
단점: 일부 액세스 요청이 오랫동안 대기하고 처리되지 않게 만듭니다.
스캔 알고리즘(엘리베이터 알고리즘이라고도 함)
SCAN 알고리즘은 자기 헤드의 현재 이동 방향에서 현재 헤드가 위치한 트랙에 가장 가까운 요청을 다음 서비스 대상으로 선택합니다. 머리의 움직임 패턴이 엘리베이터의 움직임 패턴과 유사하여 엘리베이터 스케줄링 알고리즘이라고도 불린다. SCAN 알고리즘은 최근 스캔된 영역에 대해 공평하지 않으므로 액세스 지역성 측면에서 FCFS 알고리즘 및 SSTF 알고리즘만큼 좋지 않습니다.
알고리즘 아이디어: 장치에 액세스 요청이 없으면 자기 헤드가 움직이지 않고 액세스 요청이 있을 때 자기 헤드가 한 방향으로 움직이며 이동 중에 [2] 발생한 액세스 요청을 처리합니다. 그런 다음 액세스 요청의 방향을 결정합니다. 여전히 액세스 요청이 있는지 여부를 확인하고, 그렇지 않은 경우 이동 방향을 변경하고 전달된 액세스 요청을 처리합니다. 아래 그림과 같이:
스캐닝 알고리즘(엘리베이터 알고리즘)의 머리 이동 궤적
장점: 거리와 방향을 모두 고려하여 최단 탐색 우선의 단점을 극복합니다.
순환 스캐닝 알고리즘
스캐닝 알고리즘을 기반으로 자기 헤드가 한 방향으로 이동하여 서비스를 제공하도록 규정되어 있으며 돌아올 때 어떠한 요청도 처리하지 않고 빠르게 시작 끝으로 직접 이동합니다. SCAN 알고리즘은 가장 안쪽 또는 가장 바깥쪽 트랙에 가까운 액세스 요청을 처리하는 것을 선호하므로 이러한 문제를 피하기 위해 향상된 C-SCAN 알고리즘이 사용됩니다.
SCAN 알고리즘과 C-SCAN 알고리즘을 사용할 때 자기 헤드는 항상 디스크의 한쪽 끝에서 다른 쪽 끝까지 엄격하게 따라갑니다. 분명히 실제 사용에서는 개선될 수 있습니다. 즉, 자기 헤드 움직임은 다음과 같습니다. 가장 먼 끝에 도달합니다. 디스크 끝점에 도달하지 않고 반환됩니다. 이러한 형태의 SCAN 알고리즘과 C-SCAN 알고리즘을 LOOK 및 C-LOOK 스케줄링이라고 합니다. 특정 방향으로 이동하기 전에 요청이 있는지 확인하기 때문이다. 별도로 지정하지 않는 한 SCAN 알고리즘과 C-SCAN 알고리즘은 기본적으로 LOOK 및 C-LOOK으로 예약될 수도 있습니다.
보충: 다양한 알고리즘 비교
장점 |
단점 |
|
---|---|---|
FCFS 알고리즘 |
공정하고 단순함 |
평균 탐색 거리가 크므로 디스크 I/O가 적은 상황에서만 사용해야 합니다. |
SSTF 알고리즘 |
성능은 "선착순"보다 낫습니다 |
평균 검색을 보장할 수 없습니다. 가장 짧은 시간에 "기아" 현상이 발생할 수 있습니다 |
SCAN 알고리즘 |
더 나은 검색 성능을 제공하면 "기아" 현상을 피할 수 있습니다 |
는 멀리 있는 요청에 액세스하는 데 도움이 되지 않습니다. end of the head |
C-SCAN 알고리즘
|
은 양쪽 끝에서 추적 요청의 불공평성을 제거합니다 |
-- |
자세한 내용은 FAQ를 참조하세요. 열!
위 내용은 디스크 스케줄링 알고리즘은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!