Планирование ввода / вывода ( I / O ) - это метод, который компьютерные операционные системы используют для решения, в каком порядке операции блочного ввода / вывода будут отправлены на тома хранения . Планирование ввода-вывода иногда называют планированием диска.
Планирование ввода / вывода
Планирование ввода-вывода обычно должно работать с жесткими дисками, которые имеют длительное время доступа для запросов, размещенных далеко от текущей позиции головки диска (эта операция называется поиском). Чтобы свести к минимуму влияние этого на производительность системы, большинство планировщиков ввода-вывода реализуют вариант алгоритма лифта, который переупорядочивает входящие случайно упорядоченные запросы так, чтобы к связанным данным можно было обращаться с минимальным движением руки / головы.
Планировщики ввода-вывода могут иметь множество целей в зависимости от целей; общие цели включают следующие
- Чтобы свести к минимуму время впустую жесткий диск ищет
- Для определения приоритетов запросов ввода-вывода определенных процессов
- Чтобы дать долю пропускной способности диска каждому запущенному процессу
- Чтобы гарантировать, что определенные запросы будут отправлены до определенного срока
Планирование дисциплин
Общие дисциплины планирования включают следующее:
- Произвольное планирование (RSS)
- Первый пришел - первый ушел ( FIFO ), также известный как первый пришел - первый обслужен (FCFS)
- Последний вошел, первый ушел ( LIFO )
- Сначала самый короткий поиск , также известный как самый короткий поиск / время первого поиска (SSTF)
- Алгоритм лифта , также известный как SCAN (включая его варианты, C-SCAN, LOOK и C-LOOK)
- N-Step-SCAN Сканирование N записей за раз
- FSCAN , N-Step-SCAN, где N равно размеру очереди в начале цикла SCAN
- Полностью справедливая организация очередей (CFQ) в Linux
- Предварительное планирование
- Планировщик Noop
- Планировщик крайнего срока
- Планировщик mClock [2]
- Планировщик бюджетной справедливой очереди (BFQ). [3] [4]
- Кибер [5] [6]
- НЕТ (используется для накопителей NVM Express)
- mq-deadline (используется для SSD-накопителей SATA)
- cfq bfq и bfq-mq (используются для жестких дисков)
Смотрите также
Рекомендации
- ^ Вернер Фишер; Георг Шёнбергер (01.06.2015). «Схема стека хранилища Linux» . Thomas-Krenn.AG . Проверено 8 июня 2015 . CS1 maint: обескураженный параметр ( ссылка )
- ^ «mClock: обработка изменчивости пропускной способности для планирования ввода-вывода гипервизора» . VMware Inc . Проверено 12 июля 2015 . CS1 maint: обескураженный параметр ( ссылка )
- ^ «Планировщик ввода-вывода с справедливой организацией очереди бюджета» .
- ^ «Планировщик ввода-вывода BFQ в очереди для Linux 4.12 - Phoronix» . www.phoronix.com .
- ^ "blk-mq: Планировщик многократного ввода-вывода Kyber [LWN.net]" . lwn.net . 14 апреля 2017 . Проверено 19 июля 2019 .
- ^ "Планировщик ввода-вывода BFQ появляется вместе с новым планировщиком Kyber - Phoronix" . www.phoronix.com . 1 мая 2017.
дальнейшее чтение
- Планировщики ввода-вывода Linux , из Ubuntu Wiki
- Операционные системы: Три простых пьесы , Ремзи Х. Арпачи-Дюссо и Андреа К. Арпачи-Дюссо. Книги Arpaci-Dusseau, 2014. Соответствующая глава: Жесткие диски
- Любовь, Р. (2005). Разработка ядра Linux , Novell Press. ISBN 0-672-32720-1
- Операционные системы: внутреннее устройство и принципы проектирования, седьмое издание, Уильям Столлингс.
Внешние ссылки
- СМИ, связанные с планированием ввода-вывода на Викискладе?