Студопедия — Віртуальна пам'ять Windows NT
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Віртуальна пам'ять Windows NT






У NT кожен користувальницький процес має свій власний віртуальний адресний простір. Довжина віртуальної адреси складає 32 біта, тому кожен процес має 4 Гбайти віртуального адресного простору. Нижні 2 Гбайти призначені для коду і даних процесу; верхні 2 Гбайти дозволяють обмежений доступ до пам'яті ядра. Виключення складають версії NT для підприємств, у яких поділ пам'яті може бути іншим: 3 Гбайти — для користувача і 1 Гбайт — для ядра. Віртуальний адресний простір з підкачуванням сторінок за вимогою містить сторінки фіксованого розміру (4 Кбайт на машині Pentium П).

Кожна віртуальна сторінка може знаходитися в одному з трьох станів: вона може бути вільною (free), зарезервованою (reserved) і виділеною (committed). Вільна сторінка в сучасний момент не використовується, а звертання до неї викликає помилку через відсутність сторінки. Коли процес починається, усі його сторінки знаходяться у вільному стані доти, поки програма і початкові дані не будуть відображені у свій адресний простір. Якщо код чи дані відображені в сторінку, то така сторінка є виділеною. Звертання до виділеної сторінки буде успішним, якщо сторінка знаходиться в основній пам'яті. Якщо сторінка відсутня в основній пам'яті, то відбудеться помилка і операційній системі прийдеться викликати потрібну сторінку з диска. Віртуальна сторінка може знаходитися й у зарезервованому стані. Це значить, що ця сторінка недоступна для відображення доти, поки резервування не буде скасовано. Крім атрибутів стану сторінки мають і інші атрибути (наприклад, що вказують на можливість читання, запису і виконання). Верхні 64 Кбайт і нижні 64 Кбайт пам'яті завжди вільні, щоб можна було відшукувати помилки покажчиків (неініціалізовані покажчики часто рівні 0 чи -1).

Кожна виділена сторінка має тіньову сторінку на диску, де вона зберігається при відсутності її в основній пам'яті. Вільні і зарезервовані сторінки не мають тіньових сторінок, тому звертання до них викликають помилки через відсутність сторінки (система не може викликати сторінку з диска, якщо цієї сторінки немає на диску). Тіньові сторінки на диску згруповані в один чи кілька сторінкових файлів. Операційна система стежить, у яку частину якого сторінкового файлу відображається кожна віртуальна сторінка. Файли з текстами програм мають тіньові сторінки; для сторінок даних використовуються спеціальні сторінкові файли.

NT, як і System V, дозволяє відображати файли прямо в області віртуального адресного простору. Якщо файл був відображений в адресний простір, його можна зчитувати або записувати шляхом звичайних звертань до пам'яті.

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

NT дозволяє відображати два і більш процесів в одному файлі одночасно, можливо, у різних віртуальних адресах. Шляхом зчитування слів з пам'яті і запису слів у пам'ять процеси можуть взаємодіяти один з одним і передавати дані в обох напрямках з досить високою швидкістю, оскільки ніякого копіювання не потрібно. Різні процеси можуть мати різні дозволи на доступ. Усі процеси, що використовують відображений файл, розділяють ті самі сторінки, тому зміни, зроблені одним із процесів, помітні всім іншим процесам, навіть якщо файл на диску ще не був обновлений. WIN 32 API містить ряд функцій, що дозволяють процесу відкрито керувати віртуальною пам'яттю. Найважливіші з цих функцій приведені в табл. 6.3. Усі вони працюють в області, що складається або з однієї сторінки, або з двох чи більше сторінок, послідовно розташованих у віртуальному адресному просторі.

Таблиця 6.3. Основні функції API для керування віртуальною пам'яттю в системі Windows NT

Функція API Значення
VirtualAlloc резервація або виділення області
VirtualFree Звільнення області або зняття виділення
VirtualProtect Зміна типу захисту на читання/запис/виконання
VirtualQuery Запит про стан області
VirtualLock Робить область пам'яті резидентною (тобто забороняє розбивку на сторінки в ній)
VirtualUnlock Знімає заборону на розбивку на сторінки
CreateFileMapping Створює об'єкт відображення файлу й іноді приписує йому ім'я
MapViewOfFile Відображає файл або частину файлу в адресний простір
UnmapViewOfFile Видаляє відображений файл з адресного простору
OpenFileMappino Відкриває раніше створений об’єкт відображення файлу

Перші чотири функції очевидні. Наступні дві функції дозволяють процесу робити резидентною область пам'яті розміром до 30 сторінок і скасовувати цю дію. Ця якість може знадобитися програмам, що працюють у режимі реального часу. Операційна система встановлює визначену межу, щоб процеси не ставали занадто поглинаючими. У системі NT також маються функції API, що дозволяють процесу одержувати доступ до віртуальної пам'яті іншого процесу (вони не зазначені в табл. 6.3).

Останні 4 функції API призначені для керування відображуваними в пам'ять файлами. Щоб відобразити файл, спочатку потрібно створити об'єкт відображення файлу за допомогою функції CreateFileMapping. Ця функція повертає ідентифікатор (handle) об'єкту відображення файлу й іноді ще і вводить у систему файлів ім'я для нього, щоб інший процес міг використовувати об'єкт. Дві функції відображають файли і видаляють відображення відповідно. Наступна функція потрібна для того, щоб відобразити файл, що у даний момент відображений іншим процесом. Таким чином, два і більше процесів можуть розділяти області своїх адресних просторів.

Ці функції API є основними. На них будується вся інша система керування пам'яттю. Наприклад, існують функції API для розміщення і звільнення структур даних в одній чи декількох “купах”. “Купи” використовуються для збереження структур даних, що створюються і руйнуються. “Купи” не займаються “зборкою сміття”, тому користувальницьке програмне забезпечення саме повинне звільняти блоки віртуальної пам'яті, що вже не потрібні. (“Зборка сміття” - це автоматичне видалення невикористовуваних структур даних.) “Купа” у NT подібна з функцією malloc у системах UNIX, але в NT, на відміну від UNIX, може бути кілька незалежних “куп”.

 

Контрольні питання:

1. Ієрархічна структура пам’яті.

2. Оверлейна організація програм.

3. Метод віртуальної пам’яті.

4..Віртуальна пам’ять UNIX.

5. Віртуальна пам’ять NT.

6. Функції WIN API для управління віртуальною пам’яттю.







Дата добавления: 2015-04-16; просмотров: 1520. Нарушение авторских прав; Мы поможем в написании вашей работы!



Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Механизм действия гормонов а) Цитозольный механизм действия гормонов. По цитозольному механизму действуют гормоны 1 группы...

Алгоритм выполнения манипуляции Приемы наружного акушерского исследования. Приемы Леопольда – Левицкого. Цель...

ИГРЫ НА ТАКТИЛЬНОЕ ВЗАИМОДЕЙСТВИЕ Методические рекомендации по проведению игр на тактильное взаимодействие...

ЛЕКАРСТВЕННЫЕ ФОРМЫ ДЛЯ ИНЪЕКЦИЙ К лекарственным формам для инъекций относятся водные, спиртовые и масляные растворы, суспензии, эмульсии, ново­галеновые препараты, жидкие органопрепараты и жидкие экс­тракты, а также порошки и таблетки для имплантации...

Тема 5. Организационная структура управления гостиницей 1. Виды организационно – управленческих структур. 2. Организационно – управленческая структура современного ТГК...

Методы прогнозирования национальной экономики, их особенности, классификация В настоящее время по оценке специалистов насчитывается свыше 150 различных методов прогнозирования, но на практике, в качестве основных используется около 20 методов...

Studopedia.info - Студопедия - 2014-2024 год . (0.012 сек.) русская версия | украинская версия