
- •Тема 8. Интерфейсы операционных систем
- •8.1.Интерфейс прикладного программирования
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1.Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1.Основные определения
- •8.1.1.Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1.1. Основные определения
- •8.1. Интерфейс прикладного программирования
- •8.1.2. Классификация системных вызовов
- •Основные функции управления синхронизацией
- •Основные функции управления виртуальной и физической памятью
- •Основные функции управления виртуальной и физической памятью
- •Функции механизма отображения файла в память
- •Основные функции для файлового ввода-вывода
- •Основные функции управления каталогами
- •Некоторые категории вызовов GUI
- •Основные функции управления защитой
- •Основные функции управления реестром
- •Основные функции управления консолью
- •8.1.Интерфейс прикладного программирования
- •8.1.3. Программирование системных вызовов
- •8.1.3.Программирование системных вызовов
- •8.1.3. Программирование системных вызовов
- •8.1.3. Программирование системных вызовов
- •8.1.3.Программирование системных вызовов
- •8.1.3.Программирование системных вызовов
- •8.1.Интерфейс прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •Способы реализации ИПП
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.1.4. Реализация интерфейса прикладного программирования
- •На рис. позицией 1 обозначен вызов обработчика ловушки и диспетчера базовых сервисов. Позиции
- •8.1.4. Реализация интерфейса прикладного программирования
- •8.2. Интерфейс пользователя
- •8.2.1.Типы интерфейсов
- •8.2.1. Типы интерфейсов
- •8.2.1.Типы интерфейсов
- •8.2.1. Типы интерфейсов
- •8.2.1. Типы интерфейсов
- •8.2.1.Типы интерфейсов
- •8.2.1. Типы интерфейсов
- •8.2.Интерфейс пользователя
- •8.2.2.Консоль
- •8.2.2. Консоль
- •8.2.2. Консоль
- •8.2.2. Консоль
- •8.2.2. Консоль
- •8.2.2.Консоль
- •8.2.Интерфейс пользователя
- •8.2.3. Графическая среда
- •8.2.3. Графическая среда
- •8.2.3. Графическая среда
- •8.2.3. Графическая среда
- •8.2.Интерфейс пользователя
- •8.2.Интерфейс пользователя
- •8.2.Интерфейс пользователя
- •8.2.5. Архитектура, управляемая событиями
- •8.2.5. Архитектура, управляемая событиями
- •8.2.5. Архитектура, управляемая событиями
- •8.2.5. Архитектура, управляемая событиями

Тема 8. Интерфейсы операционных систем
8.1.Интерфейс прикладного программирования
8.2.Интерфейс пользователя
Операционные системы |
1 |

8.1.Интерфейс прикладного программирования
8.1.1.Основные определения
Интерфейс прикладного программирования (ИПП) - это совокупность функций, предоставляемая операционной системой и системой программирования разработчикам приложений для получения того или иного сервиса.
Принципы построения ИПП:
1. ИПП должен обеспечивать доступ к ресурсам ОС, к которым относятся физическая и виртуальная память, файлы и каталоги, процессы и потоки, защищенные области данных ОС и т. д.
2. ИПП должен быть совместимым во всех ОС одного типа. Например, во всех 32-разрядных ОС Windows (95, 98, NT, 2000, ХР, 2003 и др.) реализован общий стандарт интерфейса API Win 32.
3. ИПП должен быть безопасным. То есть никакая программа, используя любую функцию интерфейса, не должна повредить операционную систему или другие процессы. Отсюда и сами системные функции должны быть защищены от модификации или подмены.
4. ИПП должен быть простым в использовании и эффективным по времени выполнения функций.
5. Добавление новых функций или замена старых новыми версиями не |
|
должны оказывать влияние на программы. |
2 |
|

8.1.1. Основные определения
Эти требования обеспечиваются соответствующей реализацией интерфейса.
В современных ОС доступ к функциям ИПП выполняется с помощью вызовов. В зависимости от уровня реализации интерфейса различают:
•прикладные вызовы (вызовы функций библиотек языка программирования и библиотек классов);
•системные вызовы (например, вызовы функций API Win32/64);
•вызовы базовых функций ОС (вызовы функций ядра ОС или подсистемы Win32);
•промежуточные вызовы.
ИПП делится на две группы функций:
•функции, предоставляемые операционной системой;
•функции, входящие в состав стандартных библиотек системы программирования, а также библиотек классов, например, MFC языка C++ или FCL платформы Microsoft .NET Framework.
Системные функции, в свою очередь, реализуются через промежуточные функции (заглушки), которые вызывают базовые функции ОС. Последние опираются на примитивы ядра системы.
Операционные системы |
3 |

8.1.1. Основные определения
Библиотеки системы программирования принято называть библиотеками времени выполнения. Функции таких библиотек вставляются в программу на этапе ее компоновки.
Они выполняют только стандартные операции, с помощью которых можно реализовать, как правило, лишь консольное приложение.
Примеры таких функций: математические, статистические, строковые функции, функции преобразования и т. д., а также функции ввода-вывода, управления памятью, процессами и некоторые другие.
Большая часть этих функций выполняется без обращения к операционной системе и, по сути, образует лишь прикладное расширение программы.
Стандартные функции делают программу независимой от платформы.
Операционные системы |
4 |

8.1.1. Основные определения
Операционные системы |
5 |

8.1.1. Основные определения
Схема вызова и выполнения функции стандартной библиотеки системы программирования. Вызываемая функция не содержит в себе системных вызовов.
6

8.1.1. Основные определения
Пример консольного приложения на языке С.
//Вычислить количество вхождений //ключа «API» в текстовую строку. //Сделать программу не зависимой //от регистра ключа.
#include <stdio.h> #include <conio.h> #include <string.h> #define ESC 27 int main()
{
char s[128], //Исходная строка copy[128], //Копия строки key[]="API", //Ключ
*p; //Начало анализируемой части строки int k, //Количество вхождений ключа
do
{
Операционные системы |
7 |

8.1.1. Основные определения
Пример консольного приложения на языке С. puts(«Введите строку»);
gets(s); strcpy(copy, s); strupr(copy); p = copy; while(1)
{
p = strstr(p, key); if(p == NULL) break; k++
p=p+3;
}
printf("%s - %d\n", key, k); puts(«Для выхода нажмите ESC»); } while (getch()!=ESC);
}
Операционные системы |
8 |

8.1.1.Основные определения
Вэтой программе функции strcpy (copy, s), strupr (copy), strstr (p, key)
не выполняют обращения к операционной системе. Программист мог бы реализовать их самостоятельно.
Такие функции библиотек времени выполнения, как ввод-вывод, управление памятью и т. д., в своей реализации содержат обращения к системным функциям (системные вызовы), поэтому эти функции создают системное расширение программы.
В программе к таким функциям относятся: puts («Введите строку»),
gets (s),
printf («%s - %d\n», key, k), getch ().
Перечисленные функции времени выполнения реализуют внутри себя обращения к системным функциям. К таким функциям в Windows, например, могут относиться функции API Win32 ReadConsole() и WriteConsoleQ.
Операционные системы |
9 |

8.1.1. Основные определения
Вызов системной функции из функции стандартной библиотеки языка. Для выполнения системного вызова может быть выполнена как одна функция DLL-библиотеки, так и несколько. Место вызова других системных функций показано в виде трех точек, разрывающих поток выполнения.
Операционные системы |
10 |