Рекомендуємо, 2024

Вибір Редакції

Різниця між внутрішньою та зовнішньою фрагментацією

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

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

Діаграма порівняння

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

Визначення внутрішньої фрагментації

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

Це залишкове простір всередині блоку фіксованого розміру не може бути виділено для будь-якого процесу, оскільки його недостатньо для задоволення запиту пам'яті процесом. Розберемо внутрішню фрагментацію за допомогою прикладу. Простір пам'яті розділяється на блоки фіксованого розміру 18, 464 байтів. Припустимо, що процес запиту на 18, 460 байтів і секціонований блок фіксованого розміру 18.464 байтів виділено процесу. Результат 4 байта 18, 464 байта залишився порожнім, що є внутрішньою фрагментацією.

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

Визначення зовнішньої фрагментації

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

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

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

Ключові відмінності між внутрішньою та зовнішньою фрагментацією

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

Висновок:

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

Top