> 일반적인 문제 > 디스크 스케줄링 알고리즘은 무엇입니까?

디스크 스케줄링 알고리즘은 무엇입니까?

青灯夜游
풀어 주다: 2023-01-13 00:35:23
원래의
15243명이 탐색했습니다.

디스크 예약 알고리즘에는 다음이 포함됩니다. 1. 프로세스가 디스크에 대한 액세스를 요청하는 순서에 따라 예약하는 선착순 알고리즘 2. 가장 가까운 예약 처리를 위한 트랙을 선택하는 최단 검색 시간 우선 순위 알고리즘 매번 검색 시간을 최소화하기 위해 현재 헤드가 있는 트랙 3. 스캐닝 알고리즘 4. 루프 스캐닝 알고리즘.

디스크 스케줄링 알고리즘은 무엇입니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, Dell G3 컴퓨터.

디스크 스케줄링 다중 프로그래밍 컴퓨터 시스템에서 각 프로세스는 디스크의 읽기/쓰기 작업에 대해 지속적으로 서로 다른 요청을 보낼 수 있습니다. 때때로 이러한 프로세스는 디스크가 응답할 수 있는 것보다 더 빠르게 요청을 보낼 수 있으므로 각 디스크 장치에 대해 대기 대기열을 생성해야 합니다.

일반적으로 사용되는 네 가지 디스크 예약 알고리즘은 다음과 같습니다.

  • 선착순 알고리즘(FCFS)

  • 최단 탐색 시간 우선 알고리즘(SSTF)

  • 스캔 알고리즘(SCAN)

  • 순환 스캔 알고리즘(CSCAN)

선착순 알고리즘

FCFS 알고리즘은 프로세스가 디스크 액세스를 요청하는 순서에 따라 일정을 예약하는 가장 간단한 예약 알고리즘입니다. 이 알고리즘의 장점은 공정성입니다. 소수의 프로세스만 액세스가 필요하고 대부분의 요청이 클러스터된 파일 섹터에 액세스하는 경우 좋은 성능이 예상되지만 디스크 사용을 위해 경쟁하는 프로세스가 많은 경우 이 알고리즘의 성능은 종종 무작위 스케줄링에 가깝습니다. 따라서 실제 디스크 스케줄링에서는 좀 더 복잡한 스케줄링 알고리즘이 고려됩니다.

1. 알고리즘 아이디어: 도착 순서대로 액세스 요청을 처리합니다.

2. 장점: 간단하고 공정합니다.

3. 단점: 효율성이 높지 않습니다. 두 개의 인접 요청으로 인해 실린더가 가장 안쪽에서 가장 바깥쪽으로 탐색되어 자기 헤드가 반복적으로 움직일 수 있으며, 이는 서비스 시간을 늘리고 기계에 좋지 않습니다.

가장 짧은 탐색 시간 우선 알고리즘

SSTF 알고리즘은 매번 탐색 시간이 가장 짧도록 현재 헤드가 위치한 트랙에 가장 가까운 트랙을 스케줄링 처리용으로 선택합니다. 물론, 항상 최소 검색 시간을 선택한다고 해서 최소 평균 검색 시간이 보장되는 것은 아니지만 FCFS 알고리즘보다 더 좋은 성능을 제공할 수 있습니다. 이 알고리즘은 "기아" 현상을 생성합니다.

1. 알고리즘 아이디어: 주로 탐색 우선순위를 고려하여 현재 헤드에 가장 가까운 액세스 요청의 우선순위를 정합니다.

2. 장점: 평균 디스크 서비스 시간이 향상되었습니다.

3. 단점: 일부 액세스 요청이 오랫동안 대기하고 처리되지 않습니다.

스캔 알고리즘(엘리베이터 알고리즘이라고도 함)

SCAN 알고리즘은 자기 헤드의 현재 이동 방향에서 현재 헤드가 위치한 트랙에 가장 가까운 요청을 다음 서비스 대상으로 선택합니다. 머리의 움직임 패턴이 엘리베이터의 움직임 패턴과 유사하여 엘리베이터 스케줄링 알고리즘이라고도 불린다. SCAN 알고리즘은 최근 스캔된 영역에 대해 공평하지 않으므로 액세스 지역성 측면에서 FCFS 알고리즘 및 SSTF 알고리즘만큼 좋지 않습니다.

1. 알고리즘 아이디어: 장치에 액세스 요청이 없으면 자기 헤드가 움직이지 않고, 자기 헤드가 한 방향으로 움직이고, 이동 중에 [2] 발생한 액세스 요청을 처리합니다. 그런 다음 해당 방향에 여전히 액세스 요청이 있는지 여부를 결정하고, 그렇다면 검색을 계속하고, 그렇지 않으면 이동 방향을 변경하고 전달된 액세스 요청을 처리합니다.

2. 장점: 거리와 방향을 모두 고려하여 최단 탐색 우선의 단점을 극복합니다.

순환 스캐닝 알고리즘

스캐닝 알고리즘을 기반으로 자기 헤드가 한 방향으로 이동하여 서비스를 제공하도록 규정되어 있으며 돌아올 때 어떠한 요청도 처리하지 않고 빠르게 시작 끝으로 직접 이동합니다. SCAN 알고리즘은 가장 안쪽 또는 가장 바깥쪽 트랙에 가까운 액세스 요청을 처리하는 것을 선호하므로 이러한 문제를 피하기 위해 향상된 C-SCAN 알고리즘이 사용됩니다.

SCAN 알고리즘과 C-SCAN 알고리즘을 사용할 때 자기 헤드는 항상 디스크의 한쪽 끝에서 다른 쪽 끝까지 엄격하게 따라갑니다. 분명히 실제 사용에서는 개선될 수 있습니다. 즉, 자기 헤드 움직임은 다음과 같습니다. 가장 먼 끝에 도달합니다. 디스크 끝점에 도달하지 않고 반환됩니다. 이러한 형태의 SCAN 알고리즘과 C-SCAN 알고리즘을 LOOK 및 C-LOOK 스케줄링이라고 합니다. 특정 방향으로 이동하기 전에 요청이 있는지 확인하기 때문이다. 별도로 지정하지 않는 한 SCAN 알고리즘과 C-SCAN 알고리즘은 기본적으로 LOOK 및 C-LOOK으로 예약될 수도 있습니다.

더 많은 관련 지식을 알고 싶다면 FAQ 칼럼을 방문해주세요!

위 내용은 디스크 스케줄링 알고리즘은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