- •Основы построения операционных систем
- •Введение
- •1. Основные аспекты операционных систем
- •1.1. Программные системы
- •1.2. Ресурсы вычислительных систем
- •1.3. Функции операционных систем
- •1.3.1. Упрощение доступа к компьютеру
- •1.3.2. Повышение эффективности использования ресурсов
- •1.4. Классификация операционных систем
- •2. Управление файлами
- •2.1. Файлы
- •2.1.1. Имя файла
- •2.1.2. Типы файлов
- •2.1.3. Атрибуты файла
- •2.2. Функции системы управления файлами
- •2.3. Способы организации файлов
- •2.3.1. Последовательное размещение
- •2.3.2. Размещение с помощью сцепленных блоков
- •2.3.3. Организация файлов на основе таблиц размещения
- •2.3.4. Размещение с использованием таблицы индексов
- •2.3.5. Индексно-последовательное размещение
- •2.3.6. Библиотечная структура данных
- •2.4. Методы доступа к содержимому файлов
- •2.4.1. Последовательный доступ
- •2.4.2. Прямой доступ
- •2.4.3. Другие методы доступа
- •2.5. Способы организации файловой структуры
- •2.6. Манипулирование файловой структурой
- •3. Управление памятью
- •3.1. Простое непрерывное распределение
- •3.2. Распределение с несколькими непрерывными разделами
- •3.2.1. Мультипрограммирование и разбиение на разделы
- •3.2.2. Разделы с фиксированными границами
- •3.2.3. Разделы с подвижными границами
- •3.2.4. Своппинг
- •3.3. Организация виртуальной памяти
- •3.3.1. Основные концепции виртуальной памяти
- •3.3.2. Страничная организация памяти
- •3.3.3. Сегментная организация памяти
- •3.3.4. Сегментно-страничная организация памяти
- •3.4. Управление виртуальной памятью
- •3.4.1. Алгоритмы выталкивания страниц
- •3.4.2. Подкачка страниц по запросу
- •3.4.3. Подкачка страниц с опережением
- •3.4.4. Освобождение страниц
- •3.4.5. Размер страниц
- •4. Управление процессами
- •4.1. Концепции процесса
- •4.1.1. Понятие последовательного процесса
- •4.1.2. Состояния процесса
- •4.1.3. Блок управления процессом
- •4.1.4. Планирование процессов
- •4.1.5. Обработка прерываний
- •4.2. Синхронизация параллельных процессов
- •4.2.1. Параллельная обработка
- •4.2.2. Взаимное исключение
- •4.2.3. Алгоритм Деккера
- •4.2.4. Аппаратная реализация взаимного исключения
- •4.2.5. Семафоры
- •4.2.6. Мониторы
- •4.2.7. Передача сообщений
- •4.3. Тупиковые ситуации
- •4.3.1. Условия возникновения дедлоков
- •4.3.2. Основные направления исследований по проблеме тупиков
- •4.3.3. Предотвращение тупиков
- •4.3.4. Обход дедлоков
- •4.3.5. Алгоритм банкира
- •4.3.6. Распознавание дедлоков
- •4.3.7. Восстановление после тупиков
- •5. Управление процессором
- •5.1. Диспетчеризация процессов
- •5.2. Приоритеты
- •5.3. Алгоритмы диспетчеризации с одной очередью
- •5.3.1. Алгоритм fcfs (первый пришедший обслуживается первым)
- •5.3.2. Алгоритм spn (кратчайший процесс - следующий)
- •5.3.3. Алгоритм srt (по наименьшему остающемуся времени)
- •5.3.4. Алгоритм hrrn (по наибольшему относительному времени ответа)
- •5.3.5. Алгоритм циклической диспетчеризации rr
- •5.3.6. Сравнение алгоритмов диспетчеризации с одной очередью
- •5.4. Многоуровневые очереди с обратными связями
- •6. Управление устройствами
- •6.1. Общая организация ввода-вывода
- •6.2. Методы управления периферийными устройствами
- •6.3. Действия по вводу-выводу
- •6.3.1. Буферизация : прочитать и записать
- •6.3.2. Блокирование : получить и поместить
- •6.3.3. Подготовка : открыть и закрыть
- •6.4. Управление магнитными дисками
- •6.4.1. Физическая структура магнитного диска
- •6.4.2. Физическая структура формата данных дискеты
- •6.4.3. Логическая структура магнитного диска
- •6.4.4. Планирование работы с магнитными дисками
- •Заключение
- •Список используемых источников
- •Оглавление
5.3.5. Алгоритм циклической диспетчеризации rr
При циклическом, или круговом, алгоритме RR (Round-Robin) (рис.5.2) диспетчеризация процессов осуществляется по принципу FIFS, однако каждый раз процессу предоставляется ограниченное количество времени центрального процессора, называемое временным квантом q . Если процесс не заканчивается до истечения выделенного ему кванта времени (или не был заблокирован), он снимается с процессора, а на процессор устанавливается следующий процесс из числа находящихся в состоянии готовности. Процесс, снятый с процессора, переходит в очередь готовых к выполнению процессов.
Рис. 5.2. Диспетчеризация по циклическому алгоритму RR
Если существует n готовых к исполнению или исполняющихся процессов, то каждый получит 1/ n часть процессорного времени. Такая форма равного обслуживания неявно отдает предпочтение коротким процессам, поскольку они будут заканчиваться быстрее, чем длинные, но без чрезмерного ущемления интересов длинных процессов. Из-за расходов на переключение процессов общее время ожидания может быть больше, чем при FCFS. Однако, если дисперсия времени выполнения процессов велика, то при циклическом механизме общее среднее время ожидания может быть меньше, чем при алгоритме FCFS. Циклический алгоритм диспетчеризации широко используется для работы с разделением времени, когда система должна гарантировать приемлемые времена ответа для всех интерактивных пользователей. Накладные расходы на диспетчеризацию здесь удается снизить за счет эффективных механизмов контекстного переключения и благодаря предоставлению достаточного объема основной памяти, чтобы процессы могли размещаться в ней одновременно.
Существенную роль играет размер кванта времени q . При большом значении q каждому процессу предоставляется практически столько времени, сколько ему требуется для завершения, так что циклическая диспетчеризация по сути вырождается в диспетчеризацию по алгоритму FCFS. Кроме того, с ростом q для любого процесса возрастает время ожидания между последовательными выделениями ему процессора, что является недостатком для интерактивных систем. Если квант времени становится очень маленьким, то накладные расходы на контекстные переключения начинают играть доминирующую роль, причем характеристики системы в конце концов настолько ухудшаются, что с какого-то момента основное время затрачивается на переключение процессора, так что лишь незначительная часть времени остается, если вообще остается, на выполнение вычислений для пользователей. В результате для q необходимо выбрать некоторое приемлемое значение. Величина подобного оптимального кванта времени меняется от системы к системе (в зависимости от нагрузок) и от процесса к процессу.
5.3.6. Сравнение алгоритмов диспетчеризации с одной очередью
Как уже отмечалось ранее, одним из основных критериев сравнения алгоритмов диспетчеризации является уменьшение среднего времени ожидания для всех процессов, выделение центрального процессора для которых осуществляется в соответствии с выбранным алгоритмом.
Для сравнения выше рассмотренных алгоритмов диспетчеризации рассмотрим следующую последовательность процессов, характеризующихся временем поступления в систему и временем выполнения:
Таблица 5.1
-
Номер
процесса
Время
поступления
Время
выполнения
1
2
3
4
5
0
2
4
6
8
3
6
4
5
2
Последовательность выполнения каждого из этих процессов приведена на рис.5.3. Табл. 5.2 содержит как числовые значения, характеризующие выполнение каждого процесса, так и средние значения для всей последовательности процессов.
Очевидно, что минимальное среднее время ожидания достигается при использовании алгоритма SRT. Однако необходимо помнить, что и SRT, и следующий за ним по среднему времени ожидания алгоритм SPN основаны на оценке времени выполнения, необходимого процессу, поэтому они не подходят для диспетчеризации интерактивных процессов.
Среднее время ожидания для циклического алгоритма несколько уменьшается при увеличении кванта времени q .
Рис. 5.3. Сравнение алгоритмов диспетчеризации с одной очередью
Таблица 5.2
Алгоритм диспетче-ризации |
Номер процесса Время поступления Время выполнения |
1 0 3 |
2 2 6 |
3 4 4 |
4 6 5 |
5 8 2 |
Среднее значе-ние |
FCFS |
Время завершения Длительность цикла обработки Время ожидания |
3 3
0 |
9 7
1 |
13 9
5 |
18 12
7 |
20 12
10 |
8,6
4,6 |
SPN |
Время завершения Длительность цикла обработки Время ожидания |
3 3
0 |
9 7
1 |
15 11
7 |
20 14
9 |
11 3
1 |
7,6
3,6 |
SRT |
Время завершения Длительность цикла обработки Время ожидания |
3 3
0 |
15 13
7 |
8 4
0 |
20 14
9 |
10 2
0 |
7,2
3,2 |
HRRN |
Время завершения Длительность цикла обработки Время ожидания |
3 3
0 |
9 7
1 |
13 9
5 |
20 14
9 |
15 7
5 |
8,0
4,0 |
RR q = 1 |
Время завершения Длительность цикла обработки Время ожидания |
4 4
1 |
19 17
11 |
17 13
9 |
20 14
9 |
15 7
5 |
11,0
7,0 |
RR q = 4 |
Время завершения Длительность цикла обработки Время ожидания |
3 3
0 |
19 17
11 |
11 7
3 |
20 14
9 |
17 9
7 |
10,0
6,0 |