- •Определение операционной системы, назначение и основные функции ос.
- •3 Классификация ос.
- •4. Эволюция операционных систем.
- •5 Понятие ос реального времени.
- •6 Структура ос
- •8) Создание процесса. Завершение процесса. Иерархия процессов. Состояние процессов
- •9 ) Потоки (нити, облегченный процесс)
- •10) Модель потока
- •12) Реализация потоков в пространстве пользователя, ядра и смешанное
- •13) Взаимодействие между процессами
- •14)Передача информации от одного процесса другому. Состояние состязания. Критические области
- •15) Взаимное исключение с активным ожиданием
- •16) Примитивы взаимодействия процессов
- •17) Проблема переполненного буфера (проблема производителя и потребителя)
- •18) Семафоры
- •19) Решение проблемы переполненного буфера с помощью семафора
- •21) Основные понятия планирования процессов. Задачи алгоритмов планирования
- •22) Планирование в системах пакетной обработки
- •Наименьшее оставшееся время выполнения
- •Трехуровневое планирование
- •24) Планирование в интерактивных системах
- •24) Планирование в системах реального времени
- •Выполнение задачи
- •29) Взаимоблокировка процессов
- •30) Моделирование взаимоблокировок
- •31) Методы борьбы с взаимоблокировками
- •32) Пренебрежением проблемой в целом (страусовый алгоритм)
- •33) Обнаружение и устранение взаимоблокировок
- •34) Динамическое избежание взаимоблокировок. Предотвращение четырех условий, необходимых для взаимоблокировок
- •11.3 Динамическое избежание взаимоблокировок
- •11.4 Предотвращение четырех условий, необходимых для взаимоблокировок
- •38) Своппинг
- •39) Виртуальная память
- •40) Страничная организация памяти
- •41) Алгоритмы замещения страниц
- •42) Алгоритм часы
- •43) Понятие «рабочий набор»
- •45) Политика распределения памяти
- •46) Совместно используемые страницы
- •48) Сборка мусора
- •49) Алгоритмы освобождения памяти
- •50) Сегментная организация памяти
- •51) Блочные устройства
- •52) Символьные устройства
- •53) Что такое контроллер прерываний
- •54) Зачем нужен контроллер прерываний
- •54) Механизм обработки прерываний
24) Планирование в системах реального времени
Большинство ОСРВ выполняют планирование задач, руководствуясь следующей схемой.[8] Каждой задаче в приложении ставится в соответствие некоторый приоритет. Чем больше приоритет, тем выше должна быть реактивность задачи. Высокая реактивность достигается путём реализации подхода приоритетного вытесняющего планирования (preemptive priority scheduling), суть которого заключается в том, что планировщику разрешается останавливать выполнение любой задачи в произвольный момент времени, если установлено, что другая задача должна быть запущена незамедлительно.
Описанная схема работает по следующему правилу: если две задачи одновременно готовы к запуску, но первая обладает высоким приоритетом, а вторая низким, то планировщик отдаст предпочтение первой. Вторая задача будет запущена только после того, как завершит свою работу первая.
Возможна ситуация, когда задача с низким приоритетом уже запущена, а планировщик получает сообщение, что другая задача с более высоким приоритетом готова к запуску. Причиной этому может послужить какое-либо внешнее воздействие (прерывание от оборудования), как, например, изменение состояния переключателя устройства, управляемого ОСРВ. В такой ситуации планировщик задач поведет себя согласно подходу приоритетного вытесняющего планирования следующим образом. Задаче с низким приоритетом будет позволено выполнить до конца текущую ассемблерную команду (но не команду, описанную в исходнике программы языком высокого уровня), после чего выполнение задачи останавливается.[8] Далее запускается задача с высоким приоритетом. После того, как она прорабатывает, планировщик запускает прерванную первую задачу с ассемблерной команды, следующей за последней выполненной.
Каждый раз, когда планировщик задач получает сигнал о наступлении некоторого внешнего события (триггер), причина которого может быть как аппаратная, так и программная, он действует по следующему алгоритму.[8]
Определяет, должна ли текущая выполняемая задача продолжать работать.
Устанавливает, какая задача должна запускаться следующей.
Сохраняет контекст остановленной задачи (чтобы она потом возобновила работу с места останова)
Устанавливает контекст для следующей задачи.
Запускает эту задачу.
Эти пять шагов алгоритма также называются переключением задач.
Выполнение задачи
В обычных ОСРВ задача может находиться в 3-х возможных состояниях:
Задача выполняется;
Задача готова к выполнению;
Задача заблокирована.
Большую часть времени основная масса задач заблокирована. Только одна задача может выполняться на центральном процессоре в текущий момент времени. В примитивных ОСРВ список готовых к исполнению задач, как правило, очень короткий, он может состоять не более чем из двух-трёх наименований.
Основная функция администратора ОСРВ заключается в составлении такого планировщика задач.
Если в списке готовых к выполнению задач последних имеется не больше двух-трех, то предполагается, что все задачи расположены в оптимальном порядке. Если же случаются такие ситуации, что число задач в списке превышает допустимый лимит, то задачи сортируются в порядке приоритета.
