Страница оперативной памяти это

Обновлено: 04.07.2024

Модуль 5. Управление основной памятью

Динамическая страничная организация памяти - это страничная организация РОП с динамическим размещением страниц процессов по их запросам (Intel 386 – размер страницы 4 Кбайт)

  1. Допустимость максимального объема выполняющихся программ, простота их программирования.
  2. Значительное уменьшение временной фрагментации, максимальное использование РОП и максимальный уровень мультипрограммирования.
  1. Произвольное разбиение процесса на страницы плохо учитывает свойство локальности программ и не устраняет полностью временную фрагментацию, а также создает трудности совместного использования и защиты общих программ и данных.
  2. Сложность управления памятью, накладные расходы на хранение таблиц отображения страниц. При неоптимальных рабочих множествах страниц и размерах страниц возможна пробуксовка процессов ("сплошной обмен").

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

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

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

2.Большой размер страницы приводит к тому, что в ОП здесь помещены команды и данные, к которым не было обращений.

3.Ввод-вывод будет эффективен при больших размерах страниц.

4.Свойство локальности распространяется, как правило, на малые участки программ.

5.При малых размерах страниц потери на внутреннюю фрагментацию уменьшаются.

Вывод: необходимость небольших размеров страницы.

Экспериментальные результаты поведения программы в ВС со страничной организацией ВП показывают:

1.Когда процесс начинается выполняться, он обращается к большему проценту своих страниц.

2.При постоянном объеме выделенной ОП с увеличением размера страницы растет число прерываний по отсутствию нужной страницы.

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

4.Число команд, выполненных на странице до передачи управления другой странице, как правило, невелико.

В системе с сегментной организацией памяти снимается ограничение на фиксированный размер блока и выполняется соответствующее произвольное разбиение АП процесса на сегменты.

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

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

и их различных комбинаций.

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

В сегментной организации все сегменты различного размера и могут размещаться в несмежных участках РОП.

1.Уменьшение временной фрагментации, так как естественно учитывается свойство локальности программ.

2.Легко совмещается с использованием общих процессов, поскольку данные и программа целиком находятся в одном блоке.

3.Возможность обеспечить четкое управление доступом к сегменту со стороны общих процессов и их полную защиту.

1.Более сложное управление и защита ОП. Здесь уже не достаточно пары граничных регистров, а необходимы ключи защиты индивидуальных сегментов памяти.

2.Может возникнуть временная фрагментация для больших размеров процедур и данных.

Как видно из названия, данный метод представляет собой комбинацию страничного и сегментного распределения памяти и, вследствие этого, сочетает в себе достоинства обоих подходов. Виртуальное пространство процесса делится на сегменты, а каждый сегмент в свою очередь делится на виртуальные страницы, которые нумеруются в пределах сегмента. Оперативная память делится на физические страницы. Загрузка процесса выполняется операционной системой постранично, при этом часть страниц размещается в оперативной памяти, а часть на диске. Для каждого сегмента создается своя таблица страниц, структура которой полностью совпадает со структурой таблицы страниц, используемой при страничном распределении. Для каждого процесса создается таблица сегментов, в которой указываются адреса таблиц страниц для всех сегментов данного процесса. Адрес таблицы сегментов загружается в специальный регистр процессора, когда активизируется соответствующий процесс.

Рисунок.6.3 Преобразование адреса страницы при чисто ассоциативном отображении.

Трехуровневая адресация использует две таблицы отображения (таблица сегментов + таблица страниц сегментов).

S - номер сегмента; P- номер страницы; d - смещение.

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

Обычная адресуемая память - это память, к которой обращаются по адресу и выбирают значение.

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

Image55.jpg (21660 bytes)

Достоинства странично-сегментной организации:

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

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

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

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

Пример: ЕС ЭВМ ряд 2 и IBM PC

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

Большинство систем виртуальной памяти используют технику, называемую страничной организацией памяти [32, 37]. Любой процесс, реализуемый в компьютере, может обратиться к множеству адресов в памяти. Адреса могут формироваться с применением индексации, базовых регистров, сегментных регистров и другими путями. Эти программно формируемые адреса, называемые виртуальными адресами, формируют виртуальное адресное пространство . На компьютерах без виртуальной памяти виртуальные адреса подаются непосредственно на шину памяти и вызывают для чтения или записи слово в физической памяти с тем же самым адресом.

Когда используется виртуальная память , виртуальные адреса не передаются напрямую шиной памяти. Вместо этого они передаются диспетчеру памяти ( MMU – Memory Management Unit), который отображает виртуальные адреса на физические адреса памяти, как показано на рис. 6.9. Здесь диспетчер памяти показан как часть микросхемы процессора, как обычно и бывает чаще всего. Но логически он мог бы быть отдельной микросхемой, как было в недавнем прошлом.

Диспетчер памяти

Все имеющееся в настоящее время множество реализаций виртуальной памяти различается в основном способом структуризации виртуального адресного пространства.

