Процессы в ОС Windows: понятие Win32 API; main() и WinMain().

Ядро ОС Windows NT начало разрабатываться в компании Microsoft в 1989 г. Группой программистов под руководством David Catler. На начальном этапе в группу входило 9 человек, разработка ядра ОС заняла 3 года.
Интерфейс между прикладными процессами и ядром ОС в 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 ограничено, хотя может очень большим. Хуже с другими объектам типа перьев, их намного меньше и если Ваша программа ведет себя не корректно по отношению к дескрипторам, то очень быстро они могут закончиться. В связи с этим общая идеология такая: Получить дескриптор, Использование, Освободить.

Вы можете подобную последовательность наблюдать практически при каждом этапе программирования.

Комментариев нет:

Отправить комментарий