Лекция "Концепция виртуальной памяти"
Оценка 4.8

Лекция "Концепция виртуальной памяти"

Оценка 4.8
Лекции
docx
информатика
Взрослым
15.03.2017
Лекция "Концепция виртуальной памяти"
Общепринятая в настоящее время концепция виртуальной памяти появилась достаточно давно. Она позволила решить целый ряд актуальных вопросов организации вычислений. Прежде всего к числу таких вопросов относится обеспечение надежного функционирования мультипрограммных систем. В любой момент времени компьютер выполняет множество процессов или задач, каждая из которых располагает своим адресным пространством. Было бы слишком накладно отдавать всю физическую память какой-то одной задаче тем более, что многие задачи реально используют только небольшую часть своего адресного пространства. Поэтому необходим механизм разделения небольшой физической памяти между различными задачами. Виртуальная память является одним из способов реализации такой возможности.
тема 1 вопрос 27.docx
тема 1 вопрос 27 Концепция виртуальной памяти Общепринятая в настоящее время концепция виртуальной памяти появилась достаточно  давно. Она позволила решить целый ряд актуальных вопросов организации вычислений.  Прежде всего к числу таких вопросов относится обеспечение надежного  функционирования мультипрограммных систем.  В любой момент времени компьютер выполняет множество процессов или задач, каждая из  которых располагает своим адресным пространством. Было бы слишком накладно отдавать всю физическую память какой­то одной задаче тем более, что многие задачи реально  используют только небольшую часть своего адресного пространства. Поэтому необходим  механизм разделения небольшой физической памяти между различными задачами.  Виртуальная память является одним из способов реализации такой возможности. Она  делит физическую память на блоки и распределяет их между различными задачами. При  этом она предусматривает также некоторую схему защиты, которая ограничивает задачу  теми блоками, которые ей принадлежат. Большинство типов виртуальной памяти  сокращают также время начального запуска программы на процессоре, поскольку не весь  программный код и данные требуются ей в физической памяти, чтобы начать выполнение.  Другой вопрос, тесно связанный с реализацией концепции виртуальной памяти, касается  организации вычислений на компьютере задач очень большого объема. Если программа  становилась слишком большой для физической памяти, часть ее необходимо было хранить  во внешней памяти (на диске) и задача приспособить ее для решения на компьютере  ложилась на программиста. Программисты делили программы на части и затем определяли те из них, которые можно было бы выполнять независимо, организуя оверлейные  структуры, которые загружались в основную память и выгружались из нее под управлением программы пользователя. Программист должен был следить за тем, чтобы программа не  обращалась вне отведенного ей пространства физической памяти. Виртуальная память  освободила программистов от этого бремени. Она автоматически управляет двумя  уровнями иерархии памяти: основной памятью и внешней (дисковой) памятью.  Кроме того, виртуальная память упрощает также загрузку программ, обеспечивая  механизм автоматического перемещения программ, позволяющий выполнять одну и ту же  программу в произвольном месте физической памяти.  Системы виртуальной памяти можно разделить на два класса: системы с фиксированным  размером блоков, называемых страницами, и системы с переменным размером блоков,  называемых сегментами. Ниже рассмотрены оба типа организации виртуальной памяти.  Термин виртуальная память ассоциируется с возможностью адресовать пространство  памяти, большее, чем емкость основной (реальной, физической) памяти конкретного  процессора. Концепция виртуальной памяти впервые была реализована в компьютерной системе Atlas,  созданной в Манчестерском университете в Англии в 1960 г. При выполнении программы предполагается, что все команды программы и данные  содержатся в основной памяти, так как обращение к не существующим в основной памяти  командам и данным невозможно. Следовательно, общее пространство памяти, к которому  может обращаться программа, ограничивается емкостью основной памяти, т. е.  аппаратными средствами. Однако было бы удобнее составлять программу, не учитывая  емкость основной памяти. Суть концепции виртуальной памяти заключается в том, что  адреса, к которым обращается выполняющаяся программа (задача, процесс), отделяются  от адресов, реально существующих в основной памяти. Те адреса, на которые делает  ссылки выполняющаяся программа, называются виртуальными (логическими) адресами, а те адреса, которые существуют в основной памяти, называются реальными или  физическими. Диапазон виртуальных адресов, к которым может обращаться  выполняющаяся программа, называется пространством виртуальных адресов этой  программы. Диапазон физических адресов, реально существующих в конкретном процессоре, называется пространством физических адресов этого процессора. Для  программы создается единое виртуальное адресное пространство – виртуальная  (логическая) память, в которой физическая ограниченность емкости основной памяти  скрыта от нее, т. е. создается видимость произвольной адресации с отсутствием  ограничения на емкость используемой памяти, что значительно облегчает  программирование. Несмотря на то, что программы обращаются к виртуальной памяти (виртуальным адресам), процессор в действительности должен работать с реальной памятью. Поэтому во время  выполнения программы виртуальные адреса необходимо преобразовывать в реальные  (физические), причем это нужно делать быстро, так как в противном случае  производительность системы будет снижаться до неприемлемых уровней и тем самым  практически сведутся на нет те преимущества, которые призвана обеспечить концепция  виртуальной памяти. Соответствие между физическими и виртуальными адресами  устанавливается совместно аппаратными средствами и операционной системой, причем это делается прозрачно (невидимо) для программиста. Для установления соответствия между виртуальными и физическими адресами на  практике используется механизм динамического преобразования адресов DAT, который  обеспечивает преобразование адресов во время выполнения программы. Этот механизм  обладает следующим свойством (рис. 26): смежные адреса виртуального адресного  пространства не обязательно будут смежными в физической памяти. Это свойство  называют искусственной смежностью. Оно позволяет устранять фрагментацию  физической памяти. Таким образом, программист освобождается от необходимости учитывать размещение  своих программ и данных в физической памяти. Он получает возможность писать  программы наиболее естественным образом, прорабатывая только детали алгоритма и  структуры программы и игнорируя конкретные особенности структуры аппаратных  средств, служащих для выполнения программы. При этом микропроцессорная система  может рассматриваться, как логическое средство, обеспечивающее реализацию  необходимых алгоритмов, а не как физическая система с уникальными характеристиками,  часть которых может лишь затруднить процесс проектирования программ. Рис. 26 Концепция виртуальной памяти требует применения двухуровневой схемы построения  памяти (рис. 27). Первый уровень – это основная память, в которой находятся выполняемые программы и в  которой должны размещаться данные, чтобы программа во время работы могла к ним  обращаться. С точки зрения виртуальной памяти это реальная или физическая память. Второй уровень – это внешняя память большой емкости, способная хранить программы и  данные, которые не могут все сразу уместиться в основной (реальной, физической) памяти  ограниченной емкости. С точки зрения виртуальной памяти это вспомогательная память. Рис. 27 Только небольшая часть процедур и данных каждой выполняемой программы, как правило, размещается в первичной памяти одновременно. Остальная часть хранится на устройствах  внешней памяти с быстрым прямым доступом. Таким образом, виртуальное адресное пространство размещается во внешней памяти,  например на магнитных дисках. Часть этого пространства, необходимая для выполнения  программ в данный момент, копируется в основную память. Виртуальная память – это способ организации основной памяти микропроцессорной  системы большой емкости с помощью внешней памяти или метод расширения  адресного пространства основной памяти за счет ее совместного использования с  внешней памятью, при котором достигается гибкое динамическое распределение памяти,  устраняется ее фрагментация и создаются значительные удобства для работы  программистов. Это удается достигнуть без заметного снижения производительности  системы ценой усложнения аппаратных средств и операционной системы и процессов их  функционирования. Принцип виртуальной памяти предполагает, что пользователь при  подготовке своей программы имеет дело не с физической основной памятью,  действительно (реально) работающей в составе микропроцессорной системы, а с  виртуальной (т. е. кажущейся) одноуровневой памятью, объем которой равен всему  адресному пространству, определяемому принятым в процессоре способом адресации  памяти (размером адресных полей в форматах команд и адресных регистров). Например, в  32­разрядных процессора фирмы Intel размер виртуального адресного пространства для  одной задачи составляет 64 Тбайт.

Лекция "Концепция виртуальной памяти"

Лекция "Концепция виртуальной памяти"

Лекция "Концепция виртуальной памяти"

Лекция "Концепция виртуальной памяти"

Лекция "Концепция виртуальной памяти"

Лекция "Концепция виртуальной памяти"
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.
15.03.2017