Что происходит внутри машины, когда я посылаю сигнал - PullRequest
0 голосов
/ 21 декабря 2010

Я имею в виду, у меня есть запрос операционной системы, например kill SIG_NUMBER PID, что будет дальшеКакие действия предпринимаются операционной системой и так далее.

Большое спасибо

1 Ответ

1 голос
/ 09 февраля 2011

Конечно, зависит от ОС - но, как правило, если у вас достаточно привилегий для передачи этого сигнала соответствующему процессу - тогда ОС изменит состояние процесса для процесса. касается внутри ядра. Как правило, это приводит к некоторому изменению состояния «жизненного цикла» для процесса - то есть, к его завершению, завершению, прекращению работы, приостановке и т. Д.

Фактический вызов в ядро ​​(в зависимости от ОС) будет осуществляться через системный вызов или, возможно, вызов ioctl через какое-то соответствующее устройство.

Когда в течение некоторого времени процесс переходит к процессу, планировщик процессов будет учитывать состояние процесса, чтобы определить, что делать дальше. Намеренно кратко здесь, поскольку это весьма вовлечено.

Я бы посоветовал взглянуть на некоторый пример источника - возможно, посмотрите дистрибутив Linux или OpenSolaris (хотя это довольно сложно).

Пример здесь - предупредить, что это очень сложно. Обработка сигналов OpenSolaris в ядре

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...