пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

I семестр:
» СПО
» ОС
» МС

54. Принципы и примеры построения интерфейсов ОС. Интерфейс прикладного программирования API.

API (application programming interface) – интерфейс прикладного программирования.
Функции:
  1. Управление процессами: запуск, остановка, изменение приоритетов, синхронизация;
  2. Управление памятью: выделение, освобождение, изменение параметров доступа и т.д.;
  3. Управление I/O: работа с файлами и с виртуальными устройствами.
2 подхода по управлению задачами (запуска нового процесса):
  1. Порождённый процесс наследует все ресурсы родителя;
  2. Порождённый процесс должен заново запрашивать ресурсы у ОС.
Способы:
  1. Вызов подпрограммы;
  2. Программами прерывания – способ вызова системы программ.
Способы реализации:
  1. На уровне ОС;
  2. На уровне системы программирования;
  3. На уровне внешних библиотек.
Возможности API описываются по критериям:
  1. Эффективность выполнения ф.API: скорость, ресурсы;
  2. Широта предоставляемых возможностей;
  3. Зависимость программы от архитектуры вычислительной системы.
Подробнее о cпособах реализации интерфейсах прикладного программирования (API):
  1. API реализована на уровне ОС.
    Объектный код включается в ядро ОС, система программирования предоставляет доступ к функциям. Программа обращается к ОС, которая напрямую работает с «железом» – наибольшая эффективность.
    Недостаток – отсутствие переносимости программ (по исходному коду) и совместимости. WinAPI не соответствует стандарту POSIX.
  2. На уровне системы программирования.
    С помощью библиотек в системе программирования. Эффективность ниже, чем при первом способе. Программа обращается к библиотеке СП, которая обращается затем к ОС.
    Достоинство – переносимость программ (совместимость).
    Недостаток. API предоставляет малую функциональность (ограниченный набор функций).
  3. Реализация с помощью внешних библиотек.
    Библиотеки, процедуры и функции предоставляемые сторонними разработчиками в виде динамических библиотек. Если библиотека обращается напрямую к ОС, то её эффективность сравнима с библиотеками СП. Библиотеки могут поддерживать стандарт POSIX. Эффективность сравнима со 2-ым способом.

http://www.business-process.ru/interface/begin_design_interface.html

Интерфейс прикладного программирования (API - Application Programming Interface) это интерфейс, позволяющий различным программным компонентам взаимодействовать друг с другом.

API может быть применён несколькими способами:

  • Интегрирован в среду программирования, например C++ или Java API
  • В специальном назначении, например Google Maps API или Java API XML для веб-услуг. С помощю Google Maps API можно применить услугу указания местоположения на карте через интерфейс, предоставляемый Google..
  • API операционной системы это интерфейс, посредством которого приложения получают доступ к услугам ОС. Примером является Windows API, в котором для каждой службы ОС есть доступная приложениям процедура.

Различные службы, доступные приложениям через Windows API:

  • Базовые службы (Base Services), к которым относятся управление процессами и памятью, функции ввода/вывода и безопасности.
  • Службы компонентов (Component Services) - для взаимодействия приложений
  • Службы пользовательского интерфейса (User Interface Services) - для взаимодействия с различными меню и окнами
  • Службы графики и мультимедиа (Multimedia and Graphics Services)
  • Обмен сообщениями и совместная работа (Messaging and Collaboration)
  • Сетевые службы (Networking)
  • Веб-службы (Web Services)

3.png

Рисунок 2‑3. Интерфейс программирования приложений расположен между ядром и приложениями. (Источник: Learning Materials for Information Technology Professionals (EUCIP-Mat))

Современные ОС реализуют обработку прерываний (Interrupt), исключений (Exception, Trap) и поддержку системных вызовов (System call). Исключения - это программные прерывания, генерируемые при ошибках или обращениях пользовательских приложений к услугам ОС. Для обращения пользовательских приложения к API используются системные вызовы. В целях безопасности, приложения не могут непосредственно совершать системные вызовы, а должны использовать механизм прерываний, при котором генерируется программное прерывание процессору, что в свою очередь приводит к запуску обработчика прерываний в режиме ядра.

Команда, с помощью которой вызывается системная служба, зависит от процессора. Например, в современных процессорах Intel это команда systenter. При её вызове происходит переход в режим ядра и запуск Менеджера системных служб, адрес которого указывается в регистре MSR (Machine Specific Register). В регистре EAX указывается номер системной службы, а через регистр EDX передаются аргументы вызова. Переход обратно в пользовательский режим происходит с помощью команд sysexit или iretd. Менеджер системных служб находит адреса исполняющих программ (т.е. программ, непосредственно манипулирующих системными службами через программный интерфейс, предоставляемый менеджером системных служб) из специальной таблицы.


17.06.2015; 00:18
хиты: 107
рейтинг:0
Точные науки
информатика
Операционные системы
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2025. All Rights Reserved. помощь