Хелпикс

Главная

Контакты

Случайная статья





Структура реентерабельного программного модуля



Структура реентерабельного программного модуля

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

С помощью статических или динамических методов выделяется память под сохраняемые значения. В 1-ой секции, которая работает в привилегированном режиме, заказывается в системной области памяти блок для хранения текущих данных. В конце ее прерывания включается 2-ая секция (непривилегированный режим), которая является собственно телом реентерабельного модуля, который может быть прерван в любой момент. 3-ья секция служит секцией, освобождающей в системной области памяти блок ячеек для хранения текущих данных

Основная идея построения и работы модуля заключается в том, чтобы получить в системной области блок ячеек для текущих данных, при этом на вершину стека помещается указатель на начало области данных.

Если во время работы центральной секции возник прерывание и другой вычислительный процесс обращается к тому же реентерабельному модулю, то для этого нового процесса вновь заказывается новый блок памяти, и на вершину стека записывается новый указатель. Многократное повторное возможно до тех пор, пока в области системной памяти, выделенной специально для реентерабельной обработки, есть свободные ячейки, число которых достаточно для выделения нового блока. Это динамический способ выделения памяти.

При статическом способе выделения памяти заранее для фиксированного числа вычисляемых процессов резервируется область памяти (для каждого процесса своя область), в которой будут располагаться переменные реентерабельного модуля. В качестве таких процессов выступают процессы ввода/вывода (реентерабельный драйвер может управляться параллельно несколькими однотипными устройствами).

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



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.