В чем разница между пейджинговой и сегментной адресацией ОЗУ

Обновлено: 04.07.2024

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

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

Сегментация и пейджинг

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

Что такое пейджинг?

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

  • Чтобы определить разбиение на страницы в ОС, мы должны понимать, как ОС считывает и получает доступ к данным из вторичного хранилища в виде блоков, называемых страницами. Эти блоки или страницы имеют одинаковый размер.
  • Физическая область памяти состоит из одной страницы, называемой фреймом. При использовании подкачки структура не обязательно должна включать единственное физически непрерывное пространство во вторичном хранилище.
  • Пейджинговый подход в компьютерной архитектуре дает пользователям преимущество перед традиционными методами управления памятью. Это связано с тем, что это позволяет более эффективно и быстро использовать доступное хранилище.

Что такое сегментация?

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

  • Сегментация приводит к наличию набора разрешений, длина которых связана с одним и тем же.
  • Если смещение, присутствующее в сегменте, находится в диапазоне, указанном длиной сегмента, то ссылка разрешена, в противном случае будет вызвано аппаратное исключение.
  • Программа пользователя, а также связанные с ней данные делятся на несколько сегментов. Эти сегменты не обязательно должны быть одного размера, даже если существует максимальная длина сегмента.
  • Логический адрес, использующий сегментацию, состоит из двух частей: количества сегментов и дислокаций, присутствующих в этом сегменте.

Ключевое различие между пейджингом и сегментацией

  • Существенное различие между пейджингом и сегментацией заключается в том, что пейджинг предоставляет не только физическое, но и виртуальное адресное пространство.
  • Он также предоставляет дополнительное пространство памяти в виде блоков (страниц) эквивалентной длины.
  • Сегментация дает виртуальное адресное пространство в виде блоков (сегментов).
  • Эти блоки напрямую соответствуют объектам на уровне программирования.
  • Сегменты не имеют фиксированной длины и могут быть изменены во время выполнения программы.
  • Еще одно отличие состоит в том, что разработчики приложений ничего не знают о подкачке.
  • Для них память линейна; кроме того, они знают, что система и процессор управляют разделом и преобразуют их в виртуальные адреса.
  • В системах сегментации сегмент и страница указываются в программах как две части. Страницы имеют одинаковую длину, а сегменты отличаются по размеру.

Заключение

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


< /p>

Пейджинг и сегментация — это процессы, с помощью которых данные сохраняются на диске компьютера, а затем извлекаются с него.

Пейджинг – это функция управления памятью компьютера, которая представляет ЦП компьютера места хранения в виде дополнительной памяти, называемой виртуальной памятью. Каждому фрагменту данных нужен адрес хранения.

Сегментация – это виртуальный процесс, который создает адресные пространства переменного размера в компьютерной памяти для связанных данных, называемых сегментами. Этот процесс ускоряет поиск.

Управление памятью компьютера — это базовая функция операционной системы, а подкачка и сегментация — базовые функции ОС. Ни одна система не может эффективно полагаться только на ограниченную оперативную память. Таким образом, блок управления памятью компьютера (MMU) использует диск хранения, жесткий диск или твердотельный накопитель, в качестве виртуальной памяти в дополнение к ОЗУ.

Давайте подробно рассмотрим пейджинг, а затем подробно рассмотрим сегментацию.

Что такое пейджинг?

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

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

  • Страница: непрерывный блок виртуальной памяти фиксированной длины, расположенный на диске.
  • Кадр: непрерывный блок фиксированной длины, расположенный в ОЗУ; размер которых идентичен страницам.
  • Физическая память. Оперативная память компьютера (ОЗУ), обычно содержащаяся в картах DIMM, прикрепленных к материнской плате компьютера.
  • Виртуальная память. Виртуальная память — это часть жесткого диска или твердотельного накопителя, зарезервированная для эмуляции оперативной памяти. MMU передает виртуальную память с диска на ЦП, чтобы снизить нагрузку на физическую память.
  • Виртуальный адрес: ЦП генерирует виртуальный адрес для каждого активного процесса. MMU сопоставляет виртуальный адрес с физическим местоположением в ОЗУ и передает адрес на шину. Виртуальное адресное пространство – это диапазон виртуальных адресов, находящихся под контролем процессора.
  • Физический адрес. Физический адрес — это место в оперативной памяти. Физическое адресное пространство — это набор всех физических адресов, соответствующих виртуальным адресам ЦП. Физическое адресное пространство — это диапазон физических адресов, находящихся под управлением MMU.

