Презентация «Управление распределением памяти в ЭВМ»
Тема 1.8. Управление распределением памяти в ЭВМ
Организация виртуальной памяти. Концепции виртуальной памяти Под виртуальной памятью понимается такой способ организации двухуровневой памяти (первый уровень – ОЗУ, второй – внешняя дисковая память), при котором эта память воспринимается пользователем и, соответственно, программами, как большая одноуровневая память. При этом все пересылки между уровнями памяти являются невидимыми (прозрачными) для выполняемых программ. Поддержка механизмов виртуальной памяти реализуется специальными аппаратными и программными средствами. Аппаратные средства в современных компьютерах обычно представлены специальным блоком MMU – Memory Management Unit, входящим в состав центрального процессора (CPU). В отношении процессоров семейства Intel семейства 80х86 этот блок впервые появился в процессоре Intel 80286 и был предназначен для реализации сегментированной виртуальной памяти. Начиная со следующей модели Intel 80386, была реализована аппаратная поддержка как сегментной, так и страничной организации памяти. При этом блок MMU был разделен на две относительно независимые части в виде: SU – Segment Unit; PU – Page Unit.
Программные средства поддержки виртуальной памяти входят в состав ОС, точнее, в ее ядро и обычно называются супервизором памяти. Виртуальная организация памяти базируется на разделении как основной, так и внешней памяти на блоки. Переменная длина блока является типичной для сегментной организации, фиксированная длина блока – для страничной. Предполагается, что во внешней дисковой памяти содержатся все используемые блоки, в то время как в основной памяти - лишь копии некоторых из них. Естественно, что в любой момент времени в основной памяти содержатся копии именно тех блоков, к которым в последнее время осуществлялись обращения со стороны ЦП.
Сегментная организация виртуальной памяти опирается на логическую структуру программы (представление программы в виде совокупности логических единиц, называемых сегментами, например, сегмент кода, данных, стека). При этом, естественно, допускается использование в программе многих сегментов кода и данных, например, реализация процедур или программ в виде отдельных сегментов. Основным недостатком сегментной организации памяти является так называемый эффект фрагментации. В свою очередь страничная организация памяти более привязана к физической реализации, но совершенно не отражает логику самой программы. Первое упоминание об организации прозрачных для пользователя пересылок между основной и внешней памятью появилось при разработке вычислительной машины Atlas в 1961 году. При использовании виртуальной памяти одним из базовых механизмов является механизм преобразования (трансляции) логического (виртуального) адреса в физический.
Ассоциативная память (АП) или Ассоциативное запоминающее устройство (АЗУ) является особым видом машинной памяти, используемой в приложениях очень быстрого поиска. В отличие от обычной машинной памяти (памяти произвольного доступа, или RAM), в которой пользователь задает адрес памяти и ОЗУ возвращает слово данных, хранящееся по этому адресу, АП разработана таким образом, чтобы пользователь задавал слово данных, и АП ищет его во всей памяти, чтобы выяснить, хранится ли оно где-нибудь в нем. Если слово данных найдено, АП возвращает список одного или более адресов хранения, где слово было найдено (и в некоторых архитектурах, также возвращает само слово данных, или другие связанные части данных). .
Страничная память — способ организации виртуальной памяти, при котором единицей отображения виртуальных адресов на физические является регион постоянного размера (т. н. страница). Типичный размер 4096 байт, для некоторых архитектур до 128 КБ. Страничная память — способ организации виртуальной памяти, при котором единицей отображения виртуальных адресов на физические является регион постоянного размера (т. н. страница). Типичный размер 4096 байт, для некоторых архитектур до 128 КБ. Решаемые задачи страничной памяти: поддержка изоляции процессов и защиты памяти путём создания своего собственного виртуального адресного пространства для каждого процесса; поддержка изоляции области ядра от кода пользовательского режима; поддержка памяти «только для чтения» и неисполняемой памяти; поддержка отгрузки давно не используемых страниц в область подкачки на диске (см. свопинг); поддержка отображённых в память файлов, в том числе загрузочных модулей.
Защита памяти в мультипрограммных ЭВМ. При мультипрограммном режиме работы ЭВМ в ее памяти одновременно могут находиться несколько независимых программ. Поэтому необходимы специальные меры по предотвращению или ограничению обращений одной программы к областям памяти, используемым другими программами. Программы могут также содержать ошибки, которые, если этому не воспрепятствовать, приводят к искажению информации, принадлежащей другим программам. Последствия таких ошибок особенно опасны, если разрушению подвергнутся программы операционной системы. Другими словами, надо исключить воздействие программы пользователя на работу программ других пользователей и программ операционной системы. Следует защищать и сами программы от находящихся в них возможных ошибок. Таким образом, средства защиты памяти должны предотвращать: неразрешенное взаимодействие пользователей друг с другом; несанкционированный доступ пользователей к данным; повреждение программ и данных из-за ошибок в программах; намеренные попытки разрушить целостность системы; использование информации в памяти не в соответствии с ее функциональным назначением.