RTX – расширение реального времени для Windows NT

       

Использование потоков


Функция CreateThread создает либо RTSS, либо Win32 поток, в зависимости от текущей исполняющей подсистемы процесса. Возвращаемый хэндл и ID потока действителен только в окружении, вызвавшем CreateThread. Например, Win32 процесс не может управлять приоритетом RTSS потока, потому что хэндл этого потока действителен только в RTSS подсистеме. Вы можете, однако, использовать средства межпроцессного взаимодействия (Inter-Process Communication,IPC), предоставляемые RTX – такие как mutex, semaphore, events и shared memory – для синхронизации и коммуникации между Win32 и RTSS процессами и потоками. См. раздел “Межпроцессное взаимодействие”.  

Объекты таймеры и прерывания

Объекты-таймеры и прерывания происходят от потоков, следовательно, хэндлы этих объектов действительны только в их собственной (Win32 или RTSS) среде. Аналогично, этими объектами можно управлять только из процессов в их собственной среде.

RTSS подсистема

Единицей исполнения в подсистеме RTSS является поток. Готовый к исполнению RTSS-поток получает приоритет над всеми Win32 потоками. RTSS-поток исполняется до тех пор, пока он не освободит CPU. Поток освобождает CPU, когда он:

  • Ожидает объекта синхронизации
  • Понижает собственный приоритет или повышает приоритет другого потока
  • Подвешивает (suspend) себя
  • Возвращается из процедуры обработки таймера или прерывания (относится только к потокам таймера и прерывания)
  • Вызывает функцию Sleep c аргументом 0

RTSS-потоки не могут быть использованы как объекты синхронизации. Первичный поток процесса имеет стек размером 8 KB. Можно указать размер стека созданных впоследствии потоков с помощью функции CreateThread.



Содержание раздела