Интерфейсы операционных систем

Операционная система всегда выступает как интерфейс между аппаратурой компьютера и пользователем с его задачами. Автор монографии «Системное программирование в среде Win32» Джонсон М. Харт на восемнадцатой странице пишет: «В соответствии с принятой в данной книге точке зрения Windows – это всего лишь API операционной системы, предоставляющий набор вполне понятных средств».

Интерфейсы системного и прикладного программирования (API) предназначены для выполнения следующих задач:

1. Управление процессами, которое включает в себя следующий набор основных функций:

1.1. запуск, приостанов и снятие задачи с выполнения;

1.2. задание или изменение приоритета задачи;

1.3. взаимодействие задач между собой;

1.4. вызов удаленных процедур (Remote Procedure Call).

2. Управление памятью:

2.1. запрос на выделение блока памяти;

2.2. освобождение памяти;

2.3. изменение параметров блока памяти (например, память может быть заблокирована процессом либо предоставлена в общий доступ);

2.4. отображение файлов на память (имеется не во всех системах).

3. Управление вводом-выводом:

3.1. запрос на управление виртуальными устройствами (напомним, что управление вводом-выводом является привилегированной функцией самой операционной системы, и никакая из пользовательских задач не должна иметь возможности непосредственно управлять устройствами);

3.2. файловые операции (запросы к системе управления файлами на создание, изменение и удаление данных, организованных в файлы).

В последние годы большую популярность получили графические интерфейсы (Graphical User Interface, GUI), в которых задействованы манипуляторы типа «мышь». Указание курсором на объект и щелчок на кнопке мыши приводит к каким-либо действиям. Можно сказать, что такая интерфейсная подсистема транслирует «команды» пользователя в обращения к операционной системе.

Управление GUI является частным случаем задачи управления вводом-выводом и не относится к функциям ядра операционной системы, хотя в ряде случаев разработчики ОС относят функции GUI к основному системному интерфейсу API.

Общий термин API (Application Program Interface – интерфейс прикладного программирования) можно разделить на следующие направления:

· API как интерфейс высокого уровня, принадлежащий к библиотекам RTL (Run Time Library);

· API прикладных и системных программ, входящих в поставку операционной системы;

· Прочие интерфейсы API.

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

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

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

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

Если говорить о переносимости исходного кода, то здесь требование только одно – используемая внешняя библиотека должна быть доступна в любой из архитектур вычислительных систем, на которые ориентирована прикладная программа. Тогда удается достигнуть переносимости. Это возможно, если внешняя библиотека удовлетворяет какому-либо принятому стандарту, а система программирования поддерживает этот стандарт.

Например, библиотеки, удовлетворяющие стандарту POSIX, доступны в большинстве систем программирования для языка С. И если прикладная программа использует только библиотеки этого стандарта, то ее исходный код будет переносимым. Еще одним примером является широко известная библиотека графического интерфейса XLib, поддерживающая стандарт графической среды X-Windows.

Стандарт POSIX (Portable Operating System Interface for Computer Environments – независимый от платформы системный интерфейс для компьютерного окружения) – это стандарт IEEE (Institute of Electrical and Electronics Engineers – институт инженеров по электротехнике и радиоэлектронике), описывающий системные интерфейсы для открытых операционных систем, в том числе оболочки, утилиты и инструментарии. Стандарт базируется на UNIX-системах, но допускает реализацию и в других операционных системах.

 

 








Дата добавления: 2014-12-13; просмотров: 1648;


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

При помощи поиска вы сможете найти нужную вам информацию.

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

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.