Слайд 2Управление памятью
Оперативная память – важнейший ресурс вычислительной системы, требующий управления со стороны
ОС. Причина – процессы и потоки хранятся и обрабатываются в оперативной памяти.
Управление памятью объединяет три задачи:
Динамическое распределение памяти
Отображение виртуальных адресов программы на физические адреса
Реализация защиты памяти
Слайд 3Виртуальная память
Виртуальная память представляет собой совокупность всех ячеек памяти – оперативной и
внешней. Она имеет сквозную нумерацию от нуля до предельного значения адреса. Принцип виртуальной памяти предполагает, что пользователь имеет дело с кажущейся одноуровневой памятью, объем которой равен всему адресному пространству системы независимо от объема ОЗУ и объема памяти, необходимой для других программ, участвующих в мультипрограммной обработке.
Слайд 4
Способы управления виртуальной памятью
Страничный
Сегментный
странично-сегментный
Слайд 5Страничная память
Способ организации виртуальной памяти, при котором единицей отображения виртуальных адресов на физические
является регион постоянного размера (т. н. страница). Типичный размер страницы — 4096 байт, для некоторых архитектур — до 128 КБ.
Поддержка такого режима присутствует в большинстве 32-битных и 64-битных процессоров. Такой режим является классическим для почти всех современных ОС, в том числе WindowsПоддержка такого режима присутствует в большинстве 32-битных и 64-битных процессоров. Такой режим является классическим для почти всех современных ОС, в том числе Windows и семейства UNIXПоддержка такого режима присутствует в большинстве 32-битных и 64-битных процессоров. Такой режим является классическим для почти всех современных ОС, в том числе Windows и семейства UNIX. Широкое использование такого режима началось с процессора VAX и ОС VMS с конца 70-х годов (по некоторым сведениям, первая реализация). В семействе x86 поддержка появилась с поколения 386, оно же первое 32-битное поколение.
Слайд 6Сегментная адресация памяти
Схема логической адресации памяти компьютера в архитектуре x86. Линейный адрес
конкретной ячейки памяти, который в некоторых режимах работы процессора будет совпадать с физическим адресом, делится на две части: сегмент и смещение. Сегментом называется условно выделенная область адресного пространства определённого размера, а смещением — адрес ячейки памяти относительно начала сегмента. Базой сегмента называется линейный адрес (адрес относительно всего объёма памяти), который указывает на начало сегмента в адресном пространстве. В результате получается сегментный (логический) адрес, который соответствует линейному адресу база сегмента+смещение и который выставляется процессором на шину адреса.
Слайд 7Связь логического и физического адресов
Логический адрес в страничной системе – упорядоченная пара
(p,d), где p – номер страницы в виртуальной памяти, а d – смещение в рамках страницы p, на которой размещается адресуемый элемент.
Разбиение адресного пространства на страницы осуществляется вычислительной системой незаметно для программиста.
Адрес является двумерным лишь с точки зрения операционной системы, а с точки зрения программиста адресное пространство процесса остается линейным.
Слайд 8странично-сегментный
Организация виртуальной памяти позволяет совместно использовать одни и те же сегменты данных
и программного кода в виртуальной памяти разных задач (для каждой виртуальной памяти существовала отдельная таблица сегментов, но для совместно используемых сегментов поддерживались общие таблицы страниц).
Слайд 9Схема адресации при страничной организации
Слайд 10Преобразование логического адреса при сегментной организации