У контексті файлової системи фрагментація - це неефективне використання простору зберігання для зберігання вмісту одного файлу в різних місцях на диску, а не в одній суміжній послідовності бітів в одному місці. Фрагментація - це природне явище, яке виникає фізично на жорсткому диску або іноді на модулі пам'яті, коли дані недостатньо записуються на диску.
Дані іноді записуються поза порядком, тобто фрагменти даних не розміщуються поруч один з одним на диску, через часте використання файлів. Ці фрагменти даних називаються фрагментами. У якийсь момент операційній системі потрібно було б отримати доступ до файлової системи, щоб знайти, де різні фрагменти знаходяться на диску.
Наприклад, коли ви створюєте новий документ, скажімо, файл слова; файл, здається, знаходиться в одному місці. Ви можете відкрити файл, відредагувати його або видалити - все, що завгодно. Всі види діяльності, здається, відбуваються фізично на диску, принаймні, так ви думаєте.
На жорсткому диску може зберігатися шматок файлів в одній області пристрою, але решта існує буквально десь на іншому пристрої зберігання даних. Простіше кажучи, фрагментація відноситься до витраченого місця зберігання у файловій системі, що дозволяє розробити розрив між різними частинами файлу.
Фрагментація в основному відбувається в динамічній системі розподілу пам’яті, оскільки вона зарезервувала занадто багато місця для файлу, внаслідок чого навколо нього відкриті області.
Це якимось чином стосується розподілу фіксованого розміру. Система виділяє пам'ять різним програмам і процесам, поділяючи їх на невеликі блоки, як цього вимагає програма. Однак іноді виділяється більше пам’яті, ніж потрібно процесу, що врешті-решт призводить до того, що зайва пам’ять втрачається або залишається невикористаною.
Наприклад, пам'ять може бути виділена лише програмам у блоках, розділених на 4, 8 або 16. Коли процес вимагає 24 байт, він зазвичай отримує блок у 32 байти, надлишок 8 байт залишається невикористаним. Таким чином, невикористана пам'ять знаходиться в певному виділеному місці, і вона настільки мала, що новий процес не може бути призначений для неї, що призводить до відходів. Ці відходи називають внутрішньою фрагментацією. Мабуть, єдиний спосіб видалити цей тип фрагментації - це динамічне розподілення пам'яті.
Основна пам'ять утворює отвори між частинами виділеної пам'яті, які є занадто маленькими, щоб утримувати будь-який процес. Це є недоліком алгоритмів розподілу пам’яті, коли суміжні блоки невикористаних просторів не можуть обслуговувати новий запит, оскільки простори занадто малі для великих потреб у пам'яті. Простіше кажучи, непомітні блоки створюють отвори в пам’яті, в результаті чого невикористане сховище знаходиться за межами виділених областей, а значить, його не можна використовувати разом з основною пам'яттю для великих завдань пам'яті. Вони в кінцевому підсумку є ізольованими і не можуть бути повністю усунені з простору пам'яті. Це називається зовнішньою фрагментацією. Його можна видалити шляхом ущільнення, яке переміщує вміст пам'яті, щоб розмістити всю вільну пам'ять разом.
Внутрішня фрагментація:
Внутрішня фрагментація стосується додаткових просторів, які витрачаються на максимум, коли на процес відводиться більше пам'яті, ніж потрібно. Зазвичай це відбувається, коли блоки пам'яті фіксованого розміру виділяються програмам або процесам.
Зовнішня фрагментація:
Зовнішня фрагментація, навпаки, відноситься до невикористаних просторів, що утворюються між суміжними блоками пам'яті, які не є сусідніми один з одним..
Внутрішня фрагментація:
Вільний простір, який утворюється в межах виділеного блоку пам'яті, коли пам'ять, що виділяється на процес, більша, ніж пам'ять, яку вимагає процес, називається внутрішньою фрагментацією. "Внутрішній" відноситься до невикористаних байтів, які знаходяться у великих блоках пам'яті.
Зовнішня фрагментація:
Коли основна пам'ять утворює надто малі отвори, щоб задовольнити будь-який запит, це називається зовнішньою фрагментацією.
Внутрішня фрагментація:
Основна причина, чому виникає внутрішня фрагментація, - це коли пам'ять розділена на блоки фіксованого розміру .
Зовнішня фрагментація:
Зовнішня фрагментація - це явище, яке виникає, коли пам'ять поділяється на блоки змінного розміру на основі розміру різних процесів.
Внутрішня фрагментація:
Внутрішня фрагментація - це природне явище, яке можна усунути за допомогою динамічного розподілу пам'яті, яке полягає в динамічному розподілі частин блоків пам'яті процесам за їх запитом та звільненні, коли вони більше не потрібні під час виконання програми.
Зовнішня фрагментація:
З іншого боку, зовнішню фрагментацію можна усунути шляхом ущільнення, підкачки та сегментації, щоб пам'ять могла бути розподілена процесом безперервно.
І внутрішня, і зовнішня фрагментація - це природні явища, пов'язані з невикористаним простором пам'яті або витраченою пам'яттю. Внутрішня фрагментація страждає від неефективного розподілу пам’яті, яке відбувається, коли пам'ять, виділена для процесу, більше, ніж вимагається, залишаючи невикористаний простір у блоці пам'яті, врешті-решт спричиняючи внутрішню фрагментацію. Після вилучення процесу з фізичної пам’яті вільний простір розподіляється тут і там, і жодних сусідніх блоків пам’яті не знайти, що спричинить зовнішню фрагментацію. Однак обох явищ можна уникнути. Внутрішня фрагментація може бути зменшена, динамічно розподіляючи пам'ять на процеси, тоді як зовнішню фрагментацію можна найкраще уникнути ущільненням, пейджингом та сегментацією.