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

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

Разница между непрерывным и несмежным распределением памяти

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

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

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

Определение непрерывного распределения памяти

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

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

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

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

Определение несмежного распределения памяти

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

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

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

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

Ключевые различия между смежным и несмежным распределением памяти

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

Заключение:

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

Top