![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Реентерабельная (повторно входимая) процедура является весьма полезной концепцией, особенно успешно применяемой в многопользовательских и многозадачных системах. Реентерабельной называется процедура, последовательность команд которой может одновременно использоваться несколькими пользователями. Это свойство процедуры имеет два основных аспекта: программный код не должен быть самомодифицирующимся, а локальные данные каждого пользователя должны храниться отдельно друг от друга. Исполнение реентерабельной процедуры может быть приостановлено с помощью прерывания, а после возврата из него — корректно продолжиться. В многопользовательских и многозадачных системах реентерабельность позволяет более эффективно использовать основную память: в ней хранится только одна копия программного кода процедуры, даже если к ней обращаются несколько разных приложений.
Таким образом, в реентерабельной процедуре должна быть неизменная часть (команды,из которых состоит процедура) и переменная часть (указатель на вызывающую программу, а также локальная область памяти, в которой хранятся локальные переменные, используемые данной программой). При каждом запуске процедуры, который называется ее активацией, исполняется код неизменнойчасти, но при этомдолжка быть созданаотдельная копия локальныхпеременных и параметров. Переменную часть, связанную с каждой активацией, называют записью активации.
Реентерабельные процедуры удобнее всего реализовывать с помощьюстека: при вызове процедуры соответствующая запись активации заносится в стек. Таким образом, запись активации становится частью стекового кадра, создаваемого при вызове процедуры.
Уильям Бейтс
Дата публикования: 2014-11-29; Прочитано: 153 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!