paging

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

Процесс пейджинга

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

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

Однако постоянный поиск в таблице может замедлить работу MMU. Кэш памяти, называемый резервным буфером перевода (TLB), хранит последние преобразования виртуальных адресов в физические для быстрого поиска. Многие системы имеют несколько TLB, которые могут располагаться в разных местах, в том числе между ЦП и ОЗУ или между несколькими уровнями таблицы страниц.

Различные размеры фреймов доступны для наборов данных с большими или меньшими страницами и фреймами соответствующего размера. Стандартные размеры – от 4 КБ до 2 МБ, а на высокопроизводительных серверах доступны фреймы размером в 1 ГБ.

Проблема, называемая скрытой фрагментацией, раньше была проблемой в старых развертываниях Windows (95, 98 и Me). Проблема заключалась во внутренней (или скрытой) фрагментации. В отличие от серьезной внешней фрагментации при сегментации, внутренняя фрагментация возникает, если размер каждого кадра не соответствует размеру страницы. Однако в современной ОС Windows это не проблема.

Что такое сегментация?

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

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

segmentation

Сегментация ускоряет поиск информации компьютером за счет помещения связанных данных в «таблицу сегментов» между ЦП и физической памятью.

Процесс сегментации

В каждом сегменте хранятся основные функции процессов, структуры данных и утилиты. ЦП хранит таблицу карт сегментов для каждого процесса и блока памяти, а также идентификацию сегмента и расположение памяти.

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

Проблема фрагментации

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

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

Сегментированный пейджинг

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

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

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

 Разница между пейджингом и сегментацией» width=

Пейджинг и сегментация — это методы управления памятью в операционной системе. Теперь, чтобы понять разницу между пейджингом и сегментацией, во-первых, необходимо знать основы управления памятью. Итак, давайте быстро обсудим это.
Память — это место для хранения данных в наших компьютерных системах. Он разделен на большое количество мелких частей, называемых ячейками или байтами. Каждый байт имеет свой адрес. В наших компьютерах у нас есть 2 типа памяти: вторичная память и первичная память, также известная как ОЗУ. Как мы все знаем, все наши программы хранятся во вторичной памяти, и для их выполнения нам нужен ЦП (центральный процессор). Теперь ЦП не подключен напрямую к вторичной памяти из-за ограничений скорости. ЦП подключен к основной памяти. Вот почему для запуска любой программы она должна находиться в основной памяти (или ОЗУ). Но скорость обработки ЦП очень высока. А для эффективного использования ЦП необходимо хранить все больше и больше программ в оперативной памяти. Как мы все знаем, размер оперативной памяти в наших системах значительно меньше, поскольку это дорогая память. Из-за меньшего размера очень важно эффективно управлять памятью. Что мы подразумеваем под управлением памятью? Когда программы попадают в оперативную память, им необходимо выделять память таким образом, чтобы могло храниться все больше и больше программ. При управлении памятью мы создаем разделы в памяти таким образом, чтобы в нее можно было помещать все больше и больше программ, а также мы создаем разделы в программе, чтобы хранить ее в памяти. Здесь память относится к основной памяти, то есть ОЗУ.


< /p>

У нас есть два типа методов управления памятью:

  • Выделение непрерывной памяти
  • Непрерывное выделение памяти

При распределении непрерывной памяти всем разделам программы выделяется непрерывная память в основной памяти. При непрерывном распределении у нас есть два типа разбиения: фиксированное разбиение и переменное разбиение. Как следует из названия, при фиксированном разбиении мы делим память на слоты фиксированного размера. Каждый раздел будет иметь одинаковый размер. С другой стороны, при разбиении на разделы переменного размера размер раздела будет зависеть от размера программы и будет распределяться динамически. Всякий раз, когда программа попадает в оперативную память, только тогда мы выделяем им место. Если программа размером 5 Мб, то в памяти будет выделен раздел размером 5 Мб. Независимо от типа разбиения, вся программа всегда будет выделять только непрерывную память. Здесь не допускается растягивание программы.

При несмежном распределении памяти нет необходимости хранить все разделы программы непрерывно. Мы можем хранить разные разделы программы в разных распределениях памяти. Пейджинг и сегментация — это методы управления несмежной памятью.

Что такое пейджинг?

В методе управления памятью подкачки мы делим программу на фиксированные страницы одинакового размера, а основную память (ОЗУ) делим на фиксированные кадры одинакового размера. Размер каждой страницы всегда будет равен размеру каждого кадра. И за счет этого одна страница процесса точно поместится в кадре.Когда программа поступает в систему для выполнения ЦП, проверяется ее размер, который выражается в количестве страниц. Каждой странице процесса требуется один кадр для сохранения. Таким образом, если программа разбита на n страниц, то в оперативной памяти должно быть доступно не менее n свободных фреймов. Если доступно n кадров, они распределяются по страницам этого нового прибывающего процесса. Первая страница программы загружается в один из выделенных фреймов, а номер фрейма добавляется в таблицу страниц для этого процесса. Следующая страница загружается в другой фрейм, его номер фрейма добавляется в таблицу страниц и т. д.


< /p>

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


< /p>

Преимущества пейджинга

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

Недостатки пейджинга

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

Например, предположим, что размер страницы/фрейма составляет 8 МБ, а размер процесса — 14 МБ. В этом случае будет выделено 2 кадра, но последний кадр будет иметь 2 МБ свободного места.


< /p>

В худшем случае процессу потребуется n страниц плюс 1 дополнительный байт. Ему будет выделено n + 1 фрейм, что приведет к внутренней фрагментации почти всего фрейма.
Например, рассмотрим процесс размером 9 МБ, где размер страницы равен 8 МБ. В этом случае будет выделено 2 кадра. Второй кадр будет занят только 1 байтом.


< /p>

Таблицы страниц и таблицы кадров используются для хранения сведений о свободном и выделенном пространстве. Они потребляют дополнительную память для хранения. Каждый процесс будет иметь свою собственную таблицу страниц в памяти.

Что такое сегментация?

Сегментация – это метод управления памятью, который используется для хранения программы в основной памяти. В сегментации процесс делится на части переменного размера, известные как сегменты. Сегменты различаются по длине, и длина каждого сегмента неотъемлемо определяется его назначением в программе. Сегментация поддерживает взгляд программиста на память. Итак, как программист смотрит на память? Итак, при написании программы программист думает о ней как об основной программе с набором методов, процедур или функций. Он также может включать в себя различные глобальные переменные, стек, объекты и так далее. Точно так же при сегментации компилятор рассматривает программу как разные сегменты. Когда программа компилируется, компилятор автоматически делит всю программу на сегменты. Компилятор может создавать отдельные сегменты для глобальных переменных, стеков, кода, кучи и т. д. Информация о каждом сегменте хранится в таблице, известной как таблица сегментов.


< /p>

Преимущества сегментации

  • Сегментация поддерживает взгляд программиста на память.
  • Нет внутренней фрагментации.
  • Размер таблицы сегментов обычно меньше размера таблицы страниц. Потому что в подкачке нам нужна отдельная таблица страниц для каждого процесса. И размер каждой таблицы страниц будет зависеть от количества страниц в процессе.

