Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб4.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
269 Кб
Скачать
☆

Алгоритми розподілу пам'яті

Алгоритми розподілу пам'яті розділені на два класи:

  • алгоритми, у яких зовнішня пам’ять не залучається;

  • алгоритми, у яких використовується переміщення процесів (чи їх частин) між оперативною пам'яттю і зовнішньою пам’яттю (диском).

Розподіл пам'яті фіксованими розділами

Це найпростіший спосіб керування пам'яттю. Пам’ять поділяється на декілька областей фіксованого розміру, що називаються розділами. Границі розділів не змінюються. Новий процес, що надійшов на виконання, йде або в загальну чергу, або в чергу до певного розділу.

Система керування пам’ятю вирішує наступні завдання:

  • порівнює обсяг пам’яті, необхідний для нового процесу, з розмірами вільних розділів і вибирає відповідний розділ.

  • здійснює завантаження програми в розділ і настроювання адрес.

Розподіл пам'яті динамічними розділами

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

Функції ОС полягають у наступному:

  • ведення таблиць вільних і зайнятих областей, у яких вказуються початкові адреси й розміри ділянок пам’яті;

  • при створенні нового процесу - аналіз вимог до пам’яті, перегляд таблиці вільних областей і вибір розділу. Вибір розділу може здійснюватися за різними правилами: 1) перший знайдений вільний розділ достатнього розміру; 2) розділ з найменшим достатнім розміром; 3) розділ з найбільшим достатнім розміром;

  • завантаження програми у виділений їй розділ;

  • коригування таблиць вільних і зайнятих областей.

Цьому методу властивий серйозний недолік – фрагментація пам’яті – наявність великої кількості несуміжних ділянок вільної пам'яті маленького розміру. Такого, що жодна із нових програм не може поміститися в жодну з ділянок, хоча сумарний обсяг фрагментів може перевищувати необхідний обсяг пам’яті.

Переміщувані розділи

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

На додаток до функцій, які виконує ОС із динамічними розділами, вона ще час від часу копіює вміст розділів з одного місця пам'яті в інше, коригуючи таблиці вільних і зайнятих областей. Ця процедура називається стискуванням.

Стискування виконується або при кожному завершенні процесу, або коли для створюваного процесу немає вільного розділу достатнього розміру. При цьому необхідна реалізація динамічного перетворення адрес.

ОС

П1

a

П2

П2

b

П4

П4

Процедура

стискування

c

ОС

П1

a+b+c

Метод вимагає значних тимчасових витрат, що переважує переваги даного методу.

Велика кількість завдань вимагає великих обсягів оперативної пам'яті.

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

Така підміна (віртуалізація) оперативної пам’яті дисковою дозволяє підвищити рівень мультипрограмування.

Віртуалізація оперативної пам’яті здійснюється сукупністю програмних модулів ОС й апаратних схем процесора й включає рішення наступних завдань:

  • розміщення даних у за пам’ятовуючих пристроях різного типу;

  • вибір образів процесів або їх частин для переміщення з оперативної пам’яті на диск і зворотньо;

  • переміщення при необхідності даних між пам’яттю й диском;

  • перетворення віртуальних адрес у фізичні.

Віртуалізація пам’яті може бути здійснена на основі двох різних підходів:

  • свопінг — образи процесів вивантажуються на диск повністю і також повертаються в оперативну пам’ять;

  • віртуальна пам'ять — між оперативною пам’яттю й диском переміщуються частини образів процесів(сегменти, сторінки).

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

Безліч реалізацій віртуальної пам'яті може бути представлена трьома класами:

  • Сторінкова віртуальна пам’ять. Переміщення даних здійснюється сторінками – частинами віртуального адресного простору, фіксованого й порівняно невеликого розміру.

  • Сегментна віртуальна пам’ять. Переміщення здійснюється сегментами – частинами віртуального адресного простору довільного розміру.

  • Сегментно-сторінкова віртуальна пам’ять. Використовується дворівневий розподіл: віртуальний адресний простір ділиться на сегменти, а потім сегменти діляться на сторінки. Одиницею переміщення тут є сторінка.

Для тимчасового зберігання сегментів і сторінок на диску виділяється або спеціальна ділянка, або спеціальний файл, що зветься сторінковим файлом.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]