Мультипроцессорные системы. Семафорная техника синхронизации и упорядочивания процессов. Стек – средство обработки структурированных программ, страница 4

    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)  Стековая обработка не эффективна при работе с многомерными массивами.

Управление оверлеями.

Концепция оверлея предполагает увеличение эффективности использования памяти в вычислительных системах с фиксированным размером памяти. В отличие от других способов оверлеи не требуют из комплекса «процессор - память» никаких