Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція№7_Простий безперервний розподіл і розпод...doc
Скачиваний:
2
Добавлен:
15.11.2019
Размер:
129.54 Кб
Скачать

Розділи з рухливими границями

Щоб позбутися від фрагментації, можна спробувати розміщати в оперативній пам'яті завдання щільно, одну за інший, виділяючи рівно стільки пам'яті, скільки завдання вимагає. Однієї з перших операційних систем, у якій був реалізований такий спосіб розподілу пам'яті, була OS MVT (Multіprogrammіng wіth a Varіable number of Tasks - мультипрограмування зі змінним числом завдань). У цій операційній системі спеціальний планувальник (диспетчер пам'яті) веде список адрес вільної оперативної пам'яті. З появою нового завдання диспетчер пам'яті переглядає цей список і виділяє для завдання розділ, обсяг якої або дорівнює необхідному, або ледве більше, якщо пам'ять виділяється не осередками, а якимись дискретними одиницями. При цьому модифікується список вільних областей пам'яті. При звільненні розділів диспетчер пам'яті намагається об'єднати розділи, що звільнилися з однією з вільних ділянок, якщо така є суміжної.

При цьому список вільних ділянок пам'яті може бути впорядкований або по адресах, або по обсязі. Виділення пам'яті під новий розділ може здійснюватися одним із трьох основних способів:

1. перша підходяща ділянка;

2. сама підходяща ділянка;

3. сама невідповідна ділянка.

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

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

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

Література:

Шеховцов В.А. Операційні системи. – К.: Видавнича група BHV, 2005. – 576 с. [5],183-188

Гордеев А.В. Операционные системы: Учебник для вузов. - 2-е изд. – СПб.: Питер, 2004. – 416 с. [1],72-86

Контрольні питання:

  1. В чом полягає суть простого безперервного розподілу і розподілу з перекриттям?

  2. Що дає використання оверлеїв при розробки DOS додатків?

  3. Охарактеризуйте методи нерозривного розподілу пам'яті?

  4. Що таке фрагментація пам’яті?

  5. Що таке ущільнення пам’яті? Коли воно використовується?

7