Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

5 Динамическое распределение памяти

Работа добавлена на сайт samzan.net: 2016-03-05

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 14.5.2024

4.5 Динамическое распределение памяти.

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

Сравнительно небольшая емкость ОП (64 кбайт и более) компенсируется практически неограниченной емкостью внешних запоминающих устройств на МЛ и МД (миллионы, миллиарды байт). Однако эти ЗУ сравнительно медленные, tобращения=десятки милисекунд для диска, а для МЛ может достигнуть сотен секунд. Поэтому вычислительный процесс должен протекать с возможно меньшим количеством обращений с ВЗУ и максимально возможным использованием ОП.

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

Таким образом, в ОП можно хранить только используемые (активные) в данный момент времени участки программы, а неиспользуемые в ВЗУ.

Раньше программистам приходилось распределять память самим, работая с физическими адресами, что создавало огромные трудности и приводило к массе ошибок. Кроме того, при мультипрограммном режиме работы ЭВМ такое распределение памяти вообще невозможно.

Программист не знает в комбинации с какими программами будет выполняться его программа и какое место в памяти отведет ей ОС.

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

При этом программисту условно предоставляются все видимое (доступное) адресное пространство ЭВМ (ОЗУ+ВЗУ), определяемое только количеством разрядов, которые могут использоваться для предоставления адреса. Это пространство получило название виртуального. В отличии от него пространство физической памяти называется реальным, а его адреса – физическими адресами. Виртуальные адреса, естественно отличаются от физических и преобразуются в них в процессе выполнения программы.

Один из способов динамического распределения памяти основан на использовании базовых или сегментных регистров. ОС каждой пользовательской программе отводит определенное пространство памяти (сегмент) с соответствующим базовым адресом. При выполнении программы физический адрес образуется суммированием базового адреса и смещения (базовая адресация), если программа находится в ОП. Местоположение программы определяется по таблице сегментов, находящейся в ОП, где указаны базовый адрес каждой программы и ее длина. Если программа находится в ВЗУ, то ОС загружает ее в ОП, изменяя физический адрес в таблице сегментов (рис. 4.7)

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

Рисунок 4.8 Фрагментация памяти.

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

4.6 Виртуальная память.

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

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

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

В этой системе линейную физическую и виртуальную память разбивают на блоки, называемые страницами, содержащими одно и тоже число байт. Размер страницы выбирают обычно в пределах 2, 4 кбайт. Каждая физическая страница способна хранить одну виртуальную страницу. Порядок расположения байт в виртуальной и физической страницах один и тот же и сохраняется при перемещении. Когда программа загружается в ОП, то она может быть направлена в любые физические страницы, независимо от их местоположения. Сначала в ОП загружается начальная страница программы и ей передается управление. Если по ходу работы нужны слова из другой страницы, то автоматически ОС останавливает работу программы и загружает в ОП нужную страницу. Если там нет свободного места, то ОС выгружает на ВЗУ ненужную в данный момент страницу, и на ее место загружает новую. Для больших объемов памяти используют сегментно-страничную организацию памяти. Виртуальная память каждой программы делится на части, именуемые сегментами. Каждый сегмент делится на одинаковые части, именуемые страницами. Теперь виртуальный (логический) адрес состоит из поля № сегмента, поля № страницы, поля № байта в странице.

Начальные адреса сегментов и страниц кратны их размерам. Для преобразования логических адресов в реальные используется таблицы перекодирования для сегментов и страниц, которые находятся в ОП, и определяют ее текущее распределение. Каждая строка таблицы сегментов соответствует № сегмента и содержит начальный адрес таблицы страниц, входящих в данный сегмент. Адрес таблицы страниц № которой = № страницы, входящей в выбранный сегмент, таблица страниц содержит начальный физический адрес страницы в ОП. Часть страниц сегмента могут находится в ОП, а часть или остальные во внешней.

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

В общем случае преобразование адреса происходит в 2 этапа и требует 2-х дополнительных обращений к ОП.

  1.  Первый этап. Начальный адрес таблицы сегментов, установленный в управляющем регистре суммируется с № сегмента из виртуального адреса в PгBA. В результате образуется адрес (№ строки), по которому из ОП считывается строка таблицы сегментов, содержащая адрес начала и длину таблицы страниц для данного сегмента.
  2.  Второй этап. Полученный адрес начала таблицы страниц суммируется с № страницы из виртуального адреса, при этом образуется адрес, по которому из ОП считывается строка таблицы страниц содержащая физический адрес данной страницы; если эта страница есть в ОП. Тогда этот адрес = № физической страницы заносится в старшие разряды регистра физического адреса, а в младшие заносятся № байта из регистра виртуального адреса. Формирование физического адреса на этом завершается.

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

Аналогично в старшие разряды регистра физического адреса передается новый № физической страницы, а в младший – № байта. Физический адрес сформирован. Выполняется запрошенное программой обращение к ОП.

Рисунок 4.10 - Преобразование виртуального адреса в физический

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

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

4.7 Организация КЭШ-памяти.

Увеличение быстродействия кэш-памяти. К методам  увеличения быстродействия системы памяти, использующей КЭШ, можно относяти:

  •  использование 2-х или даже 3-х уровней КЭШ;
  •  разделение КЭШ на независимые кэш-команд и кэш-операндов;
  •  использование обходного КЭШ-буфера и т.д.

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

