Алгоритм SCAN и CSCAN
Мне трудно разобраться в работе алгоритмов планирования дисков SCAN и CSCAN. Я понял FCFS, ближайший цилиндр Next, но услышал, что SCAN напоминает механизм лифта, и запутался. Моя книга говорит, что для входящего заказа:[10 22 20 2 40 6 38] (в то время как диск в настоящее время в 20), SCAN, перемещающийся в начале, служит [(20) 20 22 38 40 10 6 2]; для этого требуются ходы [0 2 16 2 30 4 4] цилиндров, всего 58 цилиндров. Как появился шаблон [(20) 20 22 38 40 10 6 2]?
1 ответ
Давайте узнаем, что говорит алгоритм планирования диска SCAN(Elevator):-
Он сканирует вниз до ближайшего конца, а затем, когда он достигает дна, он сканирует запросы, которые не сбрасываются. Если запрос приходит после того, как он был отсканирован, он не будет обслуживаться до тех пор, пока процесс не вернется назад или не вернется обратно.
Итак, в вашем случае текущая позиция диска равна 20. Итак, в соответствии с алгоритмом SCAN, он будет сканировать в направлении ближайшего конца, и сразу после нажатия на дно он сканирует, обслуживая запросы обратно.
Заказ:
| |
| * current position | * move back up to upside
|---> nearest disk is this one |
| so it'll move down and so on. |
| as it hit the bottom _______
____
Fig :- Demonstration of SCAN algorithm
Итак, согласно приведенным данным, порядок будет [(20) 20 22 38 40 10 6 2];
РЕДАКТИРОВАТЬ:-
Единственная разница между SCAN и CSCAN заключается в том, что в CSCAN,
он начинает сканирование в направлении ближайшего конца и работает до самого конца системы. Как только он достигает дна или вершины, он переходит на другой конец и движется в том же направлении, в отличие от СКАНЕРА, который перемещается обратно вверх, используя тот же путь.
Согласно CSCAN, направление движения будет таким же до самого дна, и тогда оно изменит путь.
Итак, согласно приведенным данным, порядок будет [(20) 20 22 38 40 2 6 10];
Обратите внимание на изменение в последних трех позициях диска.
Надеюсь понятно. Не стесняйтесь задавать оставшиеся сомнения.