현재 일반적으로 사용되는 디스크 예약 알고리즘은 다음과 같습니다. 1. 선착순 알고리즘(FCFS) 2. 최단 탐색 시간 우선 알고리즘(SSTF) 3. 스캔 알고리즘(SCAN)
이 튜토리얼의 운영 환경: Windows 7 시스템, Dell G3 컴퓨터.
디스크 스케줄링 다중 프로그래밍 컴퓨터 시스템에서 각 프로세스는 디스크의 읽기/쓰기 작업에 대해 지속적으로 서로 다른 요청을 보낼 수 있습니다. 때때로 이러한 프로세스는 디스크가 응답할 수 있는 것보다 더 빠르게 요청을 보내기 때문에 각 디스크 장치에 대해 대기 대기열을 설정해야 합니다. 일반적으로 사용되는 디스크 예약 알고리즘에는 4가지가 있습니다:
선착순 알고리즘(FCFS),
SSTF(Shortest Seek Time First) 알고리즘,
Scan 알고리즘(SCAN),
Cyclic Scan 알고리즘(CSCAN)
예: 디스크에 0~199번 번호의 총 200개 실린더가 있다고 가정합니다. 요청자가 143번 실린더에 액세스하고 있으며, 현재 125번 실린더 액세스 요청을 처리하고 있으며 동시에 서비스를 기다리는 요청자가 여러 명 있습니다. 그들이 매번 액세스하려는 실린더 번호는 86, 147, 91입니다. , 177, 94, 150, 102, 175, 130
1. 선착순 서비스 알고리즘(FCFS) First Come First Service
이것은 비교적 간단한 디스크 스케줄링 알고리즘입니다. 프로세스가 디스크에 대한 액세스를 요청하는 순서에 따라 예약됩니다. 이 알고리즘의 장점은 공정하고 단순하며, 각 프로세스의 요청을 차례로 처리할 수 있고, 특정 프로세스의 요청을 오랫동안 만족하지 못하는 상황이 발생하지 않는다는 것입니다. 이 알고리즘은 검색을 최적화하지 않기 때문에 디스크 액세스 요청이 많을 때 이 알고리즘은 장치 서비스의 처리량을 감소시켜 평균 검색 시간이 길어지지만 서비스를 받는 각 프로세스의 응답 시간은 변화는 더 작습니다.
선착순(125) 86.147.91.177.94.150.102.175.130
2. SSTF(Shortest Seek Time First)
이 알고리즘은 The Shortest Seek Time First
이 알고리즘은 The Shortest Seek Time First
현재 헤드가 위치한 트랙이 가장 가깝기 때문에 각 탐색 시간이 가장 짧습니다. 이 알고리즘은 더 나은 처리량을 얻을 수 있지만 가장 짧은 평균 탐색 시간을 보장할 수는 없습니다. 단점은 사용자의 서비스 요청에 대한 응답 기회가 균등하지 않아 응답 시간에 큰 변화가 있다는 점입니다. 서비스 요청이 많은 경우 내부 및 외부 에지 트랙에 대한 요청이 무기한 지연되고 일부 요청의 응답 시간을 예측할 수 없습니다.
최단 탐색 시간 우선(125) 130.147.150.175.177.102.94.91.86
3. 스캐닝 알고리즘(SCAN) 엘리베이터 스케줄링
스캐닝 알고리즘은 접근할 트랙과 현재 트랙 사이의 거리만 고려하는 것이 아닙니다. 트랙뿐만 아니라 자기 헤드의 현재 이동 방향에도 우선순위를 부여합니다. 예를 들어 자기 헤드가 안쪽에서 바깥쪽으로 움직일 때 스캐닝 알고리즘에 의해 선택된 다음 액세스 개체는 현재 트랙 외부에 있고 가장 가까운 액세스하려는 트랙이어야 합니다. 이러한 방식으로 액세스는 내부에서 외부로 수행되며 더 이상 외부 트랙에 액세스할 필요가 없을 때까지 자기 암이 반전되어 외부에서 내부로 이동됩니다. 이때마다 스케줄링을 위한 프로세스도 선택됩니다. 즉, 액세스하려는 트랙이 현재 트랙 내에 있으므로 기아 발생을 방지합니다. 이 알고리즘의 머리 움직임 법칙은 엘리베이터의 작동과 매우 유사하므로 엘리베이터 스케줄링 알고리즘이라고도 합니다. 이 알고리즘은 기본적으로 서비스가 중간 트랙에 집중되어 응답 시간이 크게 변하는 최단 탐색 시간 우선 알고리즘의 단점을 극복합니다. 즉, 처리량이 더 크고 평균 응답이 더 작다는 장점이 있습니다. 그러나 스윙 스캐닝 방식으로 인해 양쪽 트랙은 여전히 중간 트랙보다 덜 자주 액세스됩니다.
엘리베이터 배차(125) 102.94.91.86.130.147.150.175.177
4. 순환 스캐닝 알고리즘(CSCAN)
순환 스캐닝 알고리즘은 스캐닝 알고리즘을 개선한 것입니다. 트랙에 대한 액세스 요청이 균등하게 분산되면 디스크의 한쪽 끝에 도달하여 반대 방향으로 이동할 때 헤드 뒤로 떨어지는 액세스 요청이 상대적으로 적습니다. 이는 이러한 트랙이 방금 처리되었으며 디스크 반대편의 요청 밀도가 상당히 높고 이러한 액세스 요청이 오랜 시간 동안 대기하기 때문입니다. 한 방향으로 움직입니다. 예를 들어, 안쪽에서 바깥쪽으로만 이동하는 경우 자기 헤드가 가장 바깥쪽의 액세스된 트랙으로 이동하면 자기 헤드는 즉시 액세스할 가장 안쪽의 트랙으로 돌아갑니다. 즉, 가장 작은 트랙 번호 다음에 가장 큰 트랙 번호가 옵니다. 스캔 주기를 형성합니다.싸이클스캔 (125) 130.147.150.175.177.86.91.94.102
더 많은 컴퓨터 관련 지식을 알고 싶다면 FAQ 칼럼을 방문해주세요!위 내용은 현재 일반적으로 사용되는 디스크 스케줄링 알고리즘은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!