8826

Сегментация памяти

Контрольная

Информатика, кибернетика и программирование

Сегментация памяти 8.1 Основные понятия сегментации Рассмотрим пример, когда программа использует одно адресное пространство.   программа использует одно адресное пространство Недостатки такой системы: Один участок может полностью заполниться, но пр...

Русский

2013-02-17

138.5 KB

19 чел.

Сегментация памяти

8.1 Основные понятия сегментации

Рассмотрим пример, когда программа использует одно адресное пространство.

 

программа использует одно адресное пространство

Недостатки такой системы:

Один участок может полностью заполниться, но при этом останутся свободные участки. Можно конечно перемещать участки, но это очень сложно.

 

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

Рассмотрим то же пример с использованием сегментов:

 

Сегментированная память

Каждый сегмент может расти или уменьшаться независимо от других.

Сегмент - это логический объект.

В этом случае адрес имеет две части:

  •  номер сегмента
  •  адрес в сегменте

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

  •  Сегменты не мешают друг другу.
  •  Начальный адрес процедуры всегда начинается с (n,0). Что упрощает программирование.
  •  Облегчает совместное использование процедур и данных.
  •  Раздельная защита каждого сегмента (чтение, запись).

 

8.2 Реализация сегментации

Если страницы имеют фиксированный размер, то сегментов нет.

У сегментов так же, как и у страниц, существует проблема фрагментации.

 

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

 

 

8.2.1 Сегментация с использованием страниц: MULTICS

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

Каждая программа обеспечивалась до 2^18 сегментов (более 250 000), каждый из которых мог быть до 65 536 (36-разрядных) слов длиной.

Таблица сегментов - хранит дескриптор для каждого сегмента. У каждой программы своя таблица.

Т.к. записей в таблице более 250 000, она сама разбита на страницы.

Сама таблица является отдельным сегментом.

Сегмент с таблицей дескрипторов указывающих на таблицы страниц для каждого сегмента

 

Нормальный размер страницы равен 1024 словам. Если сегмент меньше 1024, то он либо не разбит на страницы, либо разбит на страницы по 64 слова.

 

Дескриптор сегмента

 

Когда происходит обращение к памяти, выполняется следующий алгоритм:

  1.  По номеру сегмента находится дескриптор сегмента.
  2.  Проверяется, находиться ли таблица страницы в памяти. Если в памяти, определяется ее расположение. Если нет, вызывается сегментное прерывание.
  3.  Проверяется, находиться ли страница в памяти. Если в памяти, определяется ее расположение в памяти. Если нет в памяти, вызывается страничное прерывание.
  4.  К адресу начала страницы прибавляется смещение, в результате получаем адрес нужного слова в оперативной памяти.
  5.  Происходит запись или чтение.

 

Преобразование адреса в системе MULTICS 

 

Так как такой алгоритм будет работать достаточно медленно. Аппаратура системы MULTICS содержит высокоскоростной буфер быстрого преобразования адреса (TLB) размером в 16 слов. Адреса 16 наиболее часто использующихся страниц хранятся в буфере.

 

8.2.2 Сегментация с использованием страниц: Intel Pentium

Каждая программа обеспечивается до 16К сегментов, каждый из которых может быть до 1 млдр  36-разрядных слов длиной.

Основа виртуальной памяти системы Pentium состоит из двух таблиц:

  •  Локальная таблица дескрипторов LDT (Local Descriptor Table) - есть у каждой программы, и описывает сегменты программы.
  •  Глобальная таблица дескрипторов GDT (Global Descriptor Table) - одна для всех программ, и описывает системные сегменты (включая саму ОС).

Каждый селектор (указывает на дескриптор) представляет собой 16-разрядный номер.

 

Селектор в системе Pentium

13 битов определяют номер записи в таблице дескрипторов, поэтому эти таблицы ограничены, каждая содержит 8К (2^13) сегментных дескрипторов.

1 бит указывает тип используемой таблицы дескрипторов LDT или GDT.

Уровни привилегированности в системе Pentium

Уровни привилегированности запрещают выполняемому коду обратиться к более низкому уровню.

С учетом максимального размера сегмента - 4 Гбайта - каждая задача, при чисто сегментной организации виртуальной памяти, работает в виртуальном адресном пространстве в 64 Тбайта (4 Гбайта * 16К, где 16К=8К*2 т.к. LDT и GDT).

 

 

Дескриптор программного (не данных) сегмента в системе Pentium (всего 8 байт (64 бита)).

База (Base) - базовый адрес сегмента (32-бита), разделен на три части из-за совместимости с i286, в котором это поле имеет только 24 бита.

Размер (Limit) - размер сегмента (20 бит), разнесен на две части.

Если размер сегмента указан в страницах, он может достигать 2^32 байтов (2^20 * 4Кбайт (2^12) (размер страницы в Pentium)).

Алгоритм получение физического адреса:

  1.  Селектор загружается в регистр (для сегмента команд в CS, для сегмента данных в DS).
  2.  Определяется глобальный или локальный сегмент (LDT или GDT).
  3.  Дескриптор извлекается из LDT или GDT, и сохраняется в микропрограммных регистрах.
  4.  Если дескриптор в памяти и смещение не выходит за пределы сегмента, программа может продолжить работу, если нет, происходит прерывание.
  5.  Система Pentium прибавляет базовый адрес к смещению, и получает линейный адрес,
    -
    если страничная организация памяти не используется, то он является физическим адресом (адрес получен),
    - если страничная организация памяти используется, то он является виртуальным адресом.
  6.  В случае, если используется страничная организация памяти, линейный адрес переводится в физический с помощью таблицы страниц.

 

Преобразование пары (селектора, смещение) в физический адрес

 

При 32-разрядном (2^32=4Гбайт) адресе и 4Кбатной странице, сегмент может содержать 1 млн страниц (4Гбайт/4Кбайта). Поэтому используется двухуровневое отображение (создана таблица (страничный каталог) содержащая список из 1024 таблиц страниц), благодаря чему можно снизить количество записей в таблице страниц до 1024.

В этом случае сегмент в 4 Мбайта (1024 записи по 4 Кбайта страницы), будет иметь страничный каталог только с одной записью (и 1024 в таблице страниц), вместо 1 млн в одной таблице.

 

Отображение линейного адреса на физический адрес

В системе Pentium также есть буфер быстрого преобразования адреса (TLB), в котором хранятся наиболее часто используемые комбинации Каталог-Страница на физический адрес страничного блока. Только если комбинация в TLB отсутствует, выполняется это алгоритм.

 

 

8.3 Особенности реализации в UNIX

В LUNIX системе на 32-разрядной машине каждый процесс получает 3Гбайта виртуального пространства для себя, и 1Гбайт для страничных таблиц и других данных ядра.

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

На компьютерах  Alpha, используется трехуровневые таблицы страниц, и размер страниц фиксирован 8Кбайт

Для каждой программы выделяется 3 сегмента:

  1.  Код программы (только для чтения)
  2.  Данные
  3.  Стек

 


PAGE  1


 

А также другие работы, которые могут Вас заинтересовать

31025. Внешняя и внутренняя политика России 1725 – 1796 18.91 KB
  Екатерина золотой век русского дворянства просвещенная монархия. 1733 1735 польская кампания поддерживали Августа III 1735 1739 русскотурецкая война 1736 захват русскими Азова действия войск в Крыму 1737 взятие крепости Очаков Сентябрь 1739 Белградский мир между Россией и Турцией 1741 1743 Русскошведская война началась по инициативе шведов 1743 Абоский мир 1756 1763 Семилетняя война 1757 Россия вступает в войну победа в сражении при ГроссЕгерсдорфе Апраксин 1758 взятие Кенигсберга Цорндорф...
31026. Внешняя политика в царствование Александра I 20.61 KB
  Участие России в 3й 1805 и 4й 1806 антинаполеоновских коалициях Переговоры России и Франции в г. Тильзит 1807 Русско шведская война 1808 1809 Переговоры России и Франции в г. По его условиям: А Финляндия в состав России как Великое княжество с широкой автономией БШвеция обязывалась порвать союз с Англией и присоединиться к континентальной блокаде. 25 декабря издание Манифеста о полном изгнании противника из пределов России Янв март 1813 освобождение Пруссии русской армией Лето 1813 образование 6...
31027. Основные направления внутр. И внешней политики Николая 1 552.1 KB
  Один из самых реакционных правителей России. III отделению передают корпус жандармов; страна поделена на несколько жандармских округов в России создана эффективная полицейская система. Консерватор трезво смотрящий на экономику России. Долг России после войны 102 млн.
31029. Внешняя политика второй половины XIX века 17.39 KB
  Наполеон III хотел заручиться поддержкой России рассчитывая обеспечить ее нейтралитет в войне с Австрией. Русскофранцузское сближение не было крепким а союз Пруссии и России был выгоден обоим государствам. Январьмарт 1871 Лондонская конференция: отмена нейтрализации Черного моря у России право держать там флот введение нового режима проливов. Образование германской империи привело к новой расстановке сил на континенте что способствовало сближению России с Германией и АвтроВенгрией.
31030. ВНЕШНЯЯ ПОЛИТИКА РОССИИ ВО ВТОРОЙ ПОЛОВИНЕ XIX в 13.9 KB
  Сложившийся против России англоавстрофранцузский блок так называемая Крымская система был нацелен на сохранение ее политической изоляции и военностратегической слабости обеспеченной решениями Парижского конгресса. дальневосточное направление во внешней политике России постепенно изменяло свой периферийный характер. добровольным вхождением Мерва территория пограничная с Афганистаном в состав России.
31031. РЕВОЛЮЦИЯ 1905-1907 гг. 44 KB
  Причины Нерешенность аграрного вопроса: малоземелье крестьян при господствующем помещичьем землевладении Противостояние самодержавия и либеральнонастроенных слоев общества вызванное отсутствием политических гражданских свобод Высокая степень эксплуатации рабочих Поражение России в РусскоЯпонской войне Неравноправие народов национальных окраин империи Задачи: Свержение самодержавия Введение демократических свобод Сокращение рабочего дня Равноправие всех народов По задачам буржуазный характер по движущим силам...
31032. НЭП 19.38 KB
  Ленин заставил ЦК послать обоих т. Крестьяне по Ленину должны набраться терпения: большевики восстановят промышленность вернут долг и будет всем светлое будущее аля Ленин: коммунистическое производство и распределение. Ленин Троцкий Платформа рабочей оппозиции Коллонтай Шляпников Платформа демократического централизма Бубнов Осинский Сапронов Профсоюзы школа коммунизма. Приняли ленинский проект о профсоюзах.
31033. Внешняя политика Советского государства в 1920-е годы 112.85 KB
  после падения Советской власти в республиках Прибалтики правительство РСФСР заключило Договоры о мире с буржуазными правительствами Эстонии Литвы Латвии признававшими их независимость и самостоятельность. Ленин ставил вопрос не только о соревновании государств представлявших разные системы собственности но и о необходимости экономического сотрудничества между странами путем предоставления концессий заключения торговых договоров и соглашений. В местечке недалеко от Генуи Рапалло Россия заключила Рапалльский договор с Германией в...