Недостатки сегментации

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

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

< tr> td>
S.NoПейджингСегментация
1.Программа разбивается на части одинакового размера, известные как страницы, для хранения их в основной памяти.Программа разбивается на части переменного размера, известные как сегменты, для хранения их в основной памяти.
2. Пейджинг выполняется операционной системой.Сегментация выполняется компилятором.
3.Код одной и той же функции может храниться на разных страницах.Одна и та же функция хранится в одном сегменте.
4. Это приводит к менее эффективной системе, поскольку для выполнения одной функции нам может потребоваться доступ к нескольким страницам. Это приводит к более эффективной системе потому что компилятор хранит функции одного типа в одном сегменте.
5. Таблицы страниц используются для хранения сведений о страницах и фреймах.Таблицы сегментов используются для хранения сведений о сегментах.
6.Чтобы преобразовать логический адрес в физический адрес запись таблицы страниц, имеющая

Заключение

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

Часто задаваемые вопросы

В. Является ли пейджинг непрерывным?
Нет, пейджинг — это несмежное выделение памяти. Мы можем хранить страницы программы в несмежных фреймах.

В. Для чего используется пейджинг?
А. При непрерывном распределении памяти мы не можем распределить процесс по разным разделам памяти. Это приводит к внешней фрагментации. Чтобы преодолеть это, мы используем несмежное выделение памяти. Всякий раз, когда процесс хочет войти в ОЗУ, мы проверяем общее количество дыр в памяти. Делаем перегородки процесса по размерам отверстий. Теперь этот процесс является дорогостоящим, потому что мы разделяем процесс во время выполнения. Поэтому, чтобы сделать весь этот процесс менее затратным, мы заранее разделяем процесс на страницы фиксированного размера и ОЗУ на кадры фиксированного размера.

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

 Разница между пейджингом и сегментацией

Что такое пейджинг?

Разделение между фиксированным и переменным секционированием неэффективно с точки зрения использования памяти, поскольку фиксированное секционирование приводит к внутренней, а динамическое — к внешней фрагментации. Возможное решение проблемы фрагментации — позволить процессу не записываться в непрерывный блок памяти. Программу можно произвольно раскидать в памяти. В этом случае рабочая память делится на более мелкие блоки фиксированного размера, называемые фреймами. Логическое адресное пространство программы также разделено на блоки одинакового размера, называемые страницами. Когда программа вводится в память, страницы записываются в свободные кадры памяти. Для удобства переноса программ с диска в оперативную память диск также разбит на фреймы того же размера, что и фреймы памяти. Таким образом, один кадр с диска записывается в один кадр оперативной памяти. Система подкачки работает следующим образом: когда программа принимается к исполнению, вычисляется ее размер, который выражается в необходимом количестве страниц. Если свободно достаточное количество кадров, процесс записывается в память постранично. При этом в таблицу фреймов вносится количество фреймов, в которых пишется каждая страница.

Что такое сегментация?

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

Разница между пейджингом и сегментацией

1. Концепция пейджинга и сегментации

Пейджинг предоставляет виртуальное и физическое адресное пространство, а также вторичное пространство памяти в блоках (страницах) одинаковой длины. Это позволяет выделять постоянное виртуальное адресное пространство для процесса рассредоточения (не обязательно постоянно распределяемого) в реальном адресном пространстве и вторичной памяти. Даже страница как термин относится к памяти, а не к логическим объектам, видимым на программном уровне. Сегментация предоставляет виртуальное адресное пространство на блоках (сегментах), которые непосредственно соответствуют объектам на программном уровне. Из-за этого сегмент не имеет фиксированной длины, поэтому даже размер сегмента можно изменить во время выполнения программы. Таким образом, защита и разделение возможны на уровне объекта, и существуют видимые процессы, в которых выполняется сегментация.

2. Характеристики пейджинга и сегментации

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

3. Преимущества пейджинга и сегментации

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

Читайте также: