- Главная
- Информатика
- Память процесса. Виртуальное адресное пространство
Содержание
- 2. Память программы это массив с последовательной нумерацией ячеек. Индекс байта в этом огромном массиве и называется
- 3. 4 Гб или 16 Эб есть у каждой программы. Т.е. каждой программе отводится своё личное закрытое
- 4. Адресное пространство, хотя действительно однородно и непрерывно более чем на 99%, но в нём есть несколько
- 5. То есть, код и данные, которые в данный момент обрабатываются/исполняются, физически располагаются в ОЗУ. Довольно важный
- 6. Виртуальная память делится на блоки одинакового размера – виртуальные страницы. В Windows страницы бывают большие (x86
- 8. Синхронизация между виртуальными и физическими страницами памяти поддерживается аппаратно на уровне процессора, и называется трансляцией адресов.
- 9. Основные концепции виртуальной памяти таковы: Память, доступная программе, никак не связана с физической памятью. Каждая программа
- 13. В 32 разрядных Windows пользовательском ВАП располагаются исполняемый образ процесса, динамически подключаемые библиотеки (DLL, dynamic-link library),
- 15. Physical Address Extension (PAE) — режим работы встроенного блока управления памятью (PAE) — режим работы встроенного
- 16. В 32-битных клиентах Microsoft Windows (начиная с Windows XP SP2) использование 36-битного PAE включается ключом /PAE
- 18. Скачать презентацию
Слайд 2Память программы это массив с последовательной нумерацией ячеек. Индекс байта в этом
Память программы это массив с последовательной нумерацией ячеек. Индекс байта в этом

Память программы не тождественна объему оперативной памяти. Программа работает исключительно с так называемой "виртуальной памятью". Виртуальная память - это имитация реальной памяти. Она позволяет каждой программе: считать, что:
1) установлено максимальное теоретически возможное количество оперативной памяти;
считать, что она является единственной программой, запущенной на машине.
Для 32 бит систем 2^32 = 4 Гб
Для 64 бит систем 2^64 = 16 Эб
Слайд 34 Гб или 16 Эб есть у каждой программы. Т.е. каждой программе
4 Гб или 16 Эб есть у каждой программы. Т.е. каждой программе

Если программы выделяют в их адресных пространствах больше памяти, чем есть в системе физической памяти, то часть памяти из ОЗУ переносится на диск ("винчестер") - в т.н. файл подкачки (его ещё называют страничным файлом, page file, SWAP-файлом или "свопом"). Когда программа обращается к своим данным, которые были выгружены на диск, то операционная система автоматически загрузит данные из файла подкачки в ОЗУ. И всё это происходит под капотом - т.е. совершенно незаметно для программы. С точки зрения программы, ей кажется, что она работает с 4 Гб или 16 Эб RAM.
Слайд 4Адресное пространство, хотя действительно однородно и непрерывно более чем на 99%, но
Адресное пространство, хотя действительно однородно и непрерывно более чем на 99%, но

Гранулярность выделения памяти равна именно 64 Кб
В виртуальном адресном пространстве каждой программы сосуществуют сама программа и операционная система. Та часть, где работает ваша программа (и о котором мы говорили всё это время выше), называется разделом для кода и данных пользовательского режима (user mode). Та часть, где работает операционная система, называется разделом для кода и данных режима ядра (kernel mode). Обе эти части находятся в едином адресном пространстве программы.
Слайд 5 То есть, код и данные, которые в данный момент обрабатываются/исполняются, физически располагаются
То есть, код и данные, которые в данный момент обрабатываются/исполняются, физически располагаются

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

Слайд 8Синхронизация между виртуальными и физическими страницами памяти поддерживается аппаратно на уровне процессора,
Синхронизация между виртуальными и физическими страницами памяти поддерживается аппаратно на уровне процессора,

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

Каждая программа работает в своей виртуальном адресном пространстве. Размер этого пространства может быть больше размера установленной в машине оперативной памяти.
Адресное пространство процесса (программы) изолировано от других подобных адресных пространств.
Слайд 13В 32 разрядных Windows пользовательском ВАП располагаются исполняемый образ процесса, динамически подключаемые
В 32 разрядных Windows пользовательском ВАП располагаются исполняемый образ процесса, динамически подключаемые

При запуске программы создается, при этом в память загружаются код и данные программы (исполняемый образ, executable image), а также необходимые программе динамически подключаемые библиотеки (DLL). Формируется куча (heap) – область, в которой процесс может выделять память динамическим структурам данных (т. е. структурам, размер которых заранее неизвестен, а определяется в ходе выполнения программы). По умолчанию размер кучи составляет 1 МБ, но при компиляции приложения или в ходе выполнения процесса может быть изменен. Кроме того, каждому потоку предоставляется стек (stack) для хранения локальных переменных и параметров функций, также по умолчанию размером 1 МБ.
Слайд 15Physical Address Extension (PAE) — режим работы встроенного блока управления памятью (PAE) — режим

Слайд 16В 32-битных клиентах Microsoft Windows (начиная с Windows XP SP2) использование 36-битного
В 32-битных клиентах Microsoft Windows (начиная с Windows XP SP2) использование 36-битного

Одним из пунктов минимальных системных требований Windows 8 является обязательная поддержка процессором PAE.