2014-11-30 3 views
2

При чтении документации boost::coroutine, я наткнулся на блок управления Термином :Что такое «блок управления»

Решение состоит в том, что каждый сопрограммном имеет свой собственный стек и управление-блок

Хотя понятие стека довольно знакомо, я никогда раньше не встречал термин контрольный блок. Следующее изображение, возможно, при условии некоторого контекстное (не каламбура) понимания того, что блок управления

source: boost documentation

Поскольку я не могу Google своего пути к лучшему объяснению (появившуюся ссылке, чтобы увеличить context только сделали вещи более неясные), может ли кто-нибудь дать четкое определение и объяснить работу блока управления?

благодаря

+3

Это называется блок управления, потому что это то, что люди Boost решили назвать. См. Http://live.boost.org/doc/libs/1_56_0/libs/context/doc/html/context/context.html –

+1

Это данные, используемые системой для представления контекста выполнения, т. Е. состояние регистров процессора и некоторые другие части информации (возможно, сигнальная маска и обработчики в unix?). – didierc

ответ

1

Термин восходит к процессу Блок управления с IIRC CP/M, по крайней мере 4 лет. Это блок данных, описывающий запущенный контекст. Позже потоки получили блоки управления потоками. Потребность в состоянии означала аналогичную структуру данных, поэтому блок управления названием имеет смысл. Единственная странность в том, что обычно эти блоки управления представляют собой структуры ОС, но форсированные сопрограммы не управляются ОС.