Статус
нашего
сайта:
ICQ Secrets Center is Online  ICQ Information Center


ICQ SHOP
     5-значные
     6-значные
     7-значные
     8-значные
     9-значные
     Rippers List
ОПЛАТА
СТАТЬИ
СЕКРЕТЫ
HELP CENTER
OWNED LIST
РОЗЫСК!New!
ICQ РЕЛИЗЫ
Протоколы ICQ
LOL ;-)
Настройка компьютера
Аватарки
Смайлики
СОФТ
     Mail Checkers
     Bruteforces
     ICQTeam Soft
     8thWonder Soft
     Other Progs
     ICQ Patches
     Miranda ICQ
ФорумАрхив!
ВАШ АККАУНТ
ICQ LiveJournal

Реклама

Наш канал:

irc.icqinfo.ru

Таненбаум Э.- Архитектура компьютера. стр.374


Таненбаум Э.- Архитектура компьютера. стр.374

Windows ХР, как и System V, позволяет отображать файлы прямо на области виртуального адресного пространства. Если файл отображен на адресное пространство, его можно считывать или записывать путем обычных обращений к памяти.

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

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

Win32 API содержит ряд функций, которые позволяют процессу непосредственно управлять виртуальной памятью. Самые важные из этих функций перечислены в табл. 6.4. Все они выполняются в области, состоящей либо из одной страницы, либо из двух или более страниц, последовательно расположенных в виртуальном адресном пространстве.

Первые четыре функции очевидны. Следующие две функции позволяют процессу делать резидентной область памяти размером до 30 страниц и отменять это действие. Это качество может понадобиться программам, работающим в режиме реального времени. Операционная система устанавливает определенный предел, чтобы процессы не становились слишком «прожорливыми». В системе Windows ХР также имеются функции API (они не указаны в табл. 6.4), которые позволяют процессу получать доступ к виртуальной памяти другого процесса.

Последние 4 функции API предназначены для управления отображаемыми на память файлами. Чтобы отобразить файл, сначала нужно создать объект отображения файла с помощью функции CreateFileMapping. Эта функция возвращает описатель объекта отображения файла и иногда еще и вводит в файловую систему имя для этого объекта, чтобы другой процесс мог его использовать. Следующие 2 функции соответственно создают и удаляют отображение файлов.

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

Таблица 6.4. Основные функции АРІ для управления виртуальной памятью

в Windows ХР

Функция API

Описание

VirtualAlloc

Резервирование или выделение области

VirtualFree

Освобождение области или отмена выделения

Virtual Protect

Изменение варианта защиты (чтение/запись/выполнение)

VirtualQuery

Запрос о состоянии области памяти

VirtualLock

Запрещение разбиения памяти на страницы (область памяти

 

становится резидентной)

VirtualUnlock

Снятие запрета относительно разбиения на страницы

CreateFileMapping

Создание объекта отображения файла и назначение (не всегда) ему

 

имени

MapViewOfFile

Отображение файла или части файла на адресное пространство

UnmapViewOfFile

Удаление отображенного файла из адресного пространства

OpenFileMapping

Открытие ранее созданного объекта отображения файла

Эти функции API являются основными. На них строится вся остальная система управления памятью. Например, существуют функции API для размещения и освобождения структур данных в одной или нескольких кучах. Кучи используются для хранения структур данных, которые динамически создаются и разрушаются. Кучи не занимаются уборкой мусора, поэтому пользовательское программное обеспечение само должно освобождать блоки виртуальной памяти, которые уже не нужны (уборкой мусора называют автоматическое удаление неиспользуемых структур данных). Куча в Windows ХР напоминает результат вызова функции mall ос в UNIX, но в Windows ХР, в отличие от UNIX, может быть несколько независимых куч.


⇐ Предыдущая страница| |Следующая страница ⇒

.