Второй метод основан на использовании разницы в доступе при выборке команд и операндов, и поэтому для каждого из них используется свой КЭШ.

Третий метод заключается в использовании обходного пути через буфер, который в случае пересылки блока из ОП в КЭШ позволяет, не дожидаясь окончания пересылки, осуществить доступ к его начальному адресу одновременно с началом пересылки.

Организация КЭШ-памяти. Структура некоторых ЭВМ содержит объединенную Кэш-память для фрагментов команд и данных, при этом в ряде случаев наряду с КЭШ сохраняется небольшой буфер на несколько команд. Существует несколько способов организации КЭШ-памяти наибольшее распространение получило адресно-ассоциативная организация КЭШ.В качестве примера рассмотрим организацию КЭШ в ЭВМ общего назначения. Единицей обмена и адресации является блок данных (смотри рис.4.12). Для иллюстрации механизма адресации и обмена все поля основной памяти условно разбито на отдельные страницы по горизонтали и колонки по вертикали.

Число страниц зависит от объема оперативной памяти. Так, при объеме 8 Мбайт число колонок в странице постоянно и равно 64. В результате такого разбиения каждая страница содержит 64 блока данных основной памяти по 32 байта, расположенных в ОП по последовательным адресам.

Емкость КЭШ намного меньше чем основной, но она может содержать блоки информации разных страниц ОП. Число колонок КЭШ равно числу колонок основной памяти, а число страниц обычно равно 4. Любой блок данных из определенной колонки ОП можно разместить в одном из блоков той же колонки КЭШ. КЭШ управляется 2-мя массивами: матрицей адресов(МА) и таблицей активности, не показанной на рисунке. Деление МА на колонки и строки одинаково с делением КЭШ. В каждой ячейке МА находится адрес страницы ОП (№ страницы); из которой перенесен блок донных, разряды достоверности данных и активности данных. А № колонки данных в КЭШ и ОП совпадает.

Процесс обмена блоками информации между ОП и КЭШ происходит так. При поступлении из процессора запроса на выборку информации из ОП по адресу (№) колонки из МА одновременно считываются адреса (№ страниц) всех блоков данных из этой колонки (по всем страницам МА). Адрес (№) страницы искомого блока ОП параллельно сравнивается с содержимым (№ стр.) всех 4-х ячеек МА данной колонки). Если сравнение произошло ( т.е. № КЭШ страницы совпал с № страницы блока ОП), то данные выбираются из КЭШ и передаются в процессор. При этом адрес блока КЭШ определяется так: № страницы определяется сигналом с соответствующей схемы сравнения; № которой совпадает с № страницы; а адрес (№) колонки совпадает с № колонки запрашиваемого блока данных, т.е. с № колонки, содержащемуся в разрядах 13-18, а адрес байта- разрядами 19-23 адреса обращения. Если сравнение не произошло, то требуемого блока в КЭШ нет и его необходимо считать с ОП. Обращение производится в ОП, блок данных заносится в КЭШ, а информация определяемая адресом обращения, передается непосредственно в процессор.

Блок данных, считанный из ОП, записывается в колонку КЭШ, № которой определяется № колонки ОП, замещая в ней блок, к которому дольше всего не было обращения.

В случае если процессор обращается для записи данных в ОП и при этом блок, информации в который производится запись (изменение) находится в КЭШ, то изменению должно подвергается содержимое как ОП, так и КЭШ, т.к. по условию КЭШ является точной копией данных, записанных в соответствующих блоках ОП. При этом при изменении блока в ОП соответствующий разряд достоверности в МА сбрасывается на «0».

По принципу записи результата для соблюдения одинаковости данных в ОП и КЭШ различают:

  •  КЭШ “с обратной записью” – результаты операций прежде, чем их записать в ОП, фиксируются в КЭШ, а затем контроллер КЭШ самостоятельно переписывает эти данные в ОП;
  •  КЭШ “со сквозной записью” – результаты операций одновременно и параллельно записываются и в КЭШ и в ОП.



1. Учет амортизации основных средств
2. Луи Виктор де Бройль родился в 1892 году в городе Дьюпене Франция
3. ПАРТИЯ ВЕЛИКОЕ ОТЕЧЕСТВО Утвержден решением Внеочередного Съезда Всероссийской политической партии
4. Ревизия основных средств
5. Соціокультурний діалог в умовах глобалізації і мусульманського ренесансу
6. Тема 10 Совокупный спрос и совокупное предложение Вариант 1 1
7. варианты стабилизационной политики фискальной кредитноденежной монитарной
8. Контрольная работа- Назначение и состав стандартов ИСО 9000
9. Август 21 Краткая характеристика предприятия 2
10. Курсовая работа- Понятие доказательства в гражданском процессе
11. СОШ с Алексашкино Питерского района Саратовской области Праздник Осенний листопад для
12. Реферат- Личностно-развивающее образование в современной педагогике
13. Контрольная работа 1 Аминокислоты белки
14. темами массового обслуживания СМО
15. .psychitry.u-books-religion-pper25
16. і Функціональне призначення будівлі
17. Расчет винта Расчет гребного винта осуществляется при помощи модуля Wint и заключается в опр
18. Правила приготовления настоев, настоек, соков и других лекарственных форм из растительного сырья
19. Соціальна політика як складова демократичного розвитку суспільства
20. Тема1 Основные понятия о государстве праве и государственноправовых явлениях