Зв’язний розподіл пам’яті при мультипрограмній обробці

При мультипрограмній обробці в пам’яті комп’ютера розміщується одразу кілька завдань. Розподіл пам’яті може бути виконаний такими способами:

1) Розподіл фіксованими розділами

2) Розподіл змінними розділами

3) Розподіл зі сфопігном.

1 має 2 модифікації:

а) із завантаженням програми в абсолютних адресах.

б) із завантаженням переміщуваних модулів

При завантаження переміщуваних модулів вся ОП машини розбивається на деяку кількість розділів фіксованого розміру.

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

Коеф. використання пам’яті при розподілі з фіксованими розмірами обчислюється по формулі:

Kcm = 1/Vo сума від 0 до Nф(Vni)

Kcm – коеф. використання пам’яті і-ого розділу

Vni – довжина програми поміщеної в і-ий розділ.

Nф – кількість розділів

Vo – загальний об’єм оперативної пам’яті доступний для розподілу.

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

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



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

Рівень фрагментації пам’яті можна оцінити коефіцієнтом фрагментації Кф = 1/ Vo сума від 0 до Nд (Vд), де

Vді – розмір і-ої діри, тобто і-ої ділянки вільної пам’яті обмеженої програмами користувача

Nд – кількість дір, тобто ділянок вільної пам’яті. що лежать між програмами користувачів.

Vo – об’єм ОП доступної для розподілу.

Фрагментація пам’яті являє собою порушення однозв’язності простору вільної пам’яті ЕОМ, що приводить до зниження ефективності використання пам’яті.

Розподіл пам’яті змінними розділами призначено для підвищення ефективності використання ОП ЕОМ. Суть способу розділу пам’яті змінними розділами полягає в тому, що завданням, коли поступають, виділяється такий об’єм пам’яті, який їм потрібен, тобто розмір розділу ОП виділюваної кожному завданню в точності відповідає розміру цього завдання. Тому перевитрати пам’яті в даному способі не спостерігається на відміну при розділі фіксованими розділами. Є 2 модифікації способу розподілу змінними розділами:

1) Розподіл змінними непереміщуваними розділами.

2) Розподіл змінними переміщуваними розділами.

При (1) ОС створює 2 таблиці:

- таблицю обліку розподілених областей пам’яті.

- таблицю обліку вільних областей пам’яті.

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

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

При (2) ОС здійснює дії, які називаються ущільненням пам’яті, які полягають в переміщенні усіх зайнятих ділянок до одного або іншого краю основної пам’яті. Завдяки цьому, замість великої кількості невеликих дір, що утворюються при використанні розподілу змінними непереміщуваними розділами, формується єдина зв’язна ділянка єдиної пам’яті. Цей процес називається дефрагментацією.

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

Дефрагментація пам’яті, застосована при розподілі переміщуваними розділами має свої недоліки:

1) потрібні додаткові витрати часу

2) під час ущільнення пам’яті система повинна припиняти всі інші роботи, що часто може виявитись неприйнятним

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

4) при інтенсивному потоці коротких програм може виникнути необхідність частої де фрагментації пам’яті так, що системні ресурси, що використовуються для цієї мети, можуть виявитись невиправданими одержаною вигодою.

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


6475122389690894.html
6475206785902735.html
    PR.RU™