- •Введение
- •1. Основные понятия системного программного обеспечения
- •1.1. Понятия прикладного и системного программного обеспечения
- •1.2. Состав системного программного обеспечения
- •2. Состав и архитектура операционных систем
- •2.1. Состав операционных систем
- •2.2. Архитектура ос
- •3. Управление памятью
- •3.1. Функции ос по управлению памятью
- •3.2. Классификация методов распределения памяти
- •3.3. Распределение памяти без использования внешней памяти
- •3.4. Методы структуризации виртуальной памяти
- •4. Процессы и потоки
- •4.1. Концепция процессов и потоков
- •4.2. Многозадачность. Формы программной работы
- •4.3. Подсистема управления процессами и потоками
- •4.4. Создание процессов
- •4.5. Потоки и их модели
- •5. Планирование и синхронизация процессов и потоков
- •5.1. Виды планирования
- •5.2. Алгоритмы планирования потоков
- •5.3. Алгоритмы приоритетного планирования
- •5.4. Взаимоисключения
- •5.5. Семафоры
- •5.6. Тупики
- •6. Файловые системы
- •6.1. Цели и задачи файловой системы
- •6.2. Организация файлов и доступ к ним
- •6.3. Логическая организация файла
- •6.4. Каталоговые системы
- •6.5. Основные возможности файловой системы ntfs
- •6.6. Структура тома с файловой системой ntfs
- •6.7. Возможности ntfs по ограничению доступа к файлам и каталогам
- •7. Построение операционных систем
- •7.1. Принципы построения операционных систем
- •7.2. Построение интерфейсов операционных систем
- •7.3. Интерфейс прикладного программирования
- •7.4. Классификация системных вызовов
- •7.5. Интерфейс пользователя
- •8. Семейство операционных систем unix
- •8.1. Основные понятия системы unix
- •8.2. Операционная система Linux
- •Заключение
- •Библиографический список
- •Оглавление
7.4. Классификация системных вызовов
Во всех операционных системах, исходя из видов ресурсов, с которыми они связаны, функции интерфейса прикладного программирования можно разделить на несколько групп. Так, в Windows можно выделить следующие группы функций API:
– управление процессами, потоками и синхронизацией;
– управление виртуальной и физической памятью;
– управление вводом-выводом.
В API Windows также есть еще ряд групп:
– графический интерфейс пользователя;
– управление защитой;
– управление реестром;
– консольные функции
– другие группы специальных функций.
Примеры функций API, относящихся к разным группам приведены в табл. 7 - 15.
Таблица 7
Основные функции управления процессами и потоками
Функция |
Описание |
Create Process |
Создать новый процесс |
CreateThread |
Создать новый поток в существующем процессе |
ExitProcess |
Завершить текущий процесс и все его потоки |
ExitThread |
Завершить этот поток |
SetPriorityClass |
Задать класс приоритета для процесса |
SetThreadPriority |
Задать приоритет для потока |
Таблица 8
Основные функции управления синхронизацией
Функция |
Описание |
CreateSemaphore |
Создать новый семафор |
OpenSemaphore |
Открыть существующий семафор |
ReleaseSemaphorc |
Увеличить на единицу счетчик семафора |
EnterCriticalSection |
Захватить блокировку для критической секции |
LeaveCriticalSection |
Освободить блокировку для критической секции |
Таблица 9
Основные функции управления виртуальной и физической памятью
Функция |
Описание |
VirtualAlloc |
Зарезервировать или фиксировать область в ВП |
VirtualFree |
Освободить область или отменить фиксацию области |
VirtualProtect |
Изменить режим доступа к области ВП |
VirtualQuery |
Узнать состояние области ВП |
VirtualLock |
Зафиксировать страницы ВП |
VirtualUnlock |
Расфиксировать страницы ВП |
HeapCreate |
Создать пул в памяти |
HeapAllocate |
Выделить блок памяти в пуле |
HeapReAllocate |
Изменить размер блока памяти в пуле |
Продолжение табл. 9
HeapFree |
Освободить блок памяти в пуле |
GetProcessHeap |
Получить дескриптор пула |
Таблица 10
Основные функции для файлового ввода-вывода
Функция |
Описание |
CreateFile |
Создать или открыть файл; вернуть дескриптор файла |
DeleteFile |
Удалить существующий файл |
ReadFile |
Прочитать данные из файла |
WriteFile |
Записать данные в файл |
SetFilePointer |
Установить указатель в файле в определенную позицию |
GetFileSize |
Определить размер файла |
SetEndOfFile |
Изменить размер файла по текущему значению указателя |
GetFileAttributes |
Вернуть атрибуты файла |
CopyFile |
Копировать файл |
LockFile |
Заблокировать область файла для обеспечения взаимного исключения |
UnlockFile |
Отменить блокировку области файла |
Таблица 11
Основные функции управления каталогами
Функция |
Описание |
CreateDirectory |
Создать новый каталог |
RemoveDirectory |
Удалить пустой каталог |
FindFirstFile |
Инициализация, чтобы начать чтение каталога |
FindNextFile |
Прочитать следующую запись каталога |
MoveFile |
Переместить файл из одного каталога в другой |
SetCurrent Directory |
Изменить текущий рабочий каталог |
Насчитывается несколько сотен функций графического интерфейса пользователя (GUI). Поэтому следует ограничиться названиями групп этих функций (табл. 12)
Таблица 12
Группы API-функций, реализующий графический интерфейс пользователя
Группа API |
Описание |
Управление окнами |
Создание, уничтожение окон, управление окнами |
Меню |
Создание, уничтожение и добавление пунктов меню |
Диалоговые окна |
Отображение диалоговых окон и сбор информации |
Рисование и черчение |
Отображение точек, линий и геометрических фигур |
Продолжение табл. 12
Текст |
Вывод текста с использованием определенного шрифта, размера и цвета |
Растровые изображения, курсоры и значки |
Отображение на экране растровых изображений, курсоров и значков |
Цвета и палитры |
Управление набором доступных цветов |
Буфер обмена |
Передача информации от одного приложения другому |
Ввод |
Получение информации от мыши и клавиатуры |
Таблица 13
Основные функции управления защитой
Функция |
Описание |
InitializeSecurity Descriptor |
Подготовить новый дескриптор защиты |
LookupAccountSid |
Найти SID по заданному имени пользователя |
SetSecurityDescriptorOwner |
Ввести SID владельца в дескриптор защиты |
SetSecurityDescriptorGroup |
Ввести SID группы в дескриптор защиты |
Таблица 14
Основные функции управления реестром
Функция |
Описание |
RegCreateKeyEx |
Создать новый ключ реестра |
RegDeleteKey |
Удалить ключ реестра |
Продолжение табл. 14
RegOpenKeyEx |
Открыть ключ и получить его дескриптор |
RegEnumKeyEx |
Перенумеровать подключи, подчиненные ключу дескриптора |
RegQueryValueEx |
Искать данные по значению в ключе |
Таблица 15
Основные функции управления консолью
Функция |
Описание |
SetConsoleTitle |
Определить текст заголовка для консоли |
WriteConsole |
Вывести текст в консоль |
ReadConsole |
Ввод из консоли |
ReadConsoleInput |
Обработка событий мыши и клавиатуры |