Рекомендуем, 2022

Выбор редакции

Разница между внутренней и внешней фрагментацией

Всякий раз, когда процесс загружается или удаляется из блока физической памяти, он создает маленькую дыру в пространстве памяти, которая называется фрагментом. Из-за фрагментации системе не удается выделить непрерывное пространство памяти для процесса, даже если он имеет запрошенный объем памяти, но несмежным образом. Фрагментация далее классифицируется на две категории: внутренняя и внешняя фрагментация.

Как внутренняя, так и внешняя классификация влияют на скорость доступа к данным системы. Они имеют принципиальное различие между ними, то есть внутренняя фрагментация происходит, когда для процесса выделяются блоки памяти фиксированного размера, не заботясь о размере процесса, а внешняя фрагментация происходит, когда процессам выделяется память динамически. Давайте двигаться дальше и обсудим различия, причины, решения, лежащие в основе внутренней и внешней фрагментации, с помощью сравнительной таблицы, показанной ниже.

Сравнительная таблица

Основа для сравненияВнутренняя фрагментацияВнешняя Фрагментация
основнойЭто происходит, когда блоки памяти фиксированного размера выделяются процессам.Это происходит, когда пространство памяти переменного размера выделяется процессам динамически.
ВхождениеКогда память, назначенная процессу, немного больше, чем память, запрошенная процессом, это создает свободное пространство в выделенном блоке, вызывая внутреннюю фрагментацию.Когда процесс удаляется из памяти, он создает свободное пространство в памяти, вызывая внешнюю фрагментацию.
РешениеПамять должна быть разделена на блоки переменного размера и назначить блоку наилучшего соответствия процессу.Уплотнение, разбиение на страницы и сегментация.

Определение внутренней фрагментации

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

Это оставшееся пространство внутри блока фиксированного размера не может быть выделено какому-либо процессу, так как этого было бы недостаточно для удовлетворения запроса памяти процессом. Давайте разберемся с внутренней фрагментацией на примере. Пространство памяти разделено на блоки фиксированного размера по 18 464 байта. Скажем, запрос процесса на 18 460 байтов и разделенный блок фиксированного размера из 18 464 байтов выделен процессу. В результате 4 байта из 18 464 байтов остались пустыми, что является внутренней фрагментацией.

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

Определение внешней фрагментации

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

Когда процесс загружается и удаляется из памяти, свободное пространство создает дыру в пространстве памяти, и в пространстве памяти есть много таких дыр, это называется внешней фрагментацией. Хотя первое совпадение и наилучшее совпадение могут повлиять на величину внешней фрагментации, оно не может быть полностью устранено. Уплотнение может быть решением для внешней фрагментации.

Алгоритм сжатия перемещает все содержимое памяти в одну сторону и освобождает один большой блок памяти. Но алгоритм уплотнения стоит дорого. Существует альтернативное решение для решения проблемы внешней фрагментации, которая позволит процессу получать физическую память несмежным образом. Методы достижения этого решения - разбиение на страницы и сегментация.

Основные различия между внутренней и внешней фрагментацией

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

Заключение:

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

Top