Алгоритм CFQ использует упорядоченный набор очередей на основе приоритета ввода-вывода процессов, которые сделали запросы. Это означает, что есть очередь для процесса приоритета, скажем, 1, другая для приоритета 2 и т.д. Затем запросы помещаются в очередь отправки для обработки.
Я понимаю, что алгоритм берет первый запрос из каждой очереди и помещает их в очередь отправки для обработки, но я не понимаю, как он обрабатывает один запрос, поскольку они могут иметь несколько блоков (необязательно смежных).
Итак, вопрос в том, как алгоритм обрабатывает один запрос? или это делает что-то вроде того, чтобы избежать ненужных движений головы?
Например, допустим, у нас есть запрос, который содержит следующий список блоков для чтения:
[1,23,5,76,3]
Как диск справится с этим?
по FCFS:
[1,23,5,76,3]
или путем сортировки блоков:
[1,3,4,23,76]