Стек сигналов - PullRequest
       9

Стек сигналов

5 голосов
/ 09 мая 2009

Я читал, что сигналы должны иметь отдельный стек, почему и как вы думаете, он реализован?

Распределяются ли они динамически или статически? Как происходит распределение памяти? Это одинаково для всех сигналов?

Ответы [ 2 ]

3 голосов
/ 09 мая 2009

Причина, по которой сигналы требуют отдельного стека, заключается в том, что, если обычный стек поврежден или переполнен, сигнал все еще может выполняться. Я думаю, что стек сигналов обычно распределяется динамически, но он может быть реализован в любом случае. Вы можете установить новый стек сигналов с помощью sigaltstack. Это одинаково для всех сигналов.

1 голос
/ 09 января 2010

Другая, более эзотерическая причина - создание потоков на уровне пользователя. См. Статью «Портативная многопоточность» Ральфа Энгельшалла: http://www.gnu.org/software/pth/rse-pmt.ps. В ней описывается, как «батутный трюк стека сигналов» используется для создания многопоточности в пользовательском пространстве.

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