
- •Классификация и характеристика программного обеспечения
- •Назначение, классификация системного программного обеспечения. Требования к спо
- •Формирование целостного представления о назначения организации сис по.
- •Овладение методами и инструментами: настройки, откладки, диагностики и защиты программных систем.
- •Назначение, функции и основные качества операционных систем. Требования к современным ос
- •Поколения операционных систем и их классификация
- •Функциональные компоненты операционных систем: подсистема управления ресурсами
- •1.1. Управление процессами
- •1.2. Управление памятью
- •1.3. Управление файлами и внешними устройствами
- •Функциональные компоненты операционных систем: подсистема управления задачами
- •2.1. Защита данных и администрирование
- •2.2. Интерфейс прикладного программирования
- •2.3. Пользовательский интерфейс
- •Архитектура операционных систем: ядро и вспомогательные модули ос
- •Модулями ос
- •Архитектура операционных систем: ядро в привилегированном режиме
- •В привилегированном режиме
- •К привилегированному ядру
- •Архитектура операционных систем: многослойная структура ос
- •Типовые средства аппаратной поддержки операционных систем
- •Концепция, преимущества и недостатки микроядерной архитектуры
- •Пространство
- •Мультипрограммирование. Реализация в системах пакетной обработки
- •Ввода-вывода
- •В мультипрограммной системе (б)
- •Мультипроцессорная обработка: сущность и характеристика
- •Понятия «процесс» и «поток», операции над процессами в мультипрограммных системах
- •Планирование и диспетчеризация потоков в мультипрограммных системах
- •Состояния потока в мультипрограммных системах
- •Вытесняющие и невытесняющие алгоритмы планирования
- •Алгоритмы планирования, основанные на квантовании
- •Алгоритмы планирования, основанные на приоритетах
- •Синхронизация процессов и потоков: цели и средства синхронизации
- •Синхронизация процессов и потоков: гонки и тупики
- •Синхронизация процессов и потоков: критическая секция, блокирующие
- •Синхронизация процессов и потоков: использование семафоров
- •Синхронизация процессов и потоков: синхронизирующие объекты ос
- •Функции операционных систем по управлению памятью
- •Управление памятью: виртуальное адресное пространство и виртуальная память
- •Алгоритмы распределения памяти: распределение памяти фиксированными разделами
- •Алгоритмы распределения памяти: распределение памяти динамическими разделами, перемещаемые разделы
- •Управление памятью: страничное распределение
- •Управление памятью: сегментное распределение
- •Управление памятью: сегментно-страничное распределение
- •Мультипрограммирование на основе прерываний: диспетчеризация и приоритезация прерываний в ос
- •Мультипрограммирование на основе прерываний: системные вызовы
- •Управление вводом-выводом в операционной системе: основные понятия и концепции организации ввода/вывода
- •Режимы управления вводом/выводом. Основные системные таблицы ввода/вывода
- •2.1. Режимы управления вводом/выводом
- •2.2. Основные системные таблицы ввода-вывода
- •Управление вводом-выводом в операционной системе: кэширование операций ввода/вывода при работе с накопителями на магнитных дисках
- •Управление файлами: общий принцип работы операционной системы с файлами
- •Управление файлами: общая характеристика файловых систем (fat, fat32 и ntfs)
- •2.1. Файловая система fat
- •2.2. Файловые системы vfat и fat32
- •3. Файловая система ntfs
- •3.1. Структура тома с файловой системой ntfs
- •3.2. Возможности файловой системы ntfs по ограничению
- •Сетевые и распределенные операционные системы
- •Функциональные компоненты сетевой операционной системы
- •Одноранговые и серверные сетевые операционные системы
- •Интерфейс прикладного программирования (api)
- •1.1. Принципы построения интерфейсов ос
- •1.2. Варианты реализации функций api
- •1). Реализация функций api на уровне ос
- •2). Реализация функций api на уровне системы программирования
- •3). Реализация функций api с помощью внешних библиотек
- •Платформенно-независимый интерфейс posix
- •Технологии программирования сом
Интерфейс прикладного программирования (api)
ИНТЕРФЕЙС ПРИКЛАДНОГО ПРОГРАММИРОВАНИЯ (API)
1.1. Принципы построения интерфейсов ос
Под интерфейсами ОС понимаются специальные интерфейсы системного и прикладного программирования, предназначенные для выполнения следующих задач:
1) управление процессами, которое включает в себя следующий набор основных функций:
- запуск, приостанов и снятие задачи с выполнения;
- задание или изменение приоритета задачи;
- взаимодействие задач между собой (механизмы сигналов, семафорные примитивы, очереди, конвейеры, почтовые ящики);
- RFC (remote procedure call) — удаленный вызов подпрограмм;
2) управление памятью:
- запрос на выделение блока памяти;
- освобождение памяти;
- изменение параметров блока памяти (например, память может быть заблокирована процессом либо предоставлена в общий доступ);
- отображение файлов на память (имеется не во всех системах);
3) управление вводом/выводом:
- запрос на управление виртуальными устройствами;
- файловые операции (запросы к системе управления файлами на создание, изменение и удаление данных, организованных в файлы).
Пользовательский интерфейс ОС реализуется с помощью специальных программных модулей, которые принимают его команды на соответствующем языке (возможно, с использованием графического интерфейса) и транслируют их в обычные вызовы в соответствии с основным интерфейсом системы.
Обычно эти модули называют интерпретатором команд.
Получив от пользователя команду, такой модуль после лексического и синтаксического анализа либо сам выполняет действие, либо, что случается чаще, обращается к другим модулям ОС, используя механизм API.
Обращения к ОС, в соответствии с имеющимся API, может осуществляться как посредством вызова подпрограммы с передачей ей необходимых параметров, так и через механизм программных прерываний.
Выбор метода реализации вызовов функций API должен определяться архитектурой платформы.
Интерфейс прикладного программирования (API, application program interface) разделяется на следующие направления:
- API как интерфейс высокого уровня, принадлежащий к библиотекам RTL;
- API прикладных и системных программ, входящих в поставку ОС;
- прочие API.
Интерфейс прикладного программирования, как это и следует из названия, предназначен для использования прикладными программами системных ресурсов ОС и реализуемых ею функций.
API описывает совокупность функций и процедур, принадлежащих ядру или надстройкам ОС.
Таким образом, API представляет собой набор функций, предоставляемых системой программирования разработчику прикладной программы и ориентированных на организацию взаимодействия результирующей прикладной программы с целевой вычислительной системой.
Целевая вычислительная система представляет собой совокупность программных и аппаратных средств, в окружении которых выполняется результирующая программа.
Сама результирующая программа порождается системой программирования на основании кода исходной программы, созданного разработчиком, а также объектных модулей и библиотек, входящих в состав системы программирования.
В принципе API используется не только прикладными, но и многими системными программами, как в составе ОС, так и в составе системы программирования.
Функции API позволяют разработчику строить результирующую прикладную программу так, чтобы использовать средства целевой вычислительной системы для выполнения типовых операций. При этом разработчик программы избавлен от необходимости создавать исходный код для выполнения этих операций.
Программный интерфейс API включает в себя не только сами функции, но и соглашения об их использовании, которые регламентируются ОС, архитектурой целевой вычислительной системы и системой программирования.
Существует несколько вариантов реализации API:
- реализация на уровне ОС;
- реализация на уровне системы программирования;
- реализация на уровне внешней библиотеки процедур и функций.
Система программирования в каждом из этих вариантов предоставляет разработчику средства для подключения функций API к исходному коду программы и организации их вызовов. Объектный код функций API подключается к результирующей программе компоновщиком при необходимости.
Возможности API можно оценивать со следующих позиций:
- эффективность выполнения функций API – включает в себя скорость выполнения функций и объем вычислительных ресурсов, потребных для их выполнения;
- широта предоставляемых возможностей;
- зависимость прикладной программы от архитектуры целевой вычислительной системы.