
- •Тема 10 Фізична та логічна організація пам’яті комп’ютера. Найпростіші схеми управління пам’яттю. Фізична та логічна організація пам'яті
- •Оверлейна структура
- •Динамічний розподіл. Свопінг.
- •Тема 11 Найпростіші схеми управління пам’яттю (продовження).
- •Сторінкова пам'ять
- •Тема 12: Віртуальна пам’ять.
- •Структура таблиці сторінок
- •Виняткові ситуації при роботі з пам'яттю
- •Тема 13: Управління сторінковою пам’яттю.
- •Тема 14: Основні функції та інтерфейс файлової системи. Організація файлів та каталогів.
- •Тема 15: Структура файлових систем. Сучасні архітектури файлових систем.
- •Тема 16: Фізичні принципи організації вводу-виводу.
- •Тема 17: Логічні принципи організації вводу-виводу.
Виняткові ситуації при роботі з пам'яттю
Більшість ОС використовують сегментно-сторінкову віртуальну пам'ять. Для забезпечення потрібної продуктивності менеджер пам'яті ОС прагне підтримувати в оперативній пам'яті актуальну інформацію, намагаючись вгадати, до яких логічних адрес послідує звернення в недалекому майбутньому. Вирішальну роль тут грає вдалий вибір стратегії заміщення, реалізованої в алгоритмі виштовхування сторінок.
Виняткові ситуації при роботі з пам'яттю
З матеріалу попередньої лекції виходить, що відображення віртуальної адреси у фізичний здійснюється за допомогою таблиці сторінок. Для кожної віртуальної сторінки запис в таблиці сторінок містить номер відповідного сторінкового кадру в оперативній пам'яті, а також атрибути сторінки для контролю звернень до пам'яті.
Що ж відбувається, коли потрібної сторінки в пам'яті немає або операція звернення до пам'яті недопустима? Природно, що операційна система має бути якось оповіщена про той, що відбувся. Зазвичай для цього використовується механізм виняткових ситуацій (exceptions). При спробі виконати подібне звернення до віртуальної сторінки виникає виняткова ситуація "сторінкове порушення" (page fault), що приводить до виклику спеціальної послідовності команд для обробки конкретного виду сторінкового порушення.
Сторінкове порушення може відбуватися в самих різних випадках: за відсутності сторінки в оперативній пам'яті, при спробі запису в сторінку з атрибутом "тільки читання" або при спробі читання або запису сторінки з атрибутом "тільки виконання". У будь-якому з цих випадків викликається обробник сторінкового порушення, що є частиною операційної системи. Йому зазвичай передається причина виникнення виняткової ситуації і віртуальна адреса, звернення до якого викликало порушення.
Нас цікавитиме конкретний варіант сторінкового порушення - звернення до відсутньої сторінки, оскільки саме його обробка багато в чому визначає продуктивність сторінкової системи. Коли програма звертається до віртуальної сторінки, відсутньої в основній пам'яті, операційна система повинна виділити сторінку основної пам'яті, перемістити в неї копію віртуальної сторінки із зовнішньої пам'яті і модифікувати відповідний елемент таблиці сторінок.
Підвищення продуктивності обчислювальної системи може бути досягнуте за рахунок зменшення частоти сторінкових порушень, а також за рахунок збільшення швидкості їх обробки. Час ефективного доступу до відсутньої в оперативній пам'яті сторінки складається з:
обслуговування виняткової ситуації (page fault);
читання (підкачки) сторінки з вторинної пам'яті (іноді, при недоліку місця в основній пам'яті, необхідно виштовхнути одну із сторінок з основної пам'яті у вторинну, тобто здійснити заміщення сторінки);
відновлення виконання процесу, що викликав даний page fault.
Для вирішення першого і третього завдань ОС виконує до декількох сотів машинних інструкцій протягом декількох десятків мікросекунд. Час підкачки сторінки близький до декількох десяток мілісекунд. Проведені дослідження показують, що вірогідності page fault 5x10-7 виявляється достатньо, щоб понизити продуктивність сторінкової схеми управління пам'яттю на 10%. Таким чином, зменшення частоти page faults є одному з ключових завдань системи управління пам'яттю. Її рішення зазвичай пов'язане з правильним вибором алгоритму заміщення сторінок.