ТОП 10:

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

Выводы

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

 

 

Лекция 4







Последнее изменение этой страницы: 2017-02-06; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.232.51.69 (0.006 с.)