Студопедия Главная Случайная страница Обратная связь

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

Віртуальна пам'ять 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; просмотров: 1550. Нарушение авторских прав; Мы поможем в написании вашей работы!




Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...


Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...


Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...


Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

ОЧАГОВЫЕ ТЕНИ В ЛЕГКОМ Очаговыми легочными инфильтратами проявляют себя различные по этиологии заболевания, в основе которых лежит бронхо-нодулярный процесс, который при рентгенологическом исследовании дает очагового характера тень, размерами не более 1 см в диаметре...

Примеры решения типовых задач. Пример 1.Степень диссоциации уксусной кислоты в 0,1 М растворе равна 1,32∙10-2   Пример 1.Степень диссоциации уксусной кислоты в 0,1 М растворе равна 1,32∙10-2. Найдите константу диссоциации кислоты и значение рК. Решение. Подставим данные задачи в уравнение закона разбавления К = a2См/(1 –a) =...

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

Понятие о синдроме нарушения бронхиальной проходимости и его клинические проявления Синдром нарушения бронхиальной проходимости (бронхообструктивный синдром) – это патологическое состояние...

Опухоли яичников в детском и подростковом возрасте Опухоли яичников занимают первое место в структуре опухолей половой системы у девочек и встречаются в возрасте 10 – 16 лет и в период полового созревания...

Способы тактических действий при проведении специальных операций Специальные операции проводятся с применением следующих основных тактических способов действий: охрана...

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