![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjj0JMNSXZ5VmSeXWg8bQlPRFOd-6X6OCsTkN3xCoE801KkhuPx2usSMN2TewoFcJ-1uOEjv46ByMMC1qfC0eRTC1DpibtQOqaRzJzbn6tT4bIMC9Bk5lsSC3-Em4W3m-zONyQNYd23axw/s1600/%25D0%2591%25D0%25B5%25D0%25B7%25D1%258B%25D0%25BC%25D1%258F%25D0%25BD%25D0%25BD%25D1%258B%25D0%25B913.jpg)
Интерфейс
между прикладными процессами и ядром ОС в WINDOWS называется Win32API. Этот
интерфейс не является «родным», а был разработан дополнительно для управления
вызова большинства функций ОС. «Родной» интерфейс Native
API. Многие программы, написанные самой Microsoft
используют NativeAPI, который оказался наиболее быстрым.
Особенностью
программного интерфейса от Windows состоит в
том, что в нем очень большое кол-во функций и с каждой новой версией Windows их количество растёт.
Многие
функции описанные в Win32API, на самом деле не существуют, т.к. являются
макросами, которые компилятор заменяет на вызов правильной функции, такое
действие требуется из-за UNICODE.
Типы процессов в ОС WINDOWS
В
ОС WINDOWS существуют следующие типы процессов:
―
обычные
процессы;
―
службы;
―
драйверы
как компоненты системного процесса;
Обычные
процессы в ОС Windows делятся на 2 класса: оконные
и консольные. На самом деле, с точки
зрения ядра ОС, такого подразделения нет. Любой процесс может создать и консоль
и граф. Окно. Подразделение появляется только на этапе сборщика при компиляции
программы. Сборщик подключает либо оконную, либо консольную библиотеку. Оконные
GUI (graphic user
interface). Консольные CUI.
Соответствующие
стартовые ф-ции программы разных типов различаются:
|
ASCII
|
UNICODE
|
T макрос
|
GUI
|
WinMain
|
wWinMain
|
?
|
СUI
|
main
|
wmain
|
-tmain
|
При
старте процесса сначала стартует библиотека, которая либо создает консоль, либо
основное окно приложения и затем управление передается в основную функцию
программы.
Для
создания процесса в ОС WINDOWS используется функция CreateProcess,
которая создает новый процесс, новое адресное пространство, и одну нить
процесса, которая начинает выполняться с точки входа процесса. После выполнения
функции управление передается в основную
функцию процесса.
Понятие дескриптора / Win 32 API / Win32 API
Дескриптор
— это уникальное число, которое Windows использует для идентификации. В Windows
есть большое количество типов дескрипторов, например: окна, меню, устройства вывода, файлы и многие другие.
Большинство дескрипторов являются значениями
индексов внутренних таблиц. Windows использует индексы дескрипторов для доступа
к информации, содержащейся в таблице. Обычно прикладные программы имеют доступ
только к дескриптору, а не к самим данным. Когда необходимо проверить или
изменить данные, указывается дескриптор, и Windows делает необходимые действия.
Т.о. система обеспечивает защиту данных при работе в многозадачном режиме.
Программируя
под Windows, мы очень часто используем эти дескрипторы. Существуют ограничения
по количеству дескрипторов. Например, количество окон в Windows ограничено,
хотя может очень большим. Хуже с другими объектам типа перьев, их намного
меньше и если Ваша программа ведет себя не корректно по отношению к
дескрипторам, то очень быстро они могут закончиться. В связи с этим общая
идеология такая: Получить дескриптор,
Использование, Освободить.
Вы
можете подобную последовательность наблюдать практически при каждом этапе
программирования.
Комментариев нет:
Отправить комментарий