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


78

Хтось може сказати мені різницю між внутрішньою та зовнішньою фрагментацією при розподілі дискового простору для файлів?


1
@binary worrier: Мені шкода .. я новачок у stackoveerflow .. але я отримую відповіді на свої запитання, пов'язані вони з програмуванням чи ні.
wantobegeek

18
Повністю пов'язане з програмуванням - будь-який курс з операційних систем охоплюватиме це у файлових системах.
Matt Mitchell,

Відповіді:


170

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

Зовнішня фрагментація

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

Внутрішня фрагментація


39

Перш за все, за ознаками фрагментації існує сутність, поділена на частини - фрагменти.

  • Внутрішня фрагментація: Типова паперова книга - це сукупність сторінок (текст розділений на сторінки). Коли кінець розділу не знаходиться в кінці сторінки, а новий розділ починається з нової сторінки, між цими розділами є розрив, і це марно витрачається місце - шматок (сторінка для книги) має невикористаний простір усередині ( внутрішньо ) - "пробіл"

  • Зовнішня фрагментація: Скажімо, у вас є паперовий щоденник, і ви не писали свої думки послідовно сторінку за сторінкою, а, скоріше, випадково. У вас може виникнути ситуація, коли ви захочете написати 3 сторінки поспіль, але не можете, оскільки немає 3 чистих сторінок одну за одною, у вас може бути 15 чистих сторінок у щоденнику повністю, але вони не суміжні


2
це дивовижна аналогія.
Сана Джахан

Неймовірна аналогія! Напевно, завдяки цьому ми ніколи не забудемо цю концепцію.
Бурак.

Найкращий приклад
Абхай Патіл

1

Я операційна система, яка виділяє вам пам'ять лише у розділах розміром 10 Мб.

Внутрішня фрагментація

  • Ви вимагаєте 17 Мб пам'яті
  • Я даю вам 20 Мб пам'яті

Виконання цього запиту щойно призвело до внутрішньої фрагментації до 3 мільйонів.

Зовнішня фрагментація

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

Виконання цього запиту щойно призвело до зовнішньої фрагментації


-19

Імовірно з цього сайту :

Внутрішня фрагментація Внутрішня фрагментація відбувається, коли розподільник пам'яті залишає зайвий простір всередині блоку пам'яті, виділеного для клієнта. Зазвичай це відбувається тому, що конструкція процесора передбачає, що пам’ять потрібно розрізати на блоки певного розміру - наприклад, блоки можуть вимагати рівномірного розподілу на чотири, вісім або 16 байтів. Коли це трапляється, клієнту, якому потрібно, наприклад, 57 байт пам'яті, може бути призначений блок, що містить 60 байт або навіть 64. Додаткові байти, які не потрібні клієнту, йдуть марно, і з часом ці крихітні шматки невикористаної пам'яті може накопичувати і створювати великі обсяги пам'яті, які не можуть бути використані розподільником. Оскільки всі ці марні байти знаходяться всередині більших блоків пам'яті, фрагментація вважається внутрішньою.

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


19
Медді, ти, здається, скопіювала цей текст з іншого сайту, мабуть, цього . Якщо ви зробите це, як мінімум, вам потрібно додати посилання назад на сайт із зазначенням місця, звідки ви його скопіювали. Я зробив це для вас тут. Це все ще прикордонна відповідь, однак - у майбутньому, будь ласка, використовуйте подібну інформацію як основу для відповіді, яку ви пишете самі, а не як цілу відповідь .
Michael Petrotta,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.