Материал: Ответы к экзамену (Операционные системы)

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

1) Низкоуровневое управление памятью    -Отображение страниц на физическую память

— Все остальные механизмы предоставляются сервисами, работающими в режиме пользователя

  • Защита адресного пространства

  • Механизмы замещения страниц

  • Управление виртуальной памятью

2) Межпроцессорное взаимодействие

3)Ввод/вывод и обработка прерываний.

  1. Операционные системы реального времени.

Определение

Операционная система реального времени — тип операционной системы, основное назначение которой — предоставление необходимого и достаточного набора функций для работы систем реального времени на конкретном аппаратном оборудовании.

Классификация

Операционные системы реального времени делятся на:

  • ОС жёсткого времени (бортовые системы управления на самолёте, космическом аппарате, корабле, и пр., системы аварийной защиты, регистраторы аварийных событий);

  • ОС мягкого времени (может обеспечить требуемое время выполнения задачи реального времени в среднем).

ОС жёсткого реального времени не допускают задержек реакции системы, так как это может привести к потере актуальности результатов, большим финансовым потерям или даже авариям и катастрофам. Ситуация, в которой обработка событий происходит за время, большее предусмотренного, в системе жёсткого реального времени считается фатальной ошибкой.

В системе мягкого реального времени задержка реакции считается восстановимой ошибкой, которая может привести к увеличению стоимости результатов и снижению производительности, но не является фатальной. Примером может служить работа компьютерной сети. Если система не успела обработать очередной принятый пакет, это приведёт к остановке на передающей стороне и повторной посылке (в зависимости от протокола). Данные при этом не теряются, но производительность сети снижается.

Архитектура ядра

Архитектура ОС реального времени стоится на основе следующих архитектур:

  • М онолитная архитектура. ОС определяется как набор модулей, взаимодействующих между собой внутри ядра системы и предоставляющих прикладному ПО входные интерфейсы для обращений к аппаратуре. Основной недостаток этого принципа построения ОС заключается в плохой предсказуемости её поведения, вызванной сложным взаимодействием модулей между собой.

  • Уровневая (слоевая) архитектура. Прикладное ПО имеет возможность получить доступ к аппаратуре не только через ядро системы и её сервисы, но и напрямую. По сравнению с монолитной такая архитектура обеспечивает значительно большую степень предсказуемости реакций системы, а также позволяет осуществлять быстрый доступ прикладных приложений к аппаратуре. Главным недостатком таких систем является отсутствие многозадачности.

  • А рхитектура «клиент-сервер». Основной её принцип заключается в вынесении сервисов ОС в виде серверов на уровень пользователя и выполнении микроядром функций диспетчера сообщений между клиентскими пользовательскими программами и серверами — системными сервисами. Преимущества такой архитектуры:

    • Повышенная надёжность, так как каждый сервис является, по сути, самостоятельным приложением и его легче отладить и отследить ошибки;

    • Улучшенная масштабируемость, поскольку ненужные сервисы могут быть исключены из системы без ущерба к её работоспособности;

    • Повышенная отказоустойчивость, так как «зависший» сервис может быть перезапущен без перезагрузки системы.

  1. Многозадачность: определения; механизмы переключения задач.

Определение

Многозадачность - свойство операционной системы или среды выполнения обеспечивать возможность параллельной (или псевдопараллельной) обработки нескольких задач. Истинная многозадачность операционной системы возможна только в распределённых вычислительных системах.

Виды многозадачности:

  • Процессная многозадачность (основанная на процессах — одновременно выполняющихся программах). Здесь программа — наименьший элемент управляемого кода, которым может управлять планировщик операционной системы. Более известна большинству пользователей (работа в текстовом редакторе и прослушивание музыки).

  • Поточная многозадачность (основанная на потоках). Наименьший элемент управляемого кода — поток (одна программа может выполнять 2 и более задачи одновременно).

Многопоточность — специализированная форма многозадачности.

Типы псевдопараллельной многозадачности

Простое переключение

  • Одновременная загрузка в память нескольких приложений.

  • Процессор обрабатывает только одно приложение.

«+»: можно задействовать уже работающие программы, написанные без учёта многозадачности.

«-»:

невозможно в неинтерактивных системах, работающих без участия человека. Взаимодействие между программами крайне ограничено.

Совместная (кооперативная) многозадачность

  • Следующая программа выполняется строго после объявления предыдущей программы отдать процессор.

  • Приложение может захватить фактически столько процессорного времени, сколько оно считает нужным.

  • Все приложения делят процессорное время, периодически передавая управление следующей задаче.

«+»:

отсутствие необходимости защищать все разделяемые структуры данных объектами типа критических секций и мьютексов.

«-»:

  • неспособность всех приложений работать в случае ошибки в одном из них, приводящей к отсутствию вызова операции «отдать процессорное время»;

  • райне затрудненная возможность реализации многозадачной архитектуры ввода-вывода в ядре ОС, позволяющей процессору исполнять одну задачу в то время, как другая задача инициировала операцию ввода-вывода и ждет её завершения

Вытесняющая (приоритетная) многозадачность – «режим реального времени».

Примеры ОС:

  • UNIX-подобные ОС,

  • Windows 95/98/Me/NT, 2000/XP/Vista/7

  • ОС сама передает управление от одной выполняемой программы другой в случае завершения операций ввода-вывода, возникновения событий в аппаратуре компьютера, истечения таймеров и квантов времени, или же поступлений тех или иных сигналов от одной программы к другой.

  • процессор может быть переключен с исполнения одной программы на исполнение другой без всякого пожелания первой программы и буквально между любыми двумя инструкциями в её коде.

  • Распределение процессорного времени осуществляется планировщиком процессов.

  • Назначение приоритетов для задач.

«+»:

  • возможность полной реализации многозадачного ввода-вывода в ядре ОС, когда ожидание завершения ввода-вывода одной программой позволяет процессору тем временем исполнять другую программу;

  • ильное повышение надежности системы в целом, в сочетании с использованием защиты памяти — идеал в виде «ни одна программа пользовательского режима не может нарушить работу ОС в целом» становится достижимым хотя бы теоретически, вне вытесняющей многозадачности он не достижим даже в теории;

  • возможность полного использования многопроцессорных и многоядерных систем.

«-»:

необходимость особой дисциплины при написании кода, особые требования к его реентерабельности, к защите всех разделяемых и глобальных данных объектами типа критических секций и мьютексов.

Особенности

Отличия ОС реального времени от ОС общего назначения:

  • Детерминированность (строгий контроль времени). Для выполнения одного сервиса операционной системы требуется временной интервал заведомо известной продолжительности.

Планирование задач

  • Каждая задача имеет значение приоритета;

  • Планировщик может остановить выполнение задачи с меньшим приоритетом для запуска другой, имеющей более высокий приоритет.

Каждый раз, когда планировщик задач получает сигнал о наступлении некоторого внешнего события (триггер), причина которого может быть как аппаратная, так и программная, он действует по следующему алгоритму:

  1. Определяет, должна ли текущая выполняемая задача продолжать работать.

  2. Устанавливает, какая задача должна запускаться следующей.

  3. Сохраняет контекст остановленной задачи (чтобы она потом возобновила работу с места остановки).

  4. Устанавливает контекст для следующей задачи.

  5. Запускает эту задачу.

В обычных ОСРВ задача может находиться в трёх возможных состояниях:

  • задача выполняется;

  • задача готова к выполнению;

  • задача заблокирована.

Разделение ресурсов

Многозадачным системам необходимо распределять доступ к ресурсам. Одновременный доступ двух и более процессов к какой-либо области памяти или другим ресурсам представляет определённую угрозу. Существует три способа решения этой проблемы:

  • временное блокирование прерываний,

  • двоичные семафоры,

  • посылка сигналов.