Может ли кто-нибудь сказать мне разницу между внутренней и внешней фрагментацией при выделении дискового пространства для файлов?
Внутренняя и внешняя фрагментация
Ответы (4)
Внешняя фрагментация
Общий объем памяти достаточен для выполнения запроса или для размещения в нем процесса, но он не является непрерывным, поэтому его нельзя использовать.
Внутренняя фрагментация
Блок памяти, назначенный процессу, больше. Некоторая часть памяти остается неиспользованной, поскольку она не может быть использована другим процессом.
Во-первых, термин фрагментация указывает на то, что сущность разделена на части — фрагменты.
Внутренняя фрагментация. Типичная бумажная книга представляет собой набор страниц (текст разделен на страницы). Когда конец главы находится не в конце страницы, а новая глава начинается с новой страницы, между этими главами есть пробел, и это пустая трата места — чанк (страница для книги) имеет неиспользуемое пространство внутри< /em> (внутри) — "пробел"
Внешняя фрагментация. Предположим, у вас есть бумажный дневник, и вы записываете свои мысли не последовательно, страница за страницей, а скорее случайным образом. Может получиться ситуация, когда хочется написать 3 страницы подряд, но нельзя, так как нет 3-х чистых страниц подряд, у вас может быть всего 15 чистых страниц в дневнике, но они не смежные
Я операционная система, которая выделяет вам память только в 10-мегабайтных разделах.
Внутренняя фрагментация
- Вы просите 17мб памяти
- Я даю вам 20мб памяти
Выполнение этого запроса только что привело к 3 Мб внутренней фрагментации.
Внешняя фрагментация
- Вы просите 20мб памяти
- Я даю вам 20мб памяти
- 20 МБ памяти, которые я вам даю, не непосредственно примыкают к другому существующему фрагменту выделенной памяти. Вручая вам это воспоминание, я разделил одно нераспределенное пространство на два пространства.
Выполнение этого запроса только что привело к внешней фрагментации
Предположительно с этого сайта:
Внутренняя фрагментация Внутренняя фрагментация возникает, когда распределитель памяти оставляет дополнительное пространство пустым внутри блока памяти, выделенного для клиента. Обычно это происходит из-за того, что в конструкции процессора предусмотрено, что память должна быть разрезана на блоки определенного размера — например, блоки могут быть обязаны быть равномерно разделены на четыре, восемь или 16 байт. Когда это происходит, клиенту, которому требуется 57 байтов памяти, например, может быть выделен блок, содержащий 60 байт или даже 64. Дополнительные байты, которые не нужны клиенту, пропадают, и со временем эти крошечные фрагменты неиспользуемой памяти может накапливаться и создавать большие объемы памяти, которые не могут быть использованы распределителем. Поскольку все эти бесполезные байты находятся внутри больших блоков памяти, фрагментация считается внутренней.
Внешняя фрагментация Внешняя фрагментация происходит, когда распределитель памяти оставляет участки неиспользуемых блоков памяти между частями выделенной памяти. Например, если несколько блоков памяти выделены в непрерывной строке, но один из средних блоков в строке освобожден (возможно, из-за того, что процесс, который использовал этот блок памяти, прекратил выполнение), свободный блок фрагментируется. Блок по-прежнему доступен для использования распределителем позже, если есть потребность в памяти, которая помещается в этом блоке, но теперь блок непригоден для больших потребностей в памяти. Его нельзя свести к общей свободной памяти, доступной системе, поскольку общая память должна быть непрерывной, чтобы ее можно было использовать для более крупных задач. Таким образом, целые разделы свободной памяти могут оказаться изолированными от целого, которые часто слишком малы для значительного использования, что приводит к общему сокращению свободной памяти, что со временем может привести к нехватке доступной памяти для ключевых задач.