Память
Базовый регистр позволяет программе ссылаться на любую часть памяти,
следующую за хранящейся в ней адресом. Предельный регистр запрещает программе обращение к
памяти за границы программы. С помощью этой схемы решаются обе задачи защиты и перемещения
программ. В результате проверки и преобразования адрес, сформированный программой и
называемый виртуальным, переводится в адрес, используемый памятью и называемый физическим.
Устройство, которое выполняет проверку и преобразование, называется диспетчером памяти -
MMU (Memory Management Unit). Оно расположено в ЦП.
Более сложный диспетчер памяти содержит две пары базовых и предельных регистров. Одна пара - для текста программы, другая - для данных. Появляется возможность делить одну и ту же программу между несколькими пользователями и при этом хранить в памяти только одну копию программы.
Из-за различий в количестве памяти, требующейся для разных
программ, их трудно компактно разместить в ОЗУ. Поэтому разработаны системы со страничной
организацией памяти, когда программа разбивается на блоки фиксированного размера - страницы
(1 страница = 4 Кб). В этом случае обращение программы к ячейке памяти происходит по
виртуальной памяти, адрес которой состоит из номера страницы и смещения относительно ее
начала. Страницы одной и той же программы могут быть разбросаны по всему ОЗУ. Система
разбивки на страницы обеспечивает динамическое соответствие между виртуальным адресом,
использующимся программой, и реальным (физическим) адресом ОЗУ. Если программа обращается к
странице, отсутствующей в ОЗУ, то диспетчер памяти обнаруживает это и загружает недостающую
страницу.
На характеристики памяти в основном влияют два аспекта:
1) кэш скрывает низкую скорость ОЗУ. Когда ОС переключается от одной программы к другой, кэш остается заполненным данными первой программы, а необходимые строки новой программы должны загружаться из физической памяти. Эта операция может стать главной причиной снижения производительности, если происходит слишком часто;
2) при переключении программ регистры управления памятью должны меняться. Вне зависимости от количества этих регистров эта операция занимает некоторое время. Переключение от одной программы к другой - переключение контекста.
предыдущаяследующая