30.Механизм виртуальной памяти
Программист обращается к памяти с помощью некоторого набора логических имен, которые чаще всего являются символьными, а не числовыми и для которого отсутствует отношение порядка. Существует понятие физической оперативной памяти, собственно с которой и работает процессор, извлекая из нее команды и данные и помещая в нее результаты вычислений. Физическая память представляет собой упорядоченное множество ячеек, и все они пронумерованы, то есть к каждой из них можно обратиться, указав ее порядковый номер (адрес). Количество ячеек физической памяти ограничено и фиксировано.Системное программное обеспечение должно связать каждое указанное пользователем имя с физической ячейкой памяти, то есть осуществить отображение пространства имен на физическую память компьютера. Это отображение осуществляется в два этапа: сначала системой программирования, а затем операционной системой (с помощью специальных программных модулей управления памятью и использования соответствующих аппаратных средств вычислительной системы). Между этими этапами обращения к памяти имеют форму виртуального или логического адреса. Множество всех допустимых значений виртуального адреса для некоторой программы определяет ее виртуальное адресное пространство или виртуальную память. Виртуальное адресное пространство программы прежде всего зависит от архитектуры процессора и от системы программирования и практически не зависит от объема реальной физической памяти, установленной в компьютер. Адреса команд и переменных в готовой машинной программе, подготовленной к выполнению системой программирования, являются виртуальными адресами.В результате работы системы программирования полученные виртуальные адреса могут иметь как двоичную форму, так и символьно-двоичную, т.е. некоторые программные модули и их переменные получают какие-то числовые значения, а те модули, адреса для которых не могут быть сейчас определены, имеют по-прежнему символьную форму и окончательная привязка их к физическим ячейкам будет осуществлена на этапе загрузки программы в память перед ее непосредственным выполнением. Частные случаи:
1)тождественность виртуального адресного пространства физическойпамяти. При этом нет необходимости осуществлять второе отображение. Cистема программирования генерирует абсолютную двоичную программу; в этой программе все двоичные адреса таковы, что программа может исполняться только в том случае, если ее виртуальные адреса будут точно соответствовать физическим. Часть программных модулей любой операционной системы обязательно должна быть абсолютными двоичными программами. Эти программы размещаются по фиксированным адресам и с их помощью уже можно впоследствии реализовывать размещение остальных программ, подготовленных системой программирования таким образом, что они могут работать на различных физических адресах (то есть на тех адресах, на которые их разместит операционная система).
2)тождественность виртуального адресного пространства исходному пространству имен. Здесь уже отображение выполняется самой ОС, которая во время исполнения использует таблику символьных имен. Такая схема отображения используется чрезвычайно редко, так как отображение имен на адреса необходимо выполнять для каждого вхождения имени. Промежуточные варианты: транслятор-компилятор генерирует относительные адреса, которые являются виртуальными адресами с последующей настройкой программы на один из непрерывных разделов. Второе отображение осуществляется перемещающим загрузчиком. После загрузки программы виртуальный адрес теряется, и доступ выполняется непосредственно к физическим ячейкам. Более эффективное решение в том случае, когда транслятор вырабатывает в качестве виртуального адреса относительный адрес и информацию о начальном адресе, а процессор, используя подготавливаемую операционной системой адресную информацию, выполняет второе отображение не один раз (при загрузке программы), а при каждом обращении к памяти.Термин виртуальная память относится к системам, которые сохраняют виртуальные адреса во время исполнения. Так как второе отображение осуществляется в процессе исполнения задачи, то адреса физических ячеек могут изменяться. С позиции соотношения объемов упомянутых адресных пространств можно отметить наличие следующих трех ситуаций:а)Vv <Vp; б)vv = vp; в)vv> vp.Первая ситуация, при которой Vv < Vp, ныне практически не встречается, но тем не менее это реальное соотношение. Скажем, не так давно 16-разрядные мини-ЭВМ имели систему команд, в которых можно адресовать до 216=64К адресов. А физически старшие модели этих мини-ЭВМ могли иметь объем оперативной памяти в несколько мегабайт. Обращение к памяти столь большого объема осуществлялось с помощью специальных регистров, содержимое которых складывалось с адресом операнда, извлекаемым и/или определяемым из поля операнда. Соответствующие значения в эти специальные регистры, выступающие как базовое смещение в памяти, заносила операционная система. Для одной задачи в регистр заносилось одно значение, а для второй (третьей, четвертой и т. д.) задачи, размещаемой одновременно с первой, но в другой области памяти, заносилось, соответственно, другое значение. Вся физическая память, таким образом, разбивалась на разделы объемом по 64 Кбайт, и на каждый такой раздел осуществлялось отображение своего виртуального адресного пространства.Ситуация, когда Vv = vp| встречалась достаточно часто. В наше время ситуация Vv > Vp встречается даже в ПК.
- 2. Теневая память
- 6.Недостатки ms-dos и пути их преодоления
- 7.Структура conventional памяти
- 9. Обработчики 09h и 16h клавиатуры
- 10. Extended память
- Expanded память
- Upper память
- 14.Структура данных на магнитных дисках
- 15. Клавиатура. Scan-код
- 16. Распределение памяти в реальном режиме
- Адресация озу при использовании сегментации в защищённом режиме
- 19. Hma память
- Механизм страничной адресации
- 23.Тест клавиатуры
- 24. Прерывания bios
- Преобразование логического адреса в физический при включённой страничной адресации
- 26. Исключения и их обработка
- 27. Управление клавиатурой
- 28. Приоритет обработки прерываний
- Привилегии и защита программ
- 30.Механизм виртуальной памяти
- 31.Дескрипторы сегментных регистров
- 32.Кэш память
- 33.Таблицы локальных и глобальных дескрипторов
- 34.Cga, vga адаптеры
- Характеристики vga адаптеров
- 35.Таблица дескрипторов idt
- 37.Шлюзы и их применение
- 38.Понятие дескриптора
- 39. Адаптер дисплея
- 40.Функции dos и bios для клавиатуры
- 41 Пять компонентов защиты
- 42.Виртуальный 8086
- 43.Классы приоритетов
- 44.Многозадачный режим. Статические и динамические наборы
- 45.Шлюз задач
- 46. Библиотеки dll
- Явная компоновка
- 47.Виртуальная память процессора
- 48.Адресное пространство w9х
- 49.Адресное пространство nt
- 51. Файл подкачки страниц
- 52. Два процесса – один ехе файл.
- 53. Физическая память и страничный файл
- Физическая память в страничном файле не хранится
- 54. Алгоритм загрузки программ
- 56. Переданная и зарезервированная память
- 57.Разделы ехе файла
- 58. Проецируемые в память файлы
- 59.Механизмы работы с файлами больших размеров
- 60. Различия в обработке прерываний и исключений