
- •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. Различия в обработке прерываний и исключений
53. Физическая память и страничный файл
В Windows 95 и Windows NT оперативная память обслуживается исключительно системой, и ни одно приложение не может напрямую контролировать эту память. Так что в Win32-системах физическую память следует рассматривать как данные хранимые в дисковых файлах со страничной структурой — страничных файлах (pag files). Поэтому, когда приложение передает физическую память какому-нибудь регистру адресного пространства (вызывая VirtualAlloc), она на самом деле выделяется из файла, размещенного на жестком диске. Размер страничного файла в системе — главный факт определяющий количество физической памяти, доступное приложениям. Реальный объем оперативной памяти имеет гораздо меньшее значение.
Теперь посмотрим, что происходит, когда поток пытается получить доступ к блс данных в адресном пространстве своего процесса. Произойти может одно из двух (см. р 5-4). В первом сценарии данные, к которым обращается поток, находятся в оперативн памяти. В этом случае процессор отображает виртуальный адрес данных на физический поток получает доступ к нужным ему данным.
Во втором сценарии данные, к которым обращается поток, отсутствуют в оператр ной памяти, но размещены где-то в страничном файле. Попытка доступа к данным генер рует ошибку страницы (page fault), и процессор таким образом уведомляет операционн^ систему об этой попытке. Тогда операционная система начинает искать свободную страни в оперативной памяти; если таковой нет, система вынуждена освободить одну из занят] страниц. Если занятая страница не модифицировалась, она просто освобождается; в ин< случае она сначала копируется из оперативной памяти в страничный файл. После это система переходит к страничному файлу, отыскивает в нем запрошенный блок даннь загружает этот блок на свободную страницу оперативной памяти и, наконец, отобража адрес данных в виртуальной памяти на соответствующий адрес в физической памяти.
Сами понимаете: чем чаще системе приходится копировать страницы памяти в стр ничный файл и наоборот, тем больше нагрузка на жесткий диск и тем медленнее работа операционная система. (При этом, кстати, может получиться так, что операционная систе* будет тратить все свое время на подкачку страниц вместо выполнения программ.) Так чт добавив компьютеру оперативной памяти, Вы снизите частоту обращения к жесткому дна и тем самым увеличите общую производительность системы.
Windows NT может использовать несколько страничных файлов, и, если они расположены на разных физических дисках, операционная система работает гораздо быстрее, поскольку способна вести запись одновременно на нескольких дисках Чтобы добавить или удалить страничный файл, откройте Control Panel, дважды щелкните значок System, выберите вкладку Performance и в разделе Virtual Memory щелкните кнопку Change
Физическая память в страничном файле не хранится
при запуске приложения система открывает его исполняемый файл и определяет объем кода и данных приложения. Затем резервирует регион адресного пространства и помечает, что физическая память, связанная с этим регионом, — сам ЕХЕ-файл. Вместо выделения какого-то пространства из страничного файла система использует истинное содержимое или образ (image) ЕХЕ-файла как зарезервированный регион адресного пространства программы. Благодаря этому приложение загружается очень быстро, а размер страничного файла удается заметно уменьшить.