vs_convoy
@vs_convoy

Не могу понять в чем суть сегментной и страничной организации памяти?

Простите но продолжаю задавать глупые вопросы
на этот раз в чем разница сегментной и страничной организации памяти,
что значит чем меньше страница тем меньше внутренняя фрагментация.
Как эта фрагментация вообще происходит?
не ругайтесь, спасибо)
  • Вопрос задан
  • 9879 просмотров
Пригласить эксперта
Ответы на вопрос 3
При реализации страничной виртуальной памяти виртуальное адресное пространство делится на части одинакового фиксированного размера, называемые виртуальными страницами. Если виртуальное адресное пространство какого-то процесса не кратно размеру страницы, то последняя страница дополняется фиктивной областью. Физическая оперативная память также делится на части такого же размера, называемые физическими страницами. Размер страницы выбирается кратным степени двойки. Копия всех виртуальных страниц хранится на диске.
Страничное распределение памяти предусматривает только механическое разбиение на страницы, оно не позволяет различным образом организовать работу со страницами, содержащими команды и данные. При сегментном распределении памяти виртуальное адресное пространство делится на части, называемые сегментами, размер которых определяется смысловым значением содержащейся в них информации. Максимальный размер сегмента определяется разрядностью процессора, для 32-разрядного процессора он равен 4 Гбайт. Сегменты никак не упорядочиваются друг относительно друга. Виртуальный адрес задается парой чисел: номером сегмента и смещением внутри сегмента. При загрузке процесса в оперативную память помещается только часть его сегментов, полный образ виртуального адресного пространства находится на диске. Для каждого загружаемого сегмента подыскивается непрерывный участок свободной физической памяти достаточного размера.
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Сегментная адресация на x86 - тяжёлое наследие 16-битных процессоров. Поскольку значения регистров не позволяли косвенно адресовать через них более 64Kb памяти, то были дополнительно введены четыре сегментных регистра - CS (Code segment), DS (Data segment), ES (Extended Segment) и SS (Stack segment). Первый использовался в связке CS:IP (Instruction Pointer) как точка текущего выполнения программы, два следующих со стандартными DS:SI (Source Index) и ES:DI (Destination Index) для команд многобайтного просмотра/копирования, SS:SP (Stack Pointer) - указатель текущего положения стека. При этом особых запретов на использование сегментных регистров в других комбинациях не было, вполне можно было использовать CS:AX или DS:DX. Реальный адрес памяти рассчитывался как сегмент*0x10+смещение, таким образом адресовался 1Mb памяти.
Ответ написан
Комментировать
@smt31
Суть в возможности нескольких программ работать одновременно с одним и тем же адресным пространством располагаясь в разных местах физической адресации 5884907ab79949a997e4cda985e64d64.gif962ad087335b4b758fbab42d992abf52.gif
Можно почитать более подробно - Таненбаум Э. "Архитектура ЭВМ"
или посмотреть картинки и почитать страницы с понравившимися картинками
https://www.google.ru/search?q=%D0%B2%D0%B8%D1%80%...
https://www.google.ru/search?q=%D1%81%D0%B5%D0%B3%...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы