Использование процессов
Ниже кратко описывается работа процессов в RTSS и Win32 среде.
Процесс, исполняющийся в RTSS, состоит из набора хэндлов объектов, адресного пространства процесса, по меньшей мере одного потока и исполняемого файла. При создании процесса RTSS выполняет следующие действия:
- Загружает исполняемый файл, как драйвер
- Выделяет процессу heap из non-paged kernel page pool
- Создает основной поток
Процесс может быть запущен одним из следующих способов:
- Загрузка в качестве драйвера устройства во время загрузки системы (используя утилиту RTSSrun)
- Выполнение RTSS-программы из Win32
Процесс прекращает работы при одном из следующих условий:
- Последний поток закончил работу
- Один из потоков вызвал ExitProcess
- Процесс убит утилитой RTSSkill
Максимальное число процессов, одновременно существующих в RTSS, равняется числу слотов RTSS-процессов, заданному в регистре (по умолчанию 10). RTSS-процесс не может использоваться в качестве объекта синхронизации.
Процессы, выполняющиеся подсистеме Win32, начинают взаимодействовать с RTX, когда они вызывают функции RTAPI. Такой вызов связывает процесс с rtapi_w32.dll. После этого RTX может выделять ресурсы для этого процесса, изменять его приоритет и т.д. Число Win32 процессов, которое может взаимодействовать с RTX, непостоянно – оно зависит от конфигурации системы и свободных ресурсов.