Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС / Тема_8.ppt
Скачиваний:
137
Добавлен:
11.04.2015
Размер:
1.17 Mб
Скачать

Тема 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

Соседние файлы в папке ОС