Разница между внутренней и внешней фрагментацией
Главное отличие
Основное различие между внутренней и внешней фрагментацией заключается в том, что внутренняя фрагментация — это пространство хранения, которое остается неиспользованным между выделенными блоками памяти, тогда как внешняя фрагментация — это промежутки между смежными блоками, которые очень малы для обслуживания запроса.
Внутренняя фрагментация против внешней фрагментации
Внутренняя фрагментация — это тип фрагментации, который имеет место, когда программе выделяется больший объем памяти, чем необходимый. Здесь свободное пространство называется внутренней фрагментацией. С другой стороны, внешняя фрагментация — это тип свободного пространства, которое образуется между незаразными блоками памяти.
Причина внутренней фрагментации — разбиение памяти на блоки фиксированного размера. С другой стороны, внешняя фрагментация — это процесс, который имеет место, когда память делится на блоки переменного размера в соответствии с размером различных процессов.
Проблема внутренней фрагментации может быть решена путем выделения программам памяти в динамических частях блоков памяти по их желанию и освобождения ее, когда в этом нет необходимости во время выполнения программы. С другой стороны, внешняя фрагментация может быть устранена путем разбиения на страницы, сжатия и сегментации, так что память может быть выделена программе несмежным образом.
Сравнительная таблица
Внутренняя фрагментация | Внешняя фрагментация |
Разница между памятью, необходимой для программы, и памятью, выделенной для нее, называется внутренней фрагментацией. | Дыры или неиспользуемое пространство, возникающее среди незаразных обрывков или фрагментов хранилища и слишком короткое для хранения новой программы, называется внешней фрагментацией. |
Относится к | |
Это пространство, которое остается неиспользованным между блоками в выделенной области. | Это пространство, которое остается неиспользованным, потому что оно слишком мало для хранения запроса. |
Причина | |
Причина внутренней фрагментации — разбиение памяти на блоки фиксированного размера. | Внешняя фрагментация имеет место, когда память или хранилище состоит из блоков разного размера в соответствии с размером различных программ. |
Вхождение | |
Это происходит, когда программе отводится больше места, чем требуется. | Это происходит, когда программа удаляется из памяти, оставляя свободное место, что вызывает внешнюю фрагментацию. |
Решение | |
Это может быть решено путем выделения программам памяти в динамических частях блоков памяти по их желанию и освобождения ее, когда в этом нет необходимости во время выполнения программы. | Это может быть решено с помощью разбиения по страницам, сжатия и сегментации, таким образом, память может быть назначена программе несмежным образом. |
Что такое внутренняя фрагментация ?
Внутренняя фрагментация — это тип фрагментации, который имеет место, когда программе выделяется больший объем памяти, чем необходимый. Это происходит, когда память распределяется по блокам фиксированного размера.
Всякий раз, когда программе требуется память, система выделяет блок фиксированного размера. Таким образом, если память, выделенная для программы, больше, чем запрошенная память, тогда разница между требуемой памятью для программы и выделенной для нее памятью называется внутренней фрагментацией. Это пространство внутри блока фиксированного размера не может быть назначено какой-либо программе, потому что его будет недостаточно для хранения новой программы.
Проблема внутренней фрагментации может быть решена путем разделения памяти на блоки переменного размера и выделения блока наилучшего размера программе, которая требует памяти. Это не решит полностью проблему внутренней фрагментации, однако в определенной степени уменьшит ее.
Пример
Вот пример внутренней фрагментации. Пространство памяти разделено на блоки фиксированного размера 18 470 байт. Но программа требует 18 460 байт. Система выделит ему разделенный блок фиксированного размера, т. Е. 18 470 байт. В результате 10 байтов из 18 470 байтов останутся пустыми, что является источником внутренней фрагментации.
Что такое внешняя фрагментация ?
Внешняя фрагментация — это дыры или неиспользуемое пространство, которое возникает среди незаразной памяти или фрагментов хранилища и слишком мало для хранения новой программы. Это происходит, когда в запоминающей памяти системы имеется достаточный объем свободного места для удовлетворения потребности программы в памяти. Но потребность в программе не может быть реализована или удовлетворена, поскольку доступная память системы находится в несмежном режиме или режиме.
Независимо от того, применяете ли вы стратегию выделения памяти первого соответствия или наиболее подходящую стратегию выделения памяти, это будет причиной внешней фрагментации. Это происходит, когда программа загружается и удаляется из памяти, оставляя после себя свободное пространство, которое создает дыры. В пространстве памяти имеется большое количество таких дыр, которые вызывают внешнюю фрагментацию.
Стратегия выделения памяти первого и лучшего соответствия может уменьшить степень внешней фрагментации, но ее нельзя полностью устранить. Пейджинг, сжатие и сегментация могут устранить внешнюю фрагментацию.
Алгоритм сжатия вызывает перемещение всего содержимого памяти в сторону и освобождает большой блок памяти. Но это дорогостоящая процедура. Альтернативное решение этой проблемы — позволить процессу получать физическую память несмежным образом. Это решение может быть достигнуто с помощью процессов разбиения по страницам и сегментации.
Пример
В компьютерной системе, когда программа запрашивает пространство, блоки назначаются в виде фрагментов. Предположим, что для хранения информации и данных в системе есть один свободный кусок памяти. Теперь есть программа, которую мы хотим сохранить в памяти. Программа будет сохранена в памяти динамически, то есть случайным образом, где бы она ни чувствовала себя комфортно или где бы она ни находила место. Когда необходимо сохранить следующую программу, она соответствующим образом изменится в пространстве памяти. Теперь мы удаляем программу из системы. Это оставит место или дыру в памяти. Это отверстие или пространство не могут использоваться с другим хранилищем, даже если оно присутствует рядом со свободной памятью и вызывает формирование внешней фрагментации.
Ключевые отличия
- Разница между памятью, необходимой для программы, и памятью, предназначенной для нее, называется внутренней фрагментацией, тогда как дыры или неиспользуемое пространство, возникающее между незаразными фрагментами памяти и слишком короткое для хранения новой программы, называется внешней фрагментацией.
- Внутренняя фрагментация относится к пространству, которое остается неиспользованным между блоками в выделенной области, с другой стороны, внешняя фрагментация относится к пространству, которое остается неиспользованным, потому что оно слишком мало для хранения запроса.
- Причина внутренней фрагментации — разбиение памяти на блоки фиксированного размера. И наоборот, внешняя фрагментация имеет место, когда память или хранилище составляются или разделяются на блоки переменного размера в соответствии с размером различных программ.
- Внутренняя фрагментация возникает, когда программе выделяется больше места, чем требуется. С другой стороны, внешняя фрагментация происходит, когда программа удаляется из памяти, оставляя свободное пространство в системном хранилище, что вызывает внешнюю фрагментацию.
- Проблема внутренней фрагментации может быть решена путем выделения программам памяти в динамических частях блоков памяти по их желанию и освобождения ее, когда в этом нет необходимости во время выполнения программы. С другой стороны, внешняя фрагментация может быть устранена путем разбиения на страницы, сжатия и сегментации, так что память может быть выделена программе несмежным образом.
Заключение
Вышеупомянутое обсуждение резюмирует, что внутренняя фрагментация и внешняя фрагментация — это два процесса в компьютерной памяти, которые вызывают бесполезную трату места для хранения. Внутренняя фрагментация происходит, когда программе выделяется больше места, чем требуется, тогда как внешняя фрагментация происходит, когда программа удаляется из памяти, оставляя свободное пространство.