Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Уильям Бейтс



Реентерабельная (повторно входимая) процедура является весьма полезной концепцией, особенно успешно применяемой в многопользовательских и много­задачных системах. Реентерабельной называется процедура, последовательность команд которой может одновременно использоваться несколькими пользовате­лями. Это свойство процедуры имеет два основных аспекта: программный код не должен быть самомодифицирующимся, а локальные данные каждого пользова­теля должны храниться отдельно друг от друга. Исполнение реентерабельной процедуры может быть приостановлено с помощью прерывания, а после возврата из него — корректно продолжиться. В многопользовательских и многозадачных системах реентерабельность позволяет более эффективно использовать основную память: в ней хранится только одна копия программного кода процедуры, даже если к ней обращаются несколько разных приложений.


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

Реентерабельные процедуры удобнее всего реализовывать с помощьюстека: при вызове процедуры соответствующая запись активации заносится в стек. Та­ким образом, запись активации становится частью стекового кадра, создаваемого при вызове процедуры.

Уильям Бейтс





Дата публикования: 2014-11-29; Прочитано: 140 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...