Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Окремі аспекти функціонування менеджера пам'яті



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

Розглянемо випадок, коли система віртуальної пам'яті може вступити в конфлікт з підсистемою введення-виводу. Наприклад, процес може запитати введення в буфер і чекати його завершення. Управління передасться іншому процесу, який може викликати page fault і, з відмінною від нуля вірогідністю, спровокувати вивантаження тієї сторінки, куди має бути здійснений введення першим процесом. Подібні ситуації потребують додаткового контролю, особливо якщо уведення-виведення реалізоване з використанням механізму прямого доступу до пам'яті (DMA). Одне з вирішень даної проблеми - вводити дані в буфер, що не витісняється, в просторі ядра, а потім копіювати їх в призначений для користувача простір.

Друге рішення - локалізувати сторінки в пам'яті, використовуючи спеціальний біт локалізації, що входить до складу атрибутів сторінки. Локалізована сторінка заміщенню не підлягає. Біт локалізації скидається після завершення операції введення-виводу.

Інше використання біта локалізації може мати місце і при нормальному заміщенні сторінок. Розглянемо наступний ланцюг подій. Низькопріоритетний процес після тривалого очікування отримав в своє розпорядження процесор і підкачав з диска потрібну йому сторінку. Якщо він відразу після цього буде витиснений високопріоритетним процесом, останній може легко замістити знов підкачану сторінку низькопріоритетного, оскільки на неї не було посилань. Має сенс знов завантажені сторінки позначати бітом локалізації до першого посилання, інакше низькопріоритетний процес так і не почне працювати.

Використання біта локалізації може бути небезпечним, якщо забути його відключити. Якщо така ситуація має місце, сторінка стає невживаною. SUNOS вирішує використання даного біта як підказку, яку можна ігнорувати, коли пул вільних кадрів стає дуже маленьким.

Іншим важливим застосуванням локалізації є її використання в системах м'якого реального часу. Розглянемо процес або нитку реального часу. Взагалі кажучи, віртуальна пам'ять - антитеза обчислень реального часу, оскільки дає непередбачувані затримки при підкачці сторінок. Тому системи реального часу майже не використовують віртуальну пам'ять. ОС Solaris підтримує як реальний час, так і розділення часу. Для вирішення проблеми page faults, Solaris дозволяє процесам повідомляти систему, які сторінки важливі для процесу, і локалізувати їх в пам'яті. В результаті можливе виконання процесу, що реалізовує завдання реального часу, що містить локалізовані сторінки, де тимчасові затримки сторінкової системи будуть мінімізовані.

Окрім системи локалізації сторінок, є і інші цікаві проблеми, що виникають в процесі управління пам'яттю. Так, наприклад, буває непросто здійснити повторне виконання інструкції, що викликала page fault. Представляють інтерес і алгоритми відкладеного виділення пам'яті (копіювання при записі і ін.). Обмежений об'єм даного курсу не дозволяє розглянути їх детальніше.





Дата публикования: 2014-11-04; Прочитано: 372 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...