Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
122
Добавлен:
20.06.2014
Размер:
6.61 Mб
Скачать
  1. Классификация современных ос. Задачи современных ос.

1. ОС для мейнфреймов (в центрах данных больших корпораций).

2. Серверные ОС. Работают на серверах, представляющие собой большие ПК или рабочие станции. Обслуживают большое количество пользователей (Win2000, Unix)

3. Многопроцессорные ОС. В зависимости от вида соединения процессов и разделения работы такие системы называют параллельными компьютерами, мульти компьютерами или многопроцессорными системами. ОС представляет вариант серверной ОС.

4. ОС для ПК. Их задача – предоставить удобный интерфейс для одного пользователя (Win98).

5. ОС реального времени. Например, система, управляющая полетом самолета. Цифровые аудио и видео системы – гибкие.

6. Встроенные ОС. Win Mobile, Android, Symbian.

7. ОС для смарт-карт, управляют от одной операции до сложной функции. Бывают JAVA-ориентированные, это интерпретаторная система. Может осуществлять работу в режиме многозадачности.

Задачи.

1. Организация мультизадачного режима работы. (Запуск нескольких программ и “изолирование” их друг от друга, фактически предоставляя каждой программе свою виртуальную машину.)

2. Управление устройствами ввода/вывода.

3. Управление ОЗУ

4. Взаимодействие процессов.

5. Разграничение полномочий. (Регламентирование доступа пользователей к ресурсам выч. машины)

  1. Мультизадачный режим. Требования к аппаратуре.

Требования:

1. Любое внешнее устройство (контроллер + устройство). Рассмотрим ввод/вывод. В случае однозадачной системы во время выполнения ввода/вывода ЦП непрерывно опрашивает котроллер устройства на готовность обмена (активное ожидание). Если мультизадачный режим, то непрерывного опроса котроллера ЦП не производит, он занят другой задачей. Проблему решает аппаратные прерывания. В момент завершения операции контроллер передает ЦП спец сигнал – запрос на прерывание. Получив его, ЦП прерывает выполнение активной задачи и передает управление процедуре ОС, которая выполняет все необходимое по завершению операции ввода/вывода, после чего управление возвращается активной задаче.

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

3. ОС берет на себя организацию работы с УВВ, а программам предоставляет интерфейс для обращения к ОС за услугами по работе устройства. Надо запретить пользовательским программам выполнение команд процессора, осуществлять чтение, запись портов ввода/вывода. Эта проблема решается введение 2-ч режимов работы ЦП:

- привилегированный (режим ядра)

- ограниченный (пользовательский)

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

4. Если ОС реального времени – наличие таймера. Таймер является устройством, вся функциональность которого сводится к генерации прерываний через равные кванты времени Эти прерывания дают возможность ОС получить управление, проанализировать текущее состояние задач и при необходимости сменить активную задачу.

  1. Аппарат прерываний (виды прерываний). Понятие системного вызова.

1. Внешние (аппаратные) прерывания. Физически для поддержки аппаратных прерываний процессор имеет специальные контакты. В современных архитектурах, основанных на общей шине для запроса на прерывания, используется одна из дорожек шины.

Последовательность событий:

а) Устройство, которому требуется внимание ЦП, устанавливает на шине запрос на прерывание.

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

в) Получив подтверждение, устройство передает по шине число, идентифицирующее данное устройство. Это номер прерывания.

г) ЦП сохраняет в стеке текущее значение счетчика команд и регистра слов состояния. Это называется малым упрятыванием.

д) Устанавливает привилегированный режим работы ЦП, после управление передается на точку входа процедуры обработки прерываний. Адрес обработчика предварительно считывается. Обработчик может сразу вернуть управление активной задаче, выполнив команду IRET (коротко прерывание).

Если ОС требуются какие-либо действия на прерывание – длинное прерывание, действия:

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

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

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

2. Внутренние прерывания (ловушки). При возникновении исключения ЦП должен передать управление ОС и она принимает решение о дальнейших действиях. Необходимо переключаться в привилегированный режим и передать управление на некоторый обработчик, при этом сохранить информацию из РОН и слово состояние процессора. Отсутствует обмен по шине. Обработчики ситуаций, в которых дальнейшее выполнение активной задачи невозможно, наз. внутр. прерываниями.

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

1) Ядро работает в разных режимах.

2) Пространство адреса ядра для пользовательского процесса не доступно.

Прерывания по инициативе выполняющейся задачи называются программными прерываниями.