Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsia (1).docx
Скачиваний:
23
Добавлен:
01.03.2025
Размер:
188 Кб
Скачать
☆

3.Механизмы выполнения программ: понятия активности, контекста активности, точки наблюдения.

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

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

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

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

Точки наблюдения - моменты времени, соответствующие промежуткам между моментами выполнения инструкций.

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

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

Активностью называют состояние непрерывного выполнения одной процедуры.

Таким образом, выполнение последовательной программы состоит из ряда активностей, или ряда активных состояний.

Контекстом активности называют ту часть информации, которая доступна процессору во время данного активного состояния.

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

Механизм выполнения последовательных программ реализует следующие функции.

  1. Сохранение и восстановление контекстов при вызове и возврате.

  2. Передачу параметров между вызывающей и вызываемой процедурами.

  3. Управление рабочими зонами в памяти.

4.Механизмы выполнения программ: стек выполнения, алгоритм вызова процедур.

В качестве используемой структуры данных применяется стек выполнения.

Будем считать что:

  1. Параметры процедуры, передаются по значению, при возврате передается последний результат.

  2. Процедуры могут вызываться рекурсивно(сами себя) непосредственно или опосредовано, через другие процедуры.

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

Пусть процедура Р является активной. Тогда в стеке создается среда Р.

Q вызывает P b опять создается среда

Если процедура вызывается рекурсивно создается новая среда и процедуры Р.

Среда содержит следующею информацию.

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

  • фактические параметры (n+1 ячеек, в первой из которых содержится число n, а в последующих - значения n параметров;

  • локальные переменные и рабочее пространство процедуры.

При вызове процедуры и возврате из нее выполняются следующие операции:

  1. выделить в стеке зону для среды:

  • ВРЕМ:=УБ;

  • УБ:=УВ;

  • УВ:=УВ+РАЗМЕР СРЕДЫ;

  1. сохранить информацию для возврата:

  • ПРЕДЫДУЩАЯ БАЗА:=ВРЕМ;

  • РАЗМЕСТИТЬ АДРЕС ВОЗВРАТА;

  1. разместить параметры;

  2. выполнить переход к выполняемой процедуре.

При вызове возврате из процедуры последовательность операций будет следующей:

  1. разместить результат в предусмотренных ячейках;

2. восстановить информацию возврата и очистить среду

Для этого в переменную врем. и считать адрес возврата: переменной вершине присвоить базе. Переменная база считать из среды значения предыдущей базы.

3. Передать управление по адресу врем.

Другие механизмы перестановки контекста.

Модель рассмотренная выше использует для представления процесса выполнения одной программы виде последовательности активных состояний. Введение новых механизмов перестановки контекста при программировании ОС оправдываются 2 факторами:

1) Асинхронность, т.е. влияние внешних, по отношению к текущему активному состоянию факторов на процесс протекания активности.

2) Взаимная защита при переходе от одного активного состояния к другому, которые требует более глубокой модификации контекста чем простой вызов процедуры.

Механизмы выполнения программ: прерывания, захваты, обращения к супервизору

Существует 3 типа перестановки контекста:

1. Прерывание представляет собой перестановку контекста процессора, вызванную внешней по отношению к выполняемой инструкции причины.

Прерывание представляет собой перестановку контекста процессора, вызванную внешней по отношению к выполняемой инструкции причиной.

1) Физически прерывание представляется сигналом о прерывании работы, посылаемым процессору. Этот сигнал вызывает изменение состояние указателя, проверяемого в ходе выполнения каждой инструкции. Сигнал может послать другой процессор, устройство ввода-вывода, внешнее устройство или любой внешний физический процесс. Прерывание вынуждает процессор приостановить в ближайшей точке наблюдения выполнение текущей программы и приступить к выполнению другой, специальной программы, называемой программой обработки прерываний или обработчиком прерываний. Обработчик прерываний работает в другом по отношению к прерываемой программе контексте.

2) Захват сигнализирует об аномалии при выполнении инструкции.

Причинами аномалий могут быть следующие:

  • неправильные данные, приводящие к нарушению правильного выполнения инструкции (арифметическое переполнение, деление на ноль и т.п.);

  • попытка выполнения операции, запрещенной защищающим устройством (нарушение защиты памяти, выполнение привилегированной инструкции в исполнительном режиме и т.д.);

  • невыполнимая инструкция (несуществующий код операции, адрес вне памяти, обращение к устройству, отсутствующему в используемой конфигурации и т.д.).

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

Уровни прерывания

Работа процессора может быть прервана по разным причинам, которые приводят к выполнению разных программ прерывания. Поэтому механизм прерывания должен различать эти причины. Для этого используются две основные схемы:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]