Внутренняя и внешняя фрагментация - PullRequest
67 голосов
/ 29 июля 2009

Может ли кто-нибудь подсказать разницу между внутренней и внешней фрагментацией при выделении дискового пространства для файлов?

Ответы [ 3 ]

149 голосов
/ 27 июля 2014

Внешняя фрагментация
Всего пространства памяти достаточно для удовлетворения запроса или для размещения в нем процесса, но он не является смежным, поэтому его нельзя использовать.

External fragmentation

Внутренняя фрагментация
Блок памяти, назначенный процессу, больше. Некоторая часть памяти остается неиспользованной, поскольку она не может быть использована другим процессом.

Internal fragmentation

22 голосов
/ 09 мая 2017

Прежде всего, термин фрагментация подсказывает, что сущность делится на части - фрагменты.

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

  • Внешняя фрагментация: Скажем, у вас есть бумажный дневник, и вы не пишете свои мысли последовательно страница за страницей, но, скорее, случайно. Вы можете столкнуться с ситуацией, когда вам захочется написать 3 страницы подряд, но вы не можете этого сделать, потому что нет 3 чистых страниц одна за другой, у вас может быть всего 15 чистых страниц в дневнике, но они не смежные

0 голосов
/ 05 апреля 2014

Предположительно с этого сайта :

Внутренняя фрагментация Внутренняя фрагментация происходит, когда память Распределитель оставляет дополнительное пространство пустым внутри блока памяти, который был выделен для клиента. Обычно это происходит потому, что Конструкция процессора предусматривает, что память должна быть разрезана на блоки определенные размеры - например, блоки могут потребоваться равномерно делится на четыре, восемь или 16 байтов. Когда это происходит, клиент, который необходимо 57 байтов памяти, например, может быть выделен блок, который содержит 60 байтов или даже 64. Дополнительные байты, которые клиент не делает нужно тратить, и со временем эти крошечные кусочки неиспользованной памяти могут создать и создать большое количество памяти, которая не может быть помещена в использовать распределитель. Потому что все эти бесполезные байты находятся внутри при больших блоках памяти фрагментация считается внутренней.

Внешняя фрагментация Внешняя фрагментация происходит, когда Распределитель памяти оставляет секции неиспользуемых блоков памяти между части выделенной памяти. Например, если несколько блоков памяти расположены непрерывной линией, но один из средних блоков в линия освобождается (возможно, потому что процесс, который использовал этот блок памяти перестала работать), свободный блок фрагментирован. Блок есть все еще доступны для использования распределителем позже, если есть необходимость память, которая помещается в этот блок, но блок теперь непригоден для больший объем памяти Он не может быть объединен с общим свободным доступная для системы память, так как общая память должна быть непрерывной для это будет полезно для больших задач. Таким образом, целые разделы свободная память может оказаться изолированной от целого, что часто слишком маленький для значительного использования, что создает общее сокращение свободного память, которая со временем может привести к нехватке доступной памяти для ключа задачи.

...