Студопедия

КАТЕГОРИИ:


Архитектура-(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)

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




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

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

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

Логическая память или виртуальная память (virtual memory) – это способ представления памяти для программы, и в современных операционных системах она редко совпадает с физической структурой памяти. Обычно системы виртуальной памяти используют либо сегментное, либо линейное представление памяти. В персональных компьютерах на основе процессора Intel, начиная с Intel 8086 и заканчивая Intel 80286, была использована сегментная модель. В этом случае, физическая память разделена на последовательные блоки, называемые сегментами. А адрес состоит из номера сегмента и смещения в нем.

С другой стороны, многие процессоры поддерживают линейную структуру адресов. При такой схеме адреса начинаются с 0 и возрастают до верхней границы адресного пространства.

Виртуальное адресное пространство (virtual address space)– это набор адресов памяти, которые могут использовать потоки процесса. Каждый процесс имеет отдельное адресное пространство, которое гораздо больше размера физической памяти. Диапазон физических адресов компьютера ограничен объемом имеющейся у него памяти (у каждого байта уникальный адрес), тогда как диапазон виртуальных адресов ограничен только количеством битов в адресе. Процессор, имеющий 32-разрядный адрес, является обладателем виртуального адресного пространства в 4 Гб.

Система виртуальной памяти должна выполнять две задачи:

· Транслировать, или отображать (map), некоторое подмножество виртуальных адресов каждого процесса в участки физической памяти. Когда поток производит чтение или запись в своем виртуальном адресном пространстве, система виртуальной памяти перед пересылкой данных определяет по виртуальному адресу соответствующий физический адрес;

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

Перемещение данных между памятью и диском было бы очень медленным, если бы диспетчер виртуальной памяти перемещал по одному байту за раз. Поэтому виртуальное адресное пространство разделено на блоки равного размера, которые называются страницами (pages). Соответственно, физическое адресное пространство разделяется на блоки, называемые страничными фреймами (page frames), которые используются для хранения страниц. В любой момент времени в памяти находится некоторое множество страниц из виртуального адресного пространства каждого процесса. Страницы, находящиеся в физической памяти и доступные немедленно, называются действительными страницами (valid pages). Страницы, находящиеся на диске (или находящиеся в памяти, но недоступные немедленно), называются недействительными (invalid pages). Наглядно это изображено на Рис. 1. Отображение виртуальных страниц в физические страничные фреймы и на Рис. 2. Трансляция виртуального адреса в физический.

 

Рис. 1. Отображение виртуальных страниц в физические страничные фреймы

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

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

 

Рис. 2. Трансляция виртуального адреса в физический




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


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


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



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




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