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

Оглавление:

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

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

Видео: Разница между внутренней и внешней фрагментацией
Видео: J. Krishnamurti - Охай, штат Калифорния, США 1982 - Публичная беседа 4 - Каковы причины... 2024, Ноябрь
Anonim

Внутренняя и внешняя фрагментация

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

Что такое внутренняя фрагментация?

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

Рассмотрите рисунок выше, где используется механизм выделения памяти фиксированного размера. Изначально память пуста, и распределитель разделил память на разделы фиксированного размера. Затем три программы с именами A, B, C были загружены в первые три раздела, в то время как 4-й раздел еще свободен. Программа A соответствует размеру раздела, поэтому в этом разделе нет потерь, но программа B и программа C меньше размера раздела. Таким образом, в разделе 2 и разделе 3 остается свободное место. Однако это свободное пространство непригодно для использования, так как распределитель памяти назначает программам только полные разделы, но не их части. Такая трата свободного места называется внутренней фрагментацией.

В приведенном выше примере это фиксированные разделы одинакового размера, но это может произойти даже в ситуации, когда доступны разделы различных фиксированных размеров. Обычно память или самое сложное пространство делится на блоки, размер которых обычно равен степени двойки, например 2, 4, 8, 16 байт. Таким образом, программа или файл из 3 байтов будут назначены 4-байтовому блоку, но один байт этого блока станет непригодным для использования, что приведет к внутренней фрагментации.

Что такое внешняя фрагментация?

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

Рассмотрите рисунок выше, где распределение памяти выполняется динамически. При динамическом выделении памяти распределитель выделяет только необходимый размер для этой программы. Первая память полностью свободна. Затем программы A, B, C, D и E разного размера загружаются одна за другой и размещаются в памяти последовательно в указанном порядке. Позже программа А и программа С закрываются и выгружаются из памяти. Теперь в памяти есть три свободных области, но они не смежные. Теперь будет загружена большая программа под названием Program F, но ни один из блоков свободного пространства не является достаточным для программы F. Добавление всех свободных пространств определенно достаточно для программы F, но из-за отсутствия смежности это пространство непригоден для программы F. Это называется внешней фрагментацией.

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

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

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

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

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

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

Обзор:

Внутренняя и внешняя фрагментация

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

Рекомендуемые: