Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Управление памятью




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

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

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

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

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

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

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

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

Процедура сохранения и чтения виртуальных страниц называется своппингом (от англ swapping). В Windows размер виртуальной памяти составляет 232 байт (4 ггб). Всем работающим под Windows программам предоставляется пространство в виртуальной памяти. При этом каждая программа может адресоваться только в области, отведенной этой программе. Попытка извлечь или положить данные в виртуальную память за пределами своей области не будет выполнена. Таким образом осуществляется защита одних программ от возможного повреждения со стороны других программ. Исключение составляет ситуация, когда операционная система специально выделяет одну и ту же область для данных, используемых несколькими программами. Это делается для того, чтобы дать возможность обмениваться данными нескольким разными процессам.




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


Дата добавления: 2014-10-17; Просмотров: 541; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.054 сек.