Вложенные обращения к подпрограммам
В вызываемую подпрограмму нужно передать параметры. Возникает проблема сохранения регистров. Требуются лишние затраты времени.
2. Накладные расходы при смене обрабатываемой программы:необходимость включения режима блокировки прерываний; программное сохранение / восстановление содержимого регистров при обработке прерываний;
3.Перемещаемость программы по ОЗУ
Сложно перемещать программу по оперативной памяти так, чтоб не было привязки программы к определенному диапазону адресов. Программу с математическими адресами надо положить на физическую память. Или например, программа была прервана, следовательно после прерывания, нужно вернуть программу в память, 99% что она попадет на новое место. Возникает необходимость настроить программу на новое место.
Фрагментация памяти
Система работает в мультипрограммном режиме. Программы должны храниться в памяти. Программы находятся в разных частях памяти. Когда приходит новая программа, возникает вопрос, куда ее поместить. Если нет свободного куска памяти нужного размера, но есть много маленьких свободных фрагментиков, в суммарный объем которых возможно записать новую программу, а ни в один в отдельности нельзя.
Фрагментация памяти приводит к деградации системы.
Один из способов решения – это компрессия (но при этом возможны потери памяти).
БИЛЕТ
Регистровые окна (register window)
Один из способов решения проблемы вложенных процедур – регистровые окна.
|
|
В компьютере имеется k физических регистров. Система команд машины предоставляет l регистров общего назначения, l различных регистровых окна. Каждый из l регистров отображается на k физических регистров. В каждый момент времени программа работает с одним регистровым окном.
Каждое регистровое окно делится на части: область регистров, использующихся для получения и передачи параметров из\в внешние подпрограммы ; область локальных регистров подпрограмм ; область временных регистров .
Возможна кольцевая схема организации регистровых окон.
При вызове подпрограммы происходит переключение текущего регистрового окно на следующее регистровое окно, при этом возможно пересечение 3-тей части текущего окна с первой частью последующего окна. Этим достигается, во-первых, практически автоматическая передача и прием параметров, во-вторых, всегда создается новый комплект локальных регистров, которые присутствуют в программе.
Рассмотрим, что происходит при непосредственной работе:
Обращаемся к 1-й программе, ей выделяется 0-е регистровое окно. Дальше пошли в глубину на 2-й уровень, выделилось 1-е регистровое окно и т.д. до тех пор, пока не дошли до последнего. Когда этот круг обойдем – начинается откачка этих окон в ОП. Эта схема гарантирует эффективную работу программ с вложенностью не более фиксированного, если вложенность больше, то возникают проблемы, но все равно начинается работа с КЭШем и мы все равно не опускаемся на уровень общения с ОП. Соответственно система может иметь специальный регистр-указатель текущего окна и указатель сохраненного окна.
|
|
Системный стек
Находится в оперативной памяти. Элементы стека: основание стека, SP регистр–указатель стека(в данном регистре размещается адрес вершины стека. Содержимое изменяется автоматически при выполнении «стековых» команд ЦП), вершина стека. Команды для работы со стеком: PUSH, POP.
Использование системного стека может частично решать проблему минимизации накладных расходов при смене обрабатываемой программы и/или обработке прерываний. Частично стек реализуется на регистрах, таким образом существенно ускоряется работа.
БИЛЕТ. Виртуальная память.
Давайте рассмотрим схему подготовки исполняемого кода. Мы имеем исходный текст, который обрабатываем компилятором. В результате получается объектный модуль. Из достаточного количества объектных модулей с помощью редактора внешних связей сформировали исполнительный модуль. И потом когда-то этот исполнительный модуль мы запустим на выполнение. Т.е. исполнительный модуль – это есть уже программа в коде машины, которая использует определенную адресацию. Эта адресация называется программная или логическая или виртуальная адресация – т.е. те адреса, которые используются в программе, они программные, логические или виртуальные адреса. При выполнении программы имеется проблема установления соответствия между виртуальными адресами и реальными адресами ОП (физическими адресами).
|
|
Аппарат– это аппаратные средства компьютера, которые обеспечивают преобразование виртуальных адресов, используемых в программе в физические адреса ОП, в которых размещена данная программа при выполнении.
Базирование адресов.
Исходный текст программы‑> Транслятор‑> ОбъектныЙ модуль‑> Библиотека объектных модулей, редактор внешних связей-> Исполняемый модуль
Аппарат виртуальной памяти – аппаратные средства компьютера, обеспечивающие преобразование (установление соответствия) программных адресов, используемых в программе адресам физической памяти в которой размещена программа при выполнении.
|
|
Базирование адресов – реализация одной из моделей аппарата виртуальной памяти. При базировании выделяется регистр, в котором будет храниться адрес, начиная с которого размещается программа. Проблема: программы должны располагаться в одном блоке.
A исп.прог. -->>абсолютный адрес(А исп.физ=А исп.прог.) | относительный (отн. Нач. прог.) (А исп.физ.=А исп.прог. + <Rбазы>)
В <Rбазы> загружается адрес начала программы в памяти. Исполняемые адреса, используемые в модуле будут автоматически преобразовываться в адреса физического размещения данных путем их сложения с регистром Rбаз..
Базирование адресов – решение проблемы перемещаемости программы по ОЗУ.
Благодаря базированию адресов виртуальное адресное пространство программы отображается в физическую память взаимнооднозначно.
БИЛЕТ. Страничная память.
Память аппаратно разделена на блоки фиксированного размера – страницы.
Структура адреса:
|Номер страницы(k)|(k-1)номер в странице(0)|
Количество страниц ограничено размером «номер страницы».
Пусть одна система команд ЭВМ позволяет адресовать и использовать m страниц размером 2k каждая.
Физическое адресное пространство, в общем случае может иметь произвольное число физических страниц. Структура физического и виртуального адресов будут различаться размером поля номер страницы.
В ЦП ЭВМ имеется аппаратная таблица страниц.
Исполнительный физический адрес будет отличаться от исполнительного виртуального адреса за счет поля ”номер страницы”.
Содержимое таблицы определяет соответствие виртуальной памяти физической для выполняющейся в данный момент программы/процесса. Соответствие определяется следующим образом: i-я строка таблицы соответствует i-й виртуальной странице.
При замене процесса таблицу надо менять.
Виртуальное адресное пространство –множество виртуальных страниц, доступных для использования в программе. Количество виртуальных страниц определяется размером поля «номер виртуальной страницы» в адресе.
Физическое адресное пространство –оперативная память, подключенная к данному компьютеру. Физическая память может иметь произвольный размер (число физических страниц может быть меньше, больше или равно числу виртуальных страниц).
Дата добавления: 2018-08-06; просмотров: 336; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!