Физическая и виртуальная память



Обычно предполагается, что программы пользователей остаются в основной памяти до момента завершения. В этом случае при работе ВС встает проблема недостатка оперативной памяти для размещения в ней кода и данных всех выполняющихся программ.

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

Эта проблема актуальна и для однопрограммных систем: для загрузки на выполнение большой программы может не оказаться места в памяти.

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

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

Далее рассматриваются различные способы “увеличения вмещаемости” памяти.


Дата добавления: 2016-01-05; просмотров: 15; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!