Набор инструкций. События - прерывания и исключения

Исключения и прерывания произвольные моменты времени выполнения программы в ответ на сигналы аппаратного обеспечения. Исключения происходят вследствие выполнения команд, приводящих к этим исключениям. Обычно обслуживание прерываний и исключений выполняется способом, прозрачным для прикладных программ. Прерывания используются для обработки событий, являющихся внешними по отношению к процессору, таких как запросы на обслуживание периферийных устройств. Исключения обслуживают условия, обнаруживаемые процессором во время выполнения команд, например деление на 0.

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

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

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

Эффективный адрес и преобразование адресов.

Три адресных пространства: логическое, линейное и физическое. По сочетанию сегментации и страничной трансляции различают две модели памяти:

1.В сегментной модели памяти приложение использует несколько сегментов памяти (для кода, данных, стека). В этой модели приложение оперирует логическими адресами.

2. В плоской модели памяти приложению для всех целей выделяется единственный сегмент. В этой модели приложение оперирует линейными адресами.

Логический адрес состоит из селектора сегмента Seg и эффективного адреса, называемого также смещением (offset). Логический адрес обозначается в форме Seg:Offset. Селектор сегмента хранится в старших 14 битах сегментного регистра (CS, DS, ES, SS, FS или GS), участвующего в адресации конкретного элемента памяти.Преобразование логического адреса в физический для 32-битных процессоров.

 Физический адрес памяти образуется после преобразования линейного адреса блоком страничной трансляции адресов.

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

1. В 386SX при 32-битном линейном адресе физический был 24-битным (до 16 Мбайт физически адресуемой памяти).

2. В большинстве 32-битных процессоров до 6-го поколения использовался 32-битный физический адрес (до 4 Гбайт физически адресуемой памяти). Формирование адреса памяти процессоров с 64-битным расширением рисунок.

  16) Страничная трансляция адресов и виртуальная память

СТА.Механизм сегментации обеспечивает превосходную защиту, но он не очень удобен для реализации виртуальной памяти (подкачки). В дескрипторе сегмента есть бит присутствия, по нему процессор определяет, находится ли данный сегмент в физической памяти или он находится на внешнем запоминающем устройстве (на винчестере). В последнем случае генерируется исключение #11, обработчик которого может подгрузить сегмент в память. Неудобство заключается в том, что различные сегменты могут иметь различную длину. Этого можно избежать, если механизм подкачки реализовывать на основе страничного преобразования. Особенностью этого преобразования является то, что процессор в этом случае оперирует с блоками физической памяти равной длины (4Кбайт) - страницами. Страницы не имеют непосредственного отношения к логической структуре программы.Страничное преобразование действует только в защищенном режиме и включается установкой в 1 бита PG в регистре CR0.

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

Страничная организация виртуальной памяти

Страничная организация памяти служит целям преобразования виртуальных адресов в физические. Программа разбивается на части равной величины, называемые страницами. Размер страницы обычно выбирают в пределах 4 – 8 Кбайт (должен быть кратен емкости одного сектора магнитного диска). Виртуальное и физическое адресные пространства разбиваются на блоки размером в страницу. Блок ОП, соответствующий странице, часто называют страничным кадром или фреймом (page frame). Страницам виртуальной и физической памяти присваивают номера.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: