мають виконуватися першими. У випадку сортування даних
відношення, коли система зчитує і записує дискові блоки у певній
послідовності, ці алгоритми не є надто корисними. Проте в ситуа-
ціях, коли система виконує одночасно чимало запитів, які зачі-
пають незначні порції даних, засоби побудови динамічних розкла-
дів обслуговування запитів можуть бути досить корисними.
Один із простих та ефективних способів впорядкування запитів
до диска в часі називають алгоритмом ліфта (elevator algorithm).
Цілком правомірно вважати, що блок головок приводу здійснює
переміщення від внутрішнього до зовнішнього циліндра (і навпаки)
так само, як ліфт високого будинку, рухаючись догори і донизу.
Приклад 13. Нехай за допомогою алгоритму ліфта необхідно
впорядкувати звернення до диска «Soaring 747», середні часові
параметри якого, нагадаємо (див. приклад 5) є такими: час пошуку
– 6,46, час обертання – 4,17 і час передачі – 0,25 (усі значення в
мілісекундах). Припустимо, що в деякий (нульовий) момент часу
надійшли 3 запити, які передбачають звернення до циліндрів з
номерами 2 000, 6 000 і 14 000, а блок головок розташований
навпроти циліндра 2 000. Окрім того, припустимо, що через
короткий час надійде ще три запити. Параметри всіх шести запитів
наведено на рис. 10 (наприклад, запит, який передбачає
необхідність звертання до циліндра з номером 4 000, надходить
протягом 10-ти мілісекунд).
Для виконання однієї операції з блоком необхідно витратити
такий час: 0,25 мілісекунди на надсилання, 4,17 мілісекунди – на
обертання. Загалом 4,42 мілісекунди, плюс відповідний час пошуку
конкретного циліндра. Час пошуку легко обчислити, користуючись
правилом, викладеним у прикладі 5: 1 + кількість доріжок, поділена
на 1 000. Розглянемо дію алгоритму ліфта. Для обробки запиту
щодо 2 000-го циліндра пошуку робити не потрібно, оскільки блок
головок на місці. Отож у час 4,42 цей запит буде цілковито
виконано. Запит до циліндра 4 000 ще не надійшов, отож головки
переміщаються до циліндра 6 000. Час переходу з 2 000-го до
6 000-го циліндра становить 5 мілісекунд, отож опрацювання
другого запиту розпочнеться в 9,42 і завершиться за 4,42 мс, тобто
в 13,84. На цей час вже активізований запит до 4 000 циліндра,
45