Системный API на уровне ОС


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

Недостаток системных API в отсутствии переносимости и зависимости от аппаратной платформы. Программы, созданные для одной платформы не смогут работать на другой архитектуре. Переносимости можно было бы добиться если удастся стандартизировать (семантически) наполнение основных функций ядра (POSIX). Примером может служить WinAPI, позволяющая запускать программы в нескольких операционных системах Windows (98 –NT-XP).

 

Реализация API на уровне системы

 

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

Если вызвать функции динамического выделения памяти (malloc на С) или (new - Pascal) с семантической точки зрения они одинаковы. RTL обоих языков могут выполнить одинаковый действия (malloc, realloc, free), но сами они различны. Проблема в том, что RTL не могут предоставить все возможности ОС. В этом случае разработчик использует библиотеки сторонних фирм. При этом нет никакой гарантии что ПО заработает на другой архитектуре, где этих функций нет или они работают по другому.

Реализация API через внешние библиотеки

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

Если удается достигнуть доступности внешней библиотеки для нескольких платформ, программы пользователей становятся переносимыми. Например, стандарт POSIX или Xlib. Для большинства сторонних библиотек это не так VCL (Borland) или MFC(Microsoft) ориентированы только на Windows. CLX(Borland) – Windows Linux

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

 

POSIX

Portable Operating System Interface–п латформенно независимый системный вызов. Этот стандарт широко применялся в ОС для переносимости приложений между UNIX клонами. Тем не менее сейчас RTL POSIX есть в Linux? Windows QNX и т.д. Сейчас работает POSIX1.2

Схема работы

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

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

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

 



Дата добавления: 2017-06-13; просмотров: 1813;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.007 сек.