
- •Тема 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.1.2. Классификация системных вызовов
Основные функции управления процессами и потоками
Функция |
Описание |
Create Process |
Создать новый процесс |
CreateThread |
Создать новый поток в существующем процессе |
ExitProcess |
Завершить текущий процесс и все его потоки |
ExitThread |
Завершить этот поток |
SetPriorityClass |
Задать класс приоритета для процесса |
SetThreadPriority |
Задать приоритет для потока |
31

Основные функции управления синхронизацией
Функция |
Описание |
CreateSemaphore |
Создать новый семафор |
CreateMutex |
Создать новый мьютекс |
OpenSemaphore |
Открыть существующий семафор |
OpenMutex |
Открыть существующий мьютекс |
WaitForSingleObject |
Блокироваться на одном семафоре, мьютексе и т. д. |
WaitForMultipleObject |
Блокироваться на множестве объектов, чьи дескрипторы |
|
перечисляются |
PuIseEvent |
Перевести событие в сигнализирующее состояние, а затем |
|
вернуть в несигнализирующее |
ReleaseMutex |
Освободить мьютекс, чтобы другой поток мог его |
|
захватить |
ReleaseSemaphore |
Увеличить на единицу счетчик семафора |
EntcrCriticalSection |
Захватить блокировку для критической секции |
LeaveCriticalSection |
Освободить блокировку для критической секции 32 |

Основные функции управления виртуальной и физической памятью
Функция |
Описание |
VirtualAlloc |
Зарезервировать или фиксировать область |
VirtualFree |
Освободить область или отменить фиксацию области |
VirtualProtect |
Изменить режим доступа к области |
VirtualQuery |
Узнать состояние области |
VirtualLock |
Сделать область резидентной в памяти |
VirtualUnlock |
Разрешить выгрузку области |
GlobalAlloc |
Выделить блок памяти (из кучи процесса) |
GlobalReAlloc |
Изменить размер блока памяти |
GlobalSize |
Возвратить размер блока памяти |
GlobalLock |
Зафиксировать блок памяти |
GlobalUnlock |
Снять фиксацию блока памяти |
33

Основные функции управления виртуальной и физической памятью
Функция |
Описание |
GlobalFree |
Освободить блок памяти |
HeapCreate |
Создать кучу |
HeapAllocate |
Выделить блок памяти в куче |
HeapReAllocate |
Изменить размер блока памяти в куче |
HeapFree |
Освободить блок памяти в куче |
GetProcessHeap |
Получить дескриптор кучи процесса |
34

Функции механизма отображения файла в память
Функция |
Описание |
CreateFile() |
Открыть или создать файл |
CreateFileMapping |
Выделить адресное пространство виртуальной памяти для |
|
отображения открытого файла, то есть создать проекцию |
|
файла |
MapViewOfFile |
Спроецировать файл или его часть на адресное пространство |
|
процесса |
MapViewOfFileEx |
Тоже |
OpenFileMapping |
Получить доступ к проекции файла, созданной в другом |
|
процессе |
FlushViewOfFile() |
Записать на диск все измененные страницы |
UnmapViewOfFile |
Отключить файл от адресного пространства процесса |
CloseHandle |
Закрыть проекцию файла |
CloseHandle |
Закрыть файл |
35

Основные функции для файлового ввода-вывода
Функция |
Описание |
|
CreateFile |
Создать или открыть файл; вернуть дескриптор файла |
|
DeleteFile |
Удалить существующий файл |
|
CloseHandle |
Закрыть файл |
|
ReadFile |
Прочитать данные из файла |
|
WriteFile |
Записать данные в файл |
|
SetFilePointer |
Установить указатель в файле в определенную позицию |
|
GetFileSize |
Определить размер файла |
|
SetEndOfFile |
Изменить размер файла по текущему значению указателя |
|
GetFileAttributes |
Вернуть атрибуты файла |
|
CopyFile() |
Копировать файл |
|
LockFile |
Заблокировать область файла для обеспечения взаимного |
|
|
исключения |
|
UnlockFile |
Отменить блокировку области файла |
36 |

Основные функции управления каталогами
Функция |
Описание |
CreateDirectory |
Создать новый каталог |
RemoveDirectory |
Удалить пустой каталог |
FindFirstFile |
Инициализация, чтобы начать чтение каталога |
FindNextFile |
Прочитать следующую запись каталога |
MoveFile |
Переместить файл из одного каталога в другой |
SetCurrentDirectory |
Изменить текущий рабочий каталог |
37

Некоторые категории вызовов GUI
Группа API |
|
Описание |
|
Управление окнами |
|
Создание, уничтожение окон, управление окнами |
|
Меню |
|
|
Создание, уничтожение и добавление пунктов меню |
Диалоговые окна |
|
Отображение диалоговых окон и сбор информации |
|
Рисование и черчение |
Отображение точек, линий и геометрических фигур |
||
Текст |
|
|
Вывод текста с использованием определенного |
|
|
|
шрифта, размера и цвета |
Растровые изображе- |
Отображение на экране растровых изображений, |
||
ния, |
курсоры |
и |
курсоров и значков |
значки |
|
|
|
Цвета и палитры |
|
Управление набором доступных цветов |
|
Буфер обмена |
|
Передача информации от одного приложения другому |
|
Ввод |
|
|
Получение информации от мыши и клавиатуры |
38

Основные функции управления защитой
Функция |
Описание |
InitializeSecurityDescriptor |
Подготовить новый дескриптор защиты |
LookupAccountSid |
Найти SID по заданному имени пользователя |
SetSecurityDescriptorOwner |
Ввести SID владельца в дескриптор защиты |
SetSecurityDescriptorGroup |
Ввести SID группы в дескриптор защиты |
InitializeAcl |
Инициализировать DACL или SACL |
AddAccessAllowedAce |
Добавить к DACL или SACL новый АСЕ с |
|
разрешением доступа |
AddAccessDeniedAce |
Добавить к DACL или SACL новый АСЕ с запретом |
|
доступа |
DeleteAce |
Удалить АСЕ из DACL или SACL |
SetSecurityDescriptorDacl |
Добавить DACL к дескриптору защиты |
39

Основные функции управления реестром
Функция |
Описание |
RegCreateKeyEx |
Создать новый ключ реестра |
RegDeleteKey |
Удалить ключ реестра |
RegOpenKeyEx |
Открыть ключ и получить его дескриптор |
RegEnumKeyEx |
Перенумеровать подключи, подчиненные ключу |
|
дескриптора |
RegQueryValueEx |
Искать данные по значению в ключе |
40