Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Занятие 14. Работа с виртуальной памятью






План занятия:

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

· Проблемы реализации виртуальной памяти. Фрагментация памяти

· Логическая и физическая адресация памяти

 

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

Различные виды памяти организованы в иерархию. На нижних уровнях такой иерархии находится более дешевая и медленная память большего объема, а по мере продвижения иерархией вверх память становится дороже и быстрее (а ее объем становится меньше). Самым дешевым и медленным запоминающим устройством является жесткий диск компьютера. Его называют также вспомогательным запоминающим устройством (secondary storage). Быстрее и дороже есть оперативная память, сохраняется в микросхемах памяти, установленных на компьютере, - такую ​ ​ память называть основной памятью (main memory). Еще более быстрыми средствами хранения данных являются различные кэши процессора, а объем этих кэшей еще более ограниченный.

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

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

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

Благодаря виртуальной памяти физическая память адресного пространства процесса может быть фрагментированной, поскольку основной объем памяти, которую занимает процесс, большую часть времени остается свободным. Есть так называемое правило «девяносто к десяти», или правило локализации, которое утверждает, что 90% обращений к памяти в процессе приходится на 10% его адресного пространства. Адреса можно перемещать так, чтобы основной памяти соответствовали только те разделы адресного пространства процесса, которые действительно используются в конкретный момент.

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

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

Проблемы реализации виртуальной памяти. Фрагментация памяти

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

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

Внешняя сводится к тому, что в результате выделения и последующего освобождения памяти в ней образуются свободные блоки малого размера - дыры (holes). Поэтому может возникнуть ситуация, при которой невозможно выделить непрерывный блок памяти размера N, поскольку нет ни одного непрерывного свободного блока, размер которого S> N, хотя в целом объем свободного пространства памяти превышает N.

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

Логическая и физическая адресация памяти

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

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

Физический адрес - адрес, которым оперирует микросхема памяти. Приложение в современных компьютерах никогда не имеет дела с физическими адресами. Специальное аппаратное устройство MMU (memory management unit - устройство управления памятью) отвечает за преобразование логических адресов в физические. Совокупность всех доступных физических адресов составляет физический адресное пространство. Итак, если в компьютере микросхемы па 128 Мбайт памяти, то именно такой объем памяти адресуют физически. Логично обычно адресуют значительно больше памяти.

1).







© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.