end; D4
Procedure C( ); D3
Integer h, f;
Begin
… B’
B( ); состояние 1
End;
Begin S’- вершина стека;
… B’- дно стека;
A( ); Di - регистры-дисплеи
END.
порядок вызова
S’ уровень3
Dn
… уровень4
D5
D4
D3
B’
состояние 2
Каждый регистр определяется лексографическим уровнем выполнения процедур и содержит начальный адрес тела процедуры. Через заштрихованные области сделана прошивка описательных частей процедур в статические цепочки. Смена контекста в регистрах- дисплеях –это функция ОС. Динамическую связь между вызывающими и вызываемыми процедурами зафиксирована в некоторый момент времени и отображающую историю обращений называют динамической цепочкой. Элементы динамической цепочки называются константами возврата и содержат информацию, необходимую для организации возврата управления из вызываемой процедуры в вызывающую.
Для построения динамической цепочки в ОС используется стек динамических связей. При вызове процедуры должна формироваться константа возврата и заталкиваться в стек. Константа содержит адрес возврата и некоторую дополнительную информацию.
Для формирования стека динамических связей используется как транслятор, так и сама ОС. Каждая процедура транслируется в отдельный кодовый сегмент, которому присваивается внутреннее имя и дескриптор.
Дескрипторы процедур собраны в массив, который помещается средствами транслятора на высший лексографический уровень, и этот уровень всегда попадает в адресный контекст процедуры при её выполнении.
Также как в сетке данных, метка процедуры также адресуется с помощью адресной пары (n, i), где n- номер лексографического уровня, i- смещение в описательной части, где находится метка в вызываемой процедуре. Часто рассматриваемые стеки объединяются в один. Их можно объединить потому, что элементы в каждом из стеков погружаются синхронно в одном и том же порядке по мере вызова процедуры. Состав каждого элемента объединённого стека несколько изменяется. Ранее стеки содержали связующую информацию и область прямо адресуемых данных. Эта часть стека - фиксированная по составу области. Другая часть объединённого стека (динамическая) предназначена для размещения в ней той процедуры, локальные данные и параметры которой находятся в фиксированной области. Разница между этими областями фиксируется специальными регистрами атрибутов. Значение
границы в этом регистре – дно стека выражений текущей процедуры. На стеке и выполняются команды данной процедуры.
Структура объединённого стека.
Элементы стека S регистры-
Регистры-дисплеи G атрибуты
F
n+2
n+1
n
B
1 – стек выражений;
2 – область параметров процедур;
3 – описательная область процедуры;
4, 5, 6 – элементы с прошивками;
Заштрихованные области представляют собой управляющие структуры, содержащие указатели для статических и динамических показателей.
S, G – регистры, указывающие на начало (конец) стека выражений.
F – содержит адресный указатель на начало динамической цепочки (служит для организации входа-выхода из процедуры).
Стек и определённая совокупность связанных с ним регистров процессора представляет собой отображение процесса на ОП. Стек может управлять любым процессом в ОС в различных состояниях процесса, для чего нужно заносить в стек информацию о текущем состоянии процесса. Каждый процесс развивается на своём стеке, а при возникновении прерывания нужно сохранять содержимое
регистров-атрибутов и регистров-дисплеев. Состав стека вводят специальную область управления процессом во всех его состояниях. Она содержит обычно область сохранения и называется паспортом стека. В паспорте стека есть поля, через которые можно связать стеки различных процессов и организовать из них списки, очереди. Дерево стеков отражает в текущий момент все процессы в ОС.
На машинах, где работает стековая ОС должно быть:
1) Состав команд, ориентированных на стековую обработку;
2) Наличие программно-доступных специальных регистров для управления стеками;
3) Развитые механизмы адресации с использованием дескрипторного метода.
Недостатки:
1) В них нужно обеспечивать защиту на уровне слова;
2) Стековая обработка не эффективна при работе с многомерными массивами.
Управление оверлеями.
Концепция оверлея предполагает увеличение эффективности использования памяти в вычислительных системах с фиксированным размером памяти. В отличие от других способов оверлеи не требуют из комплекса «процессор - память» никаких
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.