
- •Тема 10 Фізична та логічна організація пам’яті комп’ютера. Найпростіші схеми управління пам’яттю. Фізична та логічна організація пам'яті
- •Оверлейна структура
- •Динамічний розподіл. Свопінг.
- •Тема 11 Найпростіші схеми управління пам’яттю (продовження).
- •Сторінкова пам'ять
- •Тема 12: Віртуальна пам’ять.
- •Структура таблиці сторінок
- •Виняткові ситуації при роботі з пам'яттю
- •Тема 13: Управління сторінковою пам’яттю.
- •Тема 14: Основні функції та інтерфейс файлової системи. Організація файлів та каталогів.
- •Тема 15: Структура файлових систем. Сучасні архітектури файлових систем.
- •Тема 16: Фізичні принципи організації вводу-виводу.
- •Тема 17: Логічні принципи організації вводу-виводу.
Тема 11 Найпростіші схеми управління пам’яттю (продовження).
Схема із змінними розділами
В принципі, система свопінгу може базуватися на фіксованих розділах. Ефективнішою, проте, представляється схема динамічного розподілу або схема із змінними розділами, яка може використовуватися і в тих випадках, коли всі процеси цілком поміщаються в пам'яті, тобто у відсутність свопінгу. В цьому випадку спочатку вся пам'ять вільна і не розділена заздалегідь на розділи. Завданню, що знов поступає, виділяється строго необхідна кількість пам'яті, не більш. Після вивантаження процесу пам'ять тимчасово звільняється. Після закінчення деякого часу пам'яттю є змінне число розділів різного розміру (мал. 8.6). Суміжні вільні ділянки можуть бути об'єднані.
Рис. 10.1. Динаміка розподілу пам'яті між процесами (сірим кольором показана невживана пам'ять)
У який розділ поміщати процес? Найбільш поширено три стратегії.
Стратегія першого відповідного (First fit). Процес поміщається в перший відповідний за розміром розділ.
Стратегія найбільш відповідного (Best fit). Процес поміщається в той розділ, де після його завантаження залишиться менше всього вільного місця.
Стратегія найменш відповідного (Worst fit). При приміщенні в найбільший розділ в нім залишається достатньо місця для можливого розміщення ще одного процесу.
Моделювання показало, що частка корисно використовуваної пам'яті по-перше двох випадках більше, при цьому перший спосіб декілька швидше. Попутно відмітимо, що перераховані стратегії широко застосовуються і іншими компонентами ОС, наприклад для розміщення файлів на диску.
Типовий цикл роботи менеджера пам'яті полягає в аналізі запиту на виділення вільної ділянки (розділу), виборі його серед тих, що є відповідно до однієї із стратегій (першого відповідного, найбільш відповідного і найменш відповідного), завантаженні процесу у вибраний розділ і подальших змінах таблиць вільних і зайнятих областей. Аналогічне коректування необхідне і після завершення процесу. Скріплення адрес може здійснюватися на етапах завантаження і виконання.
Цей метод гнучкіший в порівнянні з методом фіксованих розділів, проте йому властива зовнішня фрагментація – наявність великого числа ділянок невживаної пам'яті, не виділеної жодному процесу. Вибір стратегії розміщення процесу між першим відповідним і найбільш відповідним слабо впливає на величину фрагментації. Цікаво, що метод найбільш відповідного може виявитися найгіршим, оскільки він залишає безліч дрібних незайнятих блоків.
Статистичний аналіз показує, що пропадає в середньому 1/3 пам'яті! Це відоме правило 50% (дві сусідні вільні ділянки на відміну від двох сусідніх процесів можуть бути об'єднані).
Одне з вирішень проблеми зовнішньої фрагментації – організувати стискування, тобто переміщення всіх зайнятих (вільних) ділянок у бік зростання (убування) адрес, так, щоб вся вільна пам'ять утворила безперервну область. Цей метод іноді називають схемою з переміщуваними розділами. У ідеалі фрагментація після стискування має бути відсутньою. Стискування, проте, є дорогою процедурою, алгоритм вибору оптимальної стратегії стискування дуже важкий і, як правило, стискування здійснюється в комбінації з вивантаженням і завантаженням по інших адресах.