Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория вычислительных процессов (1).doc
Скачиваний:
3
Добавлен:
01.03.2025
Размер:
9.39 Mб
Скачать

25.09.12. Лекция 5. Архитектура памяти.

Архитектура памяти это механизм разделения доступной памяти, собственным прикладным программам и процессам и процедура формирования адреса выделяемой ячейки. Классическим способом адресации называется сегментная фрагментация. Адрес ячейки памяти при сегментной адрессации формируется из двух состовляющих [Адрес ЯП]=[Адрес сегмента]:[смещение от начального сегмента].

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

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

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

  1. Сегмент стека.

  1. Сегменты не иницыализированных данных в него попадают данные не имеющие начальные значения.

Исполняемый модуль программы всегда содержит образ всех сегментов и не обязан содержать сегмент не иницыализированных данных. Различные модели памяти имеют различное количество сегментов кода и сегментов данных при этом, в одних моделях хватает коротких 16-ти битных указателей, в других моделях необходимо 32-х и 64-х битная адресация(такие указатели называют дальними). Определение модели памяти поддерживается на уровне компилятора.

Виды моделей памяти:

  1. TINY в ней данные и код находятся в одном сегменте, используются только короткие указатели, а исполняемый модуль имеет только com формат.

  1. SMALL сегменты кода их данных разделены, их всего два используются короткие указатели.

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

  1. MEDIUM 1 сегмент данных/много сегментов кода, так же могут быть использованы дальние указатели.

  1. LARGE много сегментов кода и много сегментов данных, используются дальние указатели.

  1. HUGE много сегментов кода и много сегментов данных, принудительно все указатели переводятся в дальние.

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

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

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

Еще одним механизмом управления виртуальной памяти является механизм своппинга, с его помощью происходит управление ВП за три основных этапа:

  1. Управление пространством на устройстве куда выгружаются страницы.

  1. Контроль выгрузки областей памяти на устройство выгрузки.

  1. Подкачка фрагментов в основную память.

Этот механизм может использовать как отдельные файлы своп файлы, так и области на диске которые он бронирует.

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