131
Найцікавішу інформацію містять лічильники, що відносяться
до конкретного процесу: кількість байтів віртуальної пам’яті,
файла підкачки, помилок сторінки, робочої множини і т.д., і зага-
льносистемні лічильники: кількість байтів виділеної віртуальної
пам’яті, елементів таблиці сторінок та ін.
Корисними виявляються і деякі загальнодоступні утиліти, на-
приклад утиліта спостереження за помилками сторінок pfmon.
Віртуальний адресний простір процесу
У 32-бітових системах процесор може згенерувати 32-бітну
адресу. Це означає, що кожному процесу виділяється діапазон
віртуальних адрес від 0x00000000 до 0xFFFFFFFF. Ці 4 Гб адрес
система ділить приблизно навпіл, для коду і даних режиму кори-
стувача відводяться 2 Гб у нижній частині пам’яті. Якщо бути
точнішим, то йдеться про віртуальні адреси, починаючи з
0x00010000 і закінчуючи 0x7FFEFFFF. Таким чином, система
управління пам’яттю дозволяє програмі користувача за допомо-
гою Win32 API записати потрібний байт у будь-яку віртуальну
комірку з цього діапазону адрес. Адреси верхньої частини віртуа-
льної пам’яті використовуються для коду і даних режиму ядра та
інших системних потреб.
За замовчуванням адресний простір кожного процесу ізольо-
ваний. Дані двох різних процесів, записані по одній і тій же вір-
туальній адресі, опиняються в різних сторінках фізичної пам’яті
за допомогою коректної роботи системи трансляції адреси. В ряді
випадків ізоляція може бути частково знята (файли, що відобра-
жаються в пам’ять; пам’ять, що розділяється). Зрозуміло, в поді-
бних випадках потрібно окремо забезпечити контроль доступу до
області пам’яті, для чого створюється окремий об’єкт (об’єкт-
секція або об’єкт-розділ, section object), що включає атрибути за-
хисту. Нижче буде також наведений приклад контролю процесом
пам’яті іншого процесу – прийом, яким активно користуються
відладчики.
Регіони у віртуальному адресному просторі
Спочатку весь віртуальний адресний простір процесу вільний.
Він починає заповнюватися в міру виконання програми. Щоб
скористатися якою-небудь частиною цього простору, в ньому по-