В настоящее время выделяют три метода реализации виртуальной памяти.

  1. Страничная виртуальная память организует перемещение данных между основной памятью и диском страницами – частями виртуального адресного пространства фиксированного и сравнительно небольшого размера.
  2. Сегментная виртуальная память предусматривает перемещение данных сегментами – частями виртуального адресного пространства произвольного размера, полученного с учетом смыслового значения данных.
  3. Сегментно- страничная виртуальная память использует двухуровневое деление: виртуальное адресное пространство делится на сегменты, а затем сегменты делятся на страницы. Единицей перемещения данных является страница.

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

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

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

Вся оперативная память машины также делится на части такого же размера, называемые физическими страницами (или блоками, или кадрами). Размер страницы выбирается равным степени двойки: 1024, 2048, 4096 байт и т.д. Это позволяет упростить механизм преобразования адресов.

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

Таблицы страниц виртуальной памяти

Запись таблицы ( дескриптор страницы) включает следующую информацию:

  1. номер физической страницы (N ф.с.), в которую загружена данная виртуальная страница ;
  2. признак присутствия Р, устанавливаемый в единицу, если данная страница находится в оперативной памяти;
  3. признак модификации страницы D, который устанавливается в единицу всякий раз, когда производится запись по адресу, относящемуся к данной странице;
  4. признак обращения А к странице, называемый также битом доступа, который устанавливается в единицу при каждом обращении по адресу, относящемуся к данной странице;
  5. другие управляющие биты, служащие, например, для целей защиты или совместного использования памяти на уровне страниц.

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

Поскольку процесс может задействовать большой объем виртуальной памяти (например, в Windows 2000 он равен 2 32 = 4 Гбайт), при использовании страницы объемом 4 Кбайт (2 12 ) потребуется 2 20 записей в таблице страниц для каждого процесса. Понятно, что выделять такое количество оперативной памяти под таблицы страниц нецелесообразно. Для преодоления этой проблемы большинство схем виртуальной памяти хранит таблицы страниц не в реальной, а в виртуальной памяти. Это означает, что сами таблицы страниц становятся объектами страничной организации. При работе процесса как минимум часть его таблицы страниц должна располагаться в основной памяти, в том числе запись о странице, выполняющейся в настоящий момент. Адрес таблицы страниц включается в контекст процесса . При активизации очередного процесса ОС загружает адрес его таблицы страниц в специальный регистр .

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

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

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

Виртуальный адрес при страничном распределении может быть представлен в виде пары ( P, Sv ), где Р – номер виртуальной страницы процесса ( нумерация страниц начинается с 0), а Sv – смещение в пределах виртуальной страницы (рис. 6.11). Физический адрес также может быть представлен в виде пары ( N, Sf ), где N – номер физической страницы, а Sf – смещение а пределах физической страницы. Задача подсистемы виртуальной памяти состоит в отображении пары значений ( P, Sv ) в пару ( N, Sf ).

Преобразование виртуального адреса

Чтобы понять механизм реализации этого отображения, следует остановиться на двух базисных свойствах страничной организации. Как уже отмечалось, объем страницы, как виртуальной, так и физической, выбирается равным степени двойки – 2 к ( k = 8 и более). Отсюда следует, что смещение Sv и Sf может быть получено отделением k младших разделов в двоичной записи виртуального и, соответственно, физического адреса страницы. При этом оставшиеся старшие разделы адреса представляют собой двоичную запись номера виртуальной и, соответственно, физической страницы. Дополнив эти номера к нулям, можно получить начальный адрес виртуальной и физической страниц.

Второе свойство – линейность адресного пространства виртуальной и физической страницы – приводит к тому, что Sf = Sv. Отсюда следует простая схема преобразования виртуального адреса в физический.

При обращении к памяти по некоторому виртуальному адресу ( P, Sv ) аппаратные схемы процессора выполняют следующие действия.

\sum

  1. Из специального регистра процессора извлекается начальный адрес АТ таблицы страниц активного процесса. С помощью сумматора по значениям АТ, Р, L (длина отдельной записи в таблице страниц) определяется адрес нужной записи в таблице страниц:

В итоге полученный физический адрес оперативной памяти представляется парой значений ( N, Sf ).

Рассмотрим пример, поясняющий основные характеристики организации страничной виртуальной памяти. Пусть компьютер имеет оперативную память объемом Еоп = 256 Мбайт , размер страницы выбран равным Естр= 4 Кбайт . В этом случае количество физических страниц равно

Для отображения физического адреса произвольного байта оперативной памяти потребуется K = log2 256*20 2 0 = 28 двоичных разрядов.

Число разрядов для отображения смещения в странице M = log2 4 Кбайт = log2 4096 = 12 .

Если процессор имеет 32-разрядную структуру, то на номер виртуальной страницы отводится 32-12=20 двоичных разрядов. Таким образом, число виртуальных страниц равно Nв = 220 (примерно 1 млн виртуальных страниц ).

Для каждой виртуальной страницы в таблице страниц должна быть запись , содержащая номер виртуальной страницы (20 двоичных разрядов), начальный адрес соответствующей ей физической страницы плюс дополнительные разряды, характеризующие свойства страницы (присутствие, модификация, обращение и т.п.), на которые потребуется 1 байт . Поскольку адрес начала физической страницы кратен 4096, то на него достаточно 28 – 12 = 16 двоичных разрядов (остальные 12 разрядов заполняются нулями). Таким образом, одна запись таблицы страниц займет 20 + 16 + 8 = 44 двоичных разрядов или 6 байт . Общий объем таблицы страниц составит 6 * Nв = 6 Мбайт .

Реально при выборе структуры записи таблицы страниц нужно учитывать следующие факторы. Современные компьютеры позволяют наращивать объем оперативной памяти (например, в ПК она может почти достигать объема виртуальной памяти и даже более). Поэтому на адрес физической страницы в нашем примере следует выделить 32-12 = 20 двоичных разрядов. С другой стороны, нет необходимости в записи (дескрипторе) виртуальной страницы иметь поле с номером виртуальной страницы (20 разрядов), так как адрес нужной записи можно вычислять, как это было рассмотрено выше. Следовательно, в нашем примере длина записи должна быть равной 32 - 12 + 8 = 28 двоичным разрядам, т.е. с округлением до целого числа байт – 4 байт . Таким образом, для каждого выполняющегося в компьютере процесса ОС должна создать страничную таблицу размером 4 * Nв байт = 5 * 2 20 = 4 Мбайт .

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

Мы часто встречаем такие термины ОЗУ и RAM. ОЗУ означает- оперативно запоминающее устройство. И RAM- Random Access Memory. Порой многие совсем не понимают, что они означают. В сущности, это термины означают одно и то же, оперативную память компьютера, а попросту говоря оперативку. Наверное, вы обращали внимание, что при установке на компьютер какой-либо программы или игры, обязательно указывается минимальные требования ПК. Например, при установке программы указаны минимальные требования. Что это значит?

  1. CPU 1,8 ГГц- это тактовая частота процессора.
  2. 512 МБ это есть требования к оперативной памяти вашего компьютера.
  3. HDD-3 ГБ именно столько свободного дискового пространства должно быть на вашем компьютере при установке данной программы.

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

Как известно любая программа выполняется в процессоре ПК. Файлы в программе считываются с жёсткого диска, а оперативная память в данном случае служит посредником между процессором и жестким диском. То есть, в оперативной памяти хранятся программы, которые выполняются в данный момент времени. От объема оперативки и её скорости, зависит быстрота выполнения программ, а также то, какое количество программ она может хранить у себя в памяти одновременно. Все данные, которые содержатся в оперативной памяти, доступны только при включенном компьютере. При выходе из программы, стираются все файлы из оперативной памяти. Поэтому, при выходе из программы, обязательно нужно сохранить сделанные изменения на диске или другом устройстве внешней памяти с помощью команды СОХРАНИТЬ(SAVE).

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

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

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

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

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

Размер страницы обычно выбирается равным степени двойки: 512, 1024, 4096 байт и т.д., это позволяет упростить механизм преобразования адресов.

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

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

Записи таблицы называются дескрипторами страниц. Они включают следующую информацию:

– номер физической страницы, в которую загружена данная виртуальная страница;

– признак присутствия, устанавливаемый в единицу, если виртуальная страница находится в оперативной памяти;

– признак модификации страницы, который устанавливается в единицу каждый раз, когда производится запись по адресу, относящемуся к данной странице;

– признак обращения к странице (также называется битом доступа), который устанавливается в единицу при каждом обращении по адресу, относящемуся к данной странице.

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

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

При каждом обращении к памяти происходит чтение из таблицы страниц информации о виртуальной странице, к которой произошло обращение:

– выполняется поиск номера виртуальной страницы, содержащей требуемый адрес;

– затем по этому номеру определяется нужный элемент таблицы страниц;

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

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

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

– дольше всего не использовавшаяся страница,

– первая попавшаяся страница,

– страница, к которой в последнее время было меньше всего обращений.

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

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

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


Рис.1. Механизм преобразования виртуального адреса в физический.

Виртуальный адрес при страничном распределении может быть представлен в виде пары (p, s), где p – номер виртуальной страницы процесса (нумерация страниц начинается с 0), а s – смещение в пределах виртуальной страницы.

Физический адрес также может быть представлен в виде пары (n, s), где n – номер физической страницы, а s – смещение в пределах физической страницы.

Задача подсистемы виртуальной памяти состоит в отображении (p, s) в (n, s).

Учитывая, что размер страницы равен , смещение s может быть получено простым отделением k младших разрядов в двоичной записи виртуального адреса. Оставшиеся старшие разряды представляют собой двоичную запись номера страницы p.

При каждом обращении к оперативной памяти аппаратными средствами выполняются следующие действия:

1) на основании начального адреса таблицы страниц, номера виртуальной страницы и длины записи в таблице страниц определяется адрес нужной записи в таблице;

2) из этой записи извлекается номер физической страницы;

3) к номеру физической страницы присоединяется смещение (младшие разряды виртуального адреса).

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

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

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

Читайте также: