Головна

фіксований розподіл

  1. II. РОЗПОДІЛ ТРУДОМІСТКОСТІ ПО РОЗДІЛАХ, ТЕМАМИ ДІСІЦІПЛІНИ І ВИДІВ НАВЧАЛЬНОЇ РОБОТИ
  2. II. РОЗПОДІЛ ТРУДОМІСТКОСТІ ПО РОЗДІЛАХ, ТЕМАМИ ДИСЦИПЛІНИ І ВИДІВ НАВЧАЛЬНОЇ РОБОТИ
  3. II. Розподіл годин курсу за темами
  4. III. Розподіл повноважень у сфері охорони підприємства
  5. III. РОЗПОДІЛ НАВЧАЛЬНОГО ЧАСУ ПО семестр, РОЗДІЛІВ, ТЕМ І ВИДІВ НАВЧАЛЬНИХ ЗАНЯТЬ
  6. III. РОЗПОДІЛ ГОДИН КУРСУ ЗА ТЕМАМИ І ВИДАМИ РОБІТ
  7. III. РОЗПОДІЛ ГОДИН КУРСУ ЗА ТЕМАМИ І ВИДАМИ РОБІТ

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

розміри розділів

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

При використанні розділів з однаковим розміром є дві проблеми.

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

- Використання основної пам'яті при цьому вкрай неефективно. Будь-яка програма, незалежно від її розміру, займає розділ цілком. Так, в нашому прикладі програма розміром менше мегабайта все одно буде займати цілком розділ в 8 Мбайт; при цьому залишаються невикористаними 7 Мбайт блоку. Цей феномен появи невикористаної пам'яті через те, що завантажується блок за розміром менше розділу, називається внутрішньої фрагментацією(Internal fragmentation).

Боротися з цими труднощами (хоча і не усунути повністю) можна за допомогою використання розділів різних розмірів (див. Рис. 7.2,6). У цьому випадку програма розміром 16 Мбайт може обійтися без оверлеїв, а розділи малого розміру дозволяють зменшити внутрішню фрагментацію при завантаженні програм малого розміру.

алгоритм розміщення

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

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

Хоча цей метод є оптимальним з точки зору окремого розділу, він не оптимальний з точки зору системи в цілому. Уявімо, що в системі, зображеній на рис. 7.2,6, в певний момент часу немає жодного процесу розміром від 12 до 16 Мбайт. В результаті розділ розміром 16 Мбайт буде пустувати, в той час як він міг би з успіхом використовуватися меншими процесами. Таким чином, кращим підходом є використання однієї черги для всіх процесів (див. Рис. 7.3,6). У момент, коли потрібно завантажити процес в основну пам'ять, для цього вибирається найменший доступний розділ, здатний вмістити даний процес. Якщо все розділи зайняті, слід прийняти рішення про звільнення одного з них. Мабуть, слід віддати перевагу процесу, що займає найменший розділ, здатний вмістити завантаження процес. Можна врахувати й інші фактори, такі, як пріоритет процесу або його стан (заблокований він або активний).

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

- Кількість розділів, певне в момент генерації системи, обмежує кількість активних (НЕ призупинених) процесів.

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

Фіксований розподіл в даний час практично не використовується. Прикладом успішної операційної системи з використанням даної технології може служити рання операційна система IBM для мейнфреймів OS / MFT (многозадачная з фіксованою кількістю завдань - Multiprogramming with a Fixed number of Tasks).

 



РОЗПОДІЛ ПАМ'ЯТІ | динамічний розподіл

управління пам'яттю | переміщення | логічна організація | фізична організація | система двійників | переміщення | сторінкової організації | СЕГМЕНТАЦИЯ | Ключові терміни | ДОДАТОК. ЗАВАНТАЖЕННЯ І ЗВ'ЯЗУВАННЯ |

© um.co.ua - учбові матеріали та реферати