- •Основы построения операционных систем
- •Введение
- •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.3. Алгоритм srt (по наименьшему остающемуся времени)
Алгоритм SRT (Shortest-Remaining-Time) - следующий с минимальным оставшимся временем - аналог алгоритма SPN, но с переключением, применимый в системах с разделением времени. Оставшееся время - это разность между временем, запрошенным пользователем (временем выполнения), и временем, которое процесс уже получил и которое измеряется системой с помощью аппаратного таймера. По принципу SRT первым всегда выполняется процесс, имеющий минимальное оценочное время до завершения, причем с учетом новых поступающих процессов. Если в соответствии с алгоритмом SPN процесс, запущенный в работу, выполняется до своего завершения, то по алгоритму SRT выполняющийся процесс может быть прерван при поступлении нового процесса, имеющего более короткое оценочное время работы. Чтобы механизм SRT был эффективным, опять-таки нужны достаточно точные оценки будущего, причем разработчик системы должен позаботиться о мерах против неправильного использования прикладными программистами особенностей стратегий диспетчеризации.
Дисциплина SRT характеризуется более высокими накладными расходами, чем SPN. Механизм SRT должен следить за текущим временем обслуживания выполняющегося задания и обрабатывать возникающие прерывания. Поступающие в систему небольшие процессы будут выполняться почти немедленно. Однако более длительные процессы будут иметь даже большее среднее время ожидания и большую дисперсию времени ожидания, чем в случае SPN.
Реализация принципа SRT требует, чтобы регистрировались истекшие времена обслуживания, а это приводит к увеличению накладных расходов. Теоретически алгоритм SRT обеспечивает минимальные времена ожидания. Однако из-за издержек на переключения может оказаться так, что в определенных ситуациях в действительности лучшие показатели будет иметь SPN.
Предположим, что поступает процесс, оценочное время которого лишь немногим меньше времени, необходимого для завершения текущего процесса. В этом случае механизм, реализующий чистый принцип SRT, выполнит переключение. Если, однако, затраты на переключение превышают разность времен обслуживания обоих процессов, то прерывание текущего процесса фактически приведет к снижению производительности системы. Поэтому разработчики операционных систем должны тщательно взвешивать накладные расходы механизмов управления ресурсами в сравнении с предположительными выгодами.
5.3.4. Алгоритм hrrn (по наибольшему относительному времени ответа)
Алгоритм HRRN (Highest Response Ratio Next) - следующий с наибольшим относительным временем ответа - компенсирует некоторые из слабостей, присущих дисциплине SPN, в частности чрезмерное предубеждение против длинных процессов и чрезмерную благосклонность по отношению к коротким новым процессам. HRRN - это алгоритм диспетчеризации без переключения, согласно которому приоритет каждого процесса является не только функцией времени выполнения этого процесса, но также времени, затраченного процессом на ожидание выполнения. После того как процесс получает в свое распоряжение центральный процессор, он выполняется до завершения. Динамические приоритеты при дисциплине HRRN вычисляются по формуле
время ожидания + время выполнения
приоритет = .
время выполнения
Поскольку время выполнения находится в знаменателе, предпочтение будет оказываться более коротким процессам. Однако, поскольку в числителе имеется время ожидания, более длинные процессы, которые уже довольно долго ждут, будут также получать определенное предпочтение. На практике приоритеты пересчитываются через определенные промежутки времени, и в соответствии с изменениями очередь переупорядочивается. Отметим, что сумма
время ожидания + время обслуживания
есть длительность цикла обработки (время ответа системы) для данного процесса, если бы этот процесс инициировался немедленно после поступления в систему.