top
logo

Сегодня читают

Управление памятью, виртуальная память, оперативная память.

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

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

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

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

Функции ОС по управлению памятью в мультипрограммной системе:

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

Дополнительные функции:

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

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

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

Типы адресов

Для идентификации переменных и команд на разных этапах цикла программы используются символьные номера (метки), виртуальные адреса и физические адреса:

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

Символьные номера присваивает пользователь при написании программы на алгоритмическом языке или ассемблере (имена переменных и входных точек программных модулей).

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

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

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

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

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

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

Виртуальное адресное пространство

Совокупность виртуальных адресов (ВА) процесса называется виртуальным адресным пространством (ВАП). Диапазон возможных адресов виртуального пространства у всех процессов является одним и тем же.

При использовании 32-разрядных виртуальных адресов диапазон возможных адресов виртуального пространства задается границами 0000000016 и FFFFFFFF16.

Каждый процесс имеет собственное ВАП – транслятор присваивает виртуальные адреса переменным и кодам каждой программе независимо.

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

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

Виртуальное адресное пространство

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

Необходимо различать максимально возможное ВАП процесса и назначенное (выделенное) процессу ВАП. В первом случае речь идет о максимальном размере ВАП, определяемом архитектурой компьютера, на котором работает ОС, и, в частности, разрядностью его схем адресации (32-битная, 64-битная и т.п.), например, при работе на компьютерах с 32-разрядными процессорами  Intel Pentium ОС может предоставить каждому процессу ВАП до 4 Гбайт.

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

Максимальный размер ВАП ограничивается только разрядностью адреса, присущей данной архитектуре компьютера и, как правило, не совпадает с объемом физической памяти, имеющейся в компьютере.

Поделись информацией с друзьями в: vkontakte facebook twitter yandex mail livejournal myspace google google-buzz blogger
Оцените предоставленную информацию:
Управление памятью, виртуальная память, оперативная память Автор/Переводчик: ()
Опубликована:2011-05-04 22:06:54 l Просмотров:9213
Рейтинг: рейтинг

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


Возможно вам будет интересно:

Характеристики компьютера Характеристики компьютера
Опубликована:2010-04-04 12:41:06 l Просмотров: 8996
Рейтинг: рейтинг

На этой странице, мы поговорим на такие темы как: Характеристики компьютера, Производительность компьютера, Разрядность компьютера и про все, что с этим связано.

Подробнее

Wi-Fi Wi-Fi
Опубликована:2010-03-29 17:33:54 l Просмотров: 5274
Рейтинг: рейтинг

Wi-Fi - это современная беспроводная технология соединения компьютеров в сеть или подключения их к Интернету. Технология обеспечивает работу в сети нескольких пользователей.

Подробнее

ROM ROM
Опубликована:2010-03-03 19:15:57 l Просмотров: 7084
Рейтинг: рейтинг

На этой страничке мы поговорим на такие темы, как : Память компьютера, Кэш-память, Запоминающие устройства, Оперативная память, а также уровни памяти.

Подробнее

Комментарии пользователей:

Эту статью, еще никто не комментировал.

Зарегистрируйтесь , и вы сможите оставлять комментарии.

Рекомендуем прочесть


Сегодня читают

Получи 1500 Gold бесплатно в World of tanks при покупке антивируса
Wargaming - и "Лаборатория Касперского" обьявили о начале совместной акции. Теперь при покупке лицензионного программного обеспечения Kaspersky Internet Security, Kaspersky CRYSTAL, а также Kaspersky ONE.
Бесплатная trial версия Diablo III - уже доступна для скачивания
Уже как три месяца мы наслаждаемся долгожданным релизом Diablo III. Счастливые обладатели лицензии, так же получили в комплекте ваучер, который дает возможность играть в Starter Edition версию.
GTA San Andreas - модифицирована движком GTA 4 (скачать мод)
Поклонники - легендарной серии игр Grand Theft Auto решили разработать глобальный мод, GTA San Andreas будет поставлена на движок от GTA 4. Ссылку для скачивания мода вы найдете в конце данной статьи.
Дата выхода Windows 8 – начало августа
На уже ставшей традицией конференции которая проходит каждый год Worldwide Partner Conference, Вице-президент и финансовый директор корпорации Microsoft раскрыли дату выхода Windows 8.
Как скачать музыку из контакта на компьютер - программа VKSaver 3.1
В этой статье мы ответим на вопрос: как скачать музыку из контакта на компьютер совершенно бесплатно, а использовать для этого мы будем бесплатную программу - VKSaver 3.1

bottom
top
За было добавлено 62 новостей, написано 55 статьи и обзоров, пользователями оставлено
0 комментария. Сегодня 03 Декабря, 2016г 22:41, ваш IP 54.163.147.69, тип, версия браузера, а также тип операционной системы
CCBot/2.0 (http://commoncrawl.org/faq/), разрешение экрана px.
© 2010 Компьютеры и Комплектующие, Компьютерные Новости. Все права защищены. Правила копирования статей материалов сайта.
Счётчик тиц и PR
Яндекс.Метрика
bottom