Книга: Введение в QNX/Neutrino 2. Руководство по программированию приложений реального времени в QNX Realtime Platform
Перепланирование по системным вызовам
Перепланирование по системным вызовам
Если поток делает системный вызов, перепланирование выполняется немедленно и может рассматриваться как асинхронное в отношении прерываний таймера и других прерываний.
Например, выше мы приводили пример вызова функции sleep(10)
. Это библиотечная функция языка Си, в конечном счете она транслируется в системный вызов. В тот же самый момент ядро приняло решение о перепланировании, чтобы удалить ваш поток из очереди готовности по соответствующему приоритету и поставить на выполнение другой поток, находящийся в состоянии готовности (READY).
Системных вызов, вызывающи процесс обязательного перепланирования, очень много. Большинство их них достаточно очевидны. Перечислим некоторые из них:
• функции таймера (например, sleep());
• функции обмена сообщениями (например, MsgSendv());
• примитивы работы с потоками (например, pthread_cancel() или pthread_join()).
- Перепланирование по аппаратному прерыванию
- Перепланирование по исключительным ситуациям
- Доступ к системным вызовам из пространства пользователя
- Работа с системным реестром Windows
- Управление системным реестром
- Проблемы и перспективы адаптации международно-правовой системы в контексте адаптации к военно-политическим вызовам ИКТ