Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС М1 2011.docx
Скачиваний:
9
Добавлен:
12.11.2019
Размер:
162.32 Кб
Скачать

1.10.2 Взаимодействие ос и выполняемой программы

В работе в режиме пользователя часто необходимое выполнение действий, реализованных в ядре ОС (например, во время записи на диск из прикладной программы). Для этого надо обеспечить взаимодействие программы пользователя и ОС. Рассмотрим особенности такого взаимодействия.

Системные вызовы и интерфейс между прикладной программой и ОС

Системный вызов - это средство доступа к определенной функции ядра операционной системы из прикладных программ.

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

Рассмотрим последовательность выполнения системного вызова.

  1. Предположим, что для процесса, который выполняется в режиме пользователя, нужна функция, реализованная в ядре системы.

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

  3. После получения управления ядро считывает параметры вызова и определяет, что нужно сделать.

  4. После этого ядро выполняет нужны действия, сохраняет в памяти значения, которые следует возвратить, и передает управление программе, которая его вызвала. Происходит переход назад в режим пользователя.

  5. Программа считывает из памяти сохраненные значения и продолжает свою работу.

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

Рассмотрим способы передачи параметров в системном вызове. К ним принадлежат:

  • передача параметров в регистры процессора;

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

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

Взаимосвязь между функциями АРI и системными вызовами неодинаковы в разных ОС.

Во-первых, каждому системному вызову может быть поставленная в соответствие библиотечная функция, единственной задачей которой являются выполнения этого вызова. Такую функцию называют упаковщиком системного вызова. Для программиста в этом случае набор функций АРI выглядит как совокупность таких упаковщиков и дополнительных функций, реализованных библиотеками полностью или частично в режиме пользователя. Это решение принято за основу в UNIX и в таком случае принято говорить об использовании системных вызовов в прикладных программах (на самом деле программы вызывают упаковщики системных вызовов).

Во-вторых, можно предоставить для использования в прикладных программах универсальный интерфейс программирования применений (АРI режима пользователя) и полностью спрятать за ним набор системных вызовов. Для программиста каждая функция такого АРI является библиотечной функцией режима пользователя, упаковщика в этом случае нет, сведения о системных вызовах есть деталями реализации ОС. Это присуще WINDOWS -системам, где подобный универсальный набор функций называют Win32 АРI.

Выводы

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

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

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

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

  • Операционная система взаимодействует с прикладными программами. Она предоставляет набор системных вызовов для доступа к функциям, реализованным в ядре. Для прикладных программ системные вызовы вместе со средствами системных библиотек доступные через интерфейс программирования приложений (АРI).

Контрольные вопросы

Расскажите о важнейших функциях ОС.

  1. Что является характерным признаком ядра ОС, особенности этого режима.

  2. Режим пользователя. Что принадлежит этому системному программному

обеспечению.

  1. Перечислите различные архитектуры ОС.

  2. Расскажите о монолитных системах.

  3. Расскажите о многоуровневых системах.

  4. Расскажите о системах с микроядром.

  5. Расскажите о концепции виртуальных машин.

  6. Расскажите о средствах аппаратной поддержки ОС.

  7. Расскажите о взаимодействии ОС и выполняемой программы.

Лекция 4