ДС19в11-виртуальная-память (1238921), страница 2
Текст из файла (страница 2)
стр.ЦП1ВиртуальныйадресPTEУУП(MMU)3Физическийадрес4Кеш/ПамятьДанные5Попадание TLB - нет дополнительного обращения в память34Промах TLBКристалл ЦПTLB2Номервирт. стр.ЦП1ВиртуальныйадресУУП(MMU)4PTE3Адрес PTEФизическийадресКэш/память5Данные6Промах TLB влечёт дополнительное обращение в память за PTEК счастью, промахи TLB редки. Почему?35Многоуровневые таблицы страниц¢Таблицыуровня 2Предположим:§ 4KB (212) размер страницы, 48-битное адресноепространство, 8-байтные PTE¢Проблема:§ Необходима таблица размером 512 ГБ!§248 * 2-12 * 23 = 239 байтТиповое решение:...¢Таблицауровня 1§ Многоуровневые таблицы страниц§ Пример: 2-уровневая таблица страниц...Таблица уровня 1: каждый PTE указывает на таблицустраниц (всегда в памяти)§ Таблица уровня 2: каждый PTE указывает на страницу(подкачанную или откачанную как любые иные данные)§36Двухуровневая иерархия таблиц страницТаблица страницуровня 1Таблицы страницуровня 2ВиртуальнаяпамятьВС 0PTE 0PTE 0PTE 1...PTE 2 (null)PTE 1023...ВС 1023ВС 1024ВС 2047PTE 4 (null)PTE 0PTE 5 (null)...PTE 6 (null)PTE 1023ПустоеPTE 7 (null)(1K - 9)null PTEs2K страниц ВП занятыхпод код и данные...PTE 3 (null)PTE 806K незанятыхстраниц ВП1023 nullPTEsPTE 10231023незанятыхстраницВС 9215...32-битные адреса, 4KБ страницы, 4-байтные PTEs1023 незанятых страниц1 страница ВП занятаяпод стек37Трансляция с k-уровневой таблицей страницБазовый регистртаблицы страниц(PTBR)ВИРТУАЛЬНЫЙ АДРЕСn-1VPN 1VPN 2Уровень 1таблицыУровень 2таблицы......VPN k...p-1VPO0p-1PPO0Уровень kтаблицыPPNm-1PPNФИЗИЧЕСКИЙ АДРЕС38Сводка¢С точки зрения программиста, виртуальная память…§ даёт каждому процессу собственное линейное адресное пространство§ не может быть повреждена другим процессом¢С точки зрения системы, виртуальная память…§ использует DRAM для кеширования виртуальных страницэффективно только благодаря локальности§ упрощает управление памятью и программирование§ упрощает защиту памяти обеспечивая удобную контрольную точкупроверки разрешений§39Немного о компьютерах¢¢¢¢¢¢¢¢¢¢¢¢Представление и исполнение программПредставление информации и манипуляции с нейМашинный уровень представления программАрхитектура процессораОптимизация производительности программИерархия памятиСвязываниеПоток управления с исключительными ситуациямиВиртуальная памятьВвод-вывод на уровне системыСетевое программированиеПараллельное программирование40Немного о компьютерах.
Осталось¢¢¢¢¢¢¢¢¢¢¢¢Представление и исполнение программПредставление информации и манипуляции с нейМашинный уровень представления программАрхитектура процессораОптимизация производительности программИерархия памятиСвязываниеПоток управления с исключительными ситуациямиВиртуальная памятьВвод-вывод на уровне системыСетевое программированиеПараллельное программирование41Представление и исполнение программ¢Машинный уровень представления программ§ Генерация кода с высокими уровнями оптимизации§ Архитектура подсистем с плавающей точкой x87, SSE¢Оптимизация производительности программ§ Команды SIMD§ Профилирование42Запуск программы в системе¢Связывание§ Kод не зависящий от размещения в памяти§ Системные средства работы с объектными файлами¢Поток управления с исключительными ситуациями§§§§¢Обработка ошибок обращений к системеНелокальные переходыСигналыСистемные средства работы с процессамиВиртуальная память§ Динамическое выделение памяти§ Сборка мусора§ Частые ошибки работы с памятью в С-программах43Взаимодействие программ¢Ввод-вывод на уровне системы§ Файлы, их метаданные§ Надёжный ввод/вывод, совместное использование файлов§ Перенаправление, стандартный ввод/вывод¢Сетевое программирование§ Клиент-серверная модель§ Сети, интернет, sockets, web§ Простейший веб-сервер¢Параллельное программирование§§§§Сервер, преимущества и недостатки процессовОбщий ввод/выводНити, общие переменные, синхронизация семафорамиВызовы параллелизма – гонки, взаимоблокировки44.