Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
33__33__33__33_ItogOS.docx
Скачиваний:
4
Добавлен:
01.03.2025
Размер:
1.55 Mб
Скачать

87. Интерфейс прикладного программирования

Интерфейс прикладного программирования. Прикладные программисты исполь-

зуют в своих приложениях обращения к операционной системе, когда для выполнения

тех или иных действий им требуется особый статус, которым обладает только ОС. Воз-

можности операционной системы доступны программисту в виде набора функций, ко-

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

вызовов. Способ, которым приложение получает услуги операционной системы, очень

похож на вызов подпрограмм.

Способ реализации системных вызовов зависит от структурной организации ОС,

особенностей аппаратной платформы и языка программирования.

В ОС UNIX системные вызовы почти идентичны библиотечным процедурам. Ситу-

ация в Windows иная (более подробно это рассмотрим далее).

Пользовательский интерфейс. ОС обеспечивает удобный интерфейс не только для

прикладных программ, но и для пользователя (программиста, администратора). В ран- них ОС интерфейс сводился к языку управления заданиями и не требовал терминала.

Команды языка управления заданиями набивались на перфокарты, а результаты вы-

полнения задания выводились на печатающее устройство.

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

для интерактивной работы за терминалами двух типов: алфавитно-цифровыми и гра-

фическими. При работе за алфавитно-цифровым терминалом пользователь имеет в сво-

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

можности данной ОС. Обычно командный язык ОС позволяет запускать и останавли-

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

информацию о состоянии ОС, администрировать систему. Команды могут вводиться не

только в интерактивном режиме с терминала, но и считываться из так называемого ко-

мандного файла, содержащего некоторую последовательность команд.

Программный модуль ОС, ответственный за чтение отдельных команд или же по-

следовательности команд из командного файла, иногда называют командным интерпре-

татором (в MS DOS - командным процессором).

Вычислительные системы, управляемые из командной строки, например, UNIX-

системы имеют командный интерпретатор, называемый оболочкой (Shell). Она собст-

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

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

терминалом для нее является монитор с клавиатурой. Оболочка начинает работу с печа-

ти приглашения (prompt) - знака доллара (или иного знака), говорящего пользователю,

что оболочка ожидает ввода команды (аналогично управляется MS DOS). Если теперь

пользователь напечатает какую-либо команду, оболочка создает системный вызов и ОС

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

тается прочесть следующую входную строку.

Ввод команд может быть упрощен, если операционная система поддерживает гра-

фический пользовательский интерфейс. В этом случае пользователь выбирает на экра-

не нужный пункт меню или графический символ (так это происходит, например, в ОС

Windows).

8.1. Интерфейс прикладного программирования

8.1.1. Основные определения

Под интерфейсом прикладного программирования (ИПП) понимается совокупность

функций, предоставляемая операционной системой и системой программирования раз-

работчикам приложений для получения того или иного сервиса. Кроме множества

функций с понятием ИПП неразрывно связан способ получения доступа к этим функ-

циям. На уровне ОС ИПП определяется механизмом его реализации.

Перед разработчиками ИПП встают следующие задачи:

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

и виртуальная память, файлы и каталоги, процессы и потоки, защищенные области

данных ОС и т. д.

2. ИПП должен быть совместимым во всех ОС одного типа. Например, во всех 32-раз-

рядных ОС Windows (95, 98, NT, 2000, ХР, 2003 и др.) реализован общий стандарт

интерфейса API Win 32.

3. ИПП должен быть безопасным. То есть никакая программа, используя любую

функцию интерфейса, не должна повредить операционную систему или другие про-

цессы. Отсюда и сами системные функции должны быть защищены от модифика-

ции или подмены.

4. ИПП должен быть простым в использовании и эффективным по времени выполне-

ния функций.

5. Добавление новых функций или замена старых новыми версиями не должны

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

Эти требования обеспечиваются соответствующей реализацией интерфейса.

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

мер, требование безопасности в MS DOS не выполняется. Связано это с тем, что про-

цессор Intel 8086 поддерживает лишь 1 Мб оперативной памяти и не обеспечивает опе-

рационную систему какими-либо средствами защиты. В таких условиях MS DOS раз-

рабатывалась как система одного пользователя для однозадачного режима. В то же время

современные ОС - это многозадачные системы (Windows, OS Mac, OS/2, UNIX, Linux

и др.), и многие из них поддерживают коллективный доступ (это прежде всего ОС боль-

ших ЭВМ, например UNIX, VMS, OS/390).

В современных ОС доступ к функциям ИПП выполняется с помощью вызовов.

В зависимости от уровня реализации интерфейса различают:

• прикладные вызовы (вызовы функций библиотек языка программирования

и библиотек классов);

• системные вызовы (например, вызовы функций API Win32/64);

• вызовы базовых функций ОС (вызовы функций ядра ОС или подсистемы

Win32);

• промежуточные вызовы.

ИПП делится на две группы функций. Одна и наиболее большая группа - это

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

состав стандартных библиотек системы программирования, а также библиотек классов,

например, MFC языка C++ или FCL платформы Microsoft .NET Framework (рис. 8.1).

Системные функции, в свою очередь, реализуются через промежуточные функции (за-

глушки), которые вызывают базовые функции ОС. Последние опираются на примити-

вы ядра системы.

Во всех операционных системах, исходя из видов ресурсов, с которыми они

связаны, функции ИПП можно разделить на несколько групп. Так, в Windows можно

выделить следующие группы функций API:

• управление процессами, потоками и синхронизацией;

• управление виртуальной и физической памятью;

• управление вводом-выводом.

В API Windows также есть еще ряд групп:

• графический интерфейс пользователя;

• управление защитой;

• управление реестром;

• консольные функции

• и другие группы специальных функций.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]