НОУ ІНТУІТ, Лекція, Сторінка пам’яті

Презентацію до цієї лекції Ви можете завантажити тут.

Сторінка організація пам'яті ( paging ) – найпоширеніша стратегія управління пам'яттю , що використовується практично у всіх операційних системах. У цій лекції розглядаються загальні проблеми управління пам'яттю, принципи сторінкової організації та її різні форми.

Відкачування та підкачування

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

Відкачування та підкачування (swapping) –це дії операційної системи повідкачування (запису)образу неактивного процесу на диск абопідкачування (зчитування)активного процесу в основну пам'ять. Необхідність виконання подібних дій викликана нестачею основної пам'яті.

Файл відкачування (backing store) -область дискової пам'яті, що використовується операційною системою для зберігання образів відкачаних процесів. Файл відкачування організується максимально ефективно: забезпечується прямий доступ всім образам процесів у пам'яті (наприклад, через таблицю за номером процесу).

Популярний різновид стратегії відкачування та підкачування –roll out / roll in: відкачування та підкачування на базі пріоритетів; Найбільш пріоритетні процеси виконуються, менш пріоритетні - відкачуються на диск.

Найбільші часові витрати на відкачування – цеВитрати передачі: повний образ процесу може займати велику область пам'яті. Загальний час відкачування пропорційно розміру даних, що відкачуються.

У поширених ОС - UNIX, Linux, Windows та ін - реалізовані різні стратегії відкачування та підкачування.

Схема відкачування та підкачування зображена на рис. 16.1.

інтуіт

Сумежний розподіл пам'яті

інтуіт

Загальне завдання розподілу пам'яті та стратегії її вирішення

У загальному випадку, в операційних системах може використовуватися суміжний розподіл пам'яті в кількох суміжних областях. Вільна область – це суміжний блок вільної пам'яті. Вільні області можуть бути розкидані по пам'яті. При завантаженні процесу йому надається пам'ять будь-якої вільної суміжної області, яка досить велика для його розміщення. При цьому операційна система зберігаєсписок вільних областейпам'яті тасписок зайнятих областейпам'яті. Всі ці області можуть бути довільно розташовані у пам'яті та мати різну довжину.

Виникаєзагальне завдання розподілу пам'яті: Є список вільних областей пам'яті та список зайнятих областей різного розміру. Розробити та реалізувати оптимальний (за деяким критерієм) алгоритм виділення вільної суміжної ділянки пам'яті довжиниn(слів або байтів).

Для вирішення цього завдання застосовуються такі стратегії:метод першого відповідного (first-fit), метод найбільш відповідного (best-fit)іметод найменш відповідного (worst-fit).Розглянемо кожну з них докладніше.

Метод першого відповідного:Вибирається перша за списком вільна ділянка відповідного розміру (не меншого, ніжn). На перший погляд, ця стратегія є оптимальною, але далі ми побачимо, що це не завжди так.

Метод найменш відповідного: Вибирається зі списку відповідна областьнайбільшогорозміру. Чому найбільше? Щоб уникнути фрагментації (проблема фрагментації докладно розглянута далі у цій лекції).

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

Фрагментація

Фрагментація– це дроблення пам'яті на дрібні не суміжні вільні області невеликого розміру. Фрагментація виникає після виконання системою великої кількості запитів на згадку , таких, що розміри вільних ділянок пам'яті виявляються трохи більше, ніж необхідні. Наприклад, якщо є 100 суміжних вільних областей пам'яті по 1000 слів, після виконання 100 запитів на пам'ять по 999 слів кожен у списку вільної пам'яті залишаться 1000 областей по одному слову.

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

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