Отображение адресного пространства программы на основную память. Статическое и динамическое перемещение

ФЕДЕРАЛЬНОЕ ГосударственноЕ БЮДЖЕТНОЕ образовательное учреждениЕ

Высшего профессионального образования

«КУРГАНСКИЙ Государственный университет»

 

Кафедра информационных технологий и методики преподавания информатики

 

Факультет математики и информационных технологий

 

 

Контрольная работа по дисциплине

«Вычислительные системы, сети, телекоммуникации»

 

 

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

 

 

Выполнил: студент группы Мз-10312

 

 

Проверил: доцент

Медведев А.А.

 

 

 

 

 

 

 

 

 

 

Курган

2013

Оглавление

 

Введение.

Главная задача компьютерной системы – выполнять программы. Программы вместе с данными, к которым они имеют доступ, в процессе выполнения должны (по крайней .мере частично) находиться в оперативной памяти. Операционной системе приходится решать задачу распределения памяти между пользовательскими процессами и .компонентами ОС. ..Эта деятельность называется управлением памятью. Таким образом, память (storage, .memory) является важнейшим ресурсом, требующим тщательного управления. В недавнем прошлом память была самым дорогим ресурсом. Вопросы, связанные с организацией памяти, являются .СЛОЖНЕЙШИМИ во всей теории операционных систем.

История вопроса.

Первые режимы организации памяти

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

Дальнейшее развитие методов организации

.Далее развивалась непростая ситуация с размером памяти, необходимой для выполнения .программ (поэтапно):

1. .Реальный режим – сколько есть оперативной памяти для программы, столько она и может .использовать. Не больше. Введена адресация сегмента <сегмент, смещение>.

2. .В защищенном режиме попробовали расширить возможности организации памяти: .использовали возможность размещения части программы в памяти внешнего устройства. .

3. .Метод этот назвали сегментным методом. Введена адресация сегмента <селектор, .смещение> и понятия дескриптора и таблицы дескрипторов.

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

5. .Развитие техники привело к увеличению размера прикладных программ, и, следовательно, к необходимости предоставления им больших ресурсов памяти. .

6. .Но адресное пространство памяти, к которому можно обратиться, ограничено .разрядностью Шины Адреса (и разрядностью регистров памяти, они могут не совпадать).

7. .Физически мы уже не можем увеличить разрядность ША, но программно-аппаратными .способами можем обойти это ограничение.

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

9. .Эти модификации привели к появлению принципиально нового режима (модели) .организации памяти -Метод виртуализации памяти (или виртуальный режим). .Дополнительно этот метод позволил существенно улучшить защиту ОС от внешнего .вмешательства.

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

 Классификация методов управления памятью

Рисунок 1

По степени использования внешней памяти (классическая модель) Современные системы распределения памяти делятся на:

Динамические (выделение некоторой части из полного объема требуемой памяти .и обеспечение работы с этой частью; остальная память выделяется по мере .необходимости)

Виртуальные (работа с виртуальной памятью, емкость которой равна всему физическому адресному пространству)

Идеи, реализованные в менеджере памяти

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

  • Идея сегментации
  • Идея разделения памяти на физическую и логическую
  • Идея локальности

Сегментация

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

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

Адрес состоит из двух компонентов: <номер сегмента, смещение внутри сегмента>. Далее оказалось удобным размещать в разных сегментах данные разных типов (код .программы, данные, стек и т. д.). Попутно выяснилось, что можно контролировать характер работы с конкретным сегментом, приписав ему атрибуты, например, права .доступа или типы операций, разрешенные с данными, хранящимися в сегменте.

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

Разделение на физическую и логическую память

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

 Адреса, к которым обращается  процесс, отделяются от адресов, реально существующих в оперативной  памяти.

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

Задача ОС -в какой-то момент времени осуществить связывание (или отображение) .логического адресного пространства с физическим.

Рисунок 2

Локальность

Свойство локальности присуще природе.

Свойство локальности присуще и работе ОС. Фактически свойство локальности объяснимо, если учесть, как пишутся программы и организованы данные, то есть обычно в течение какого-то отрезка времени ограниченный фрагмент кода работает с .ограниченным набором данных.

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

Типичный пример иерархии: регистры процессора, кэш процессора, главная (основная) .память, внешняя память на магнитных дисках (вторичная память).

Физическая организация памяти компьютера

Классификация памяти

Запоминающие устройства компьютера разделяют, как минимум, на два уровня:

  • основную (главную, оперативную, физическую, реальную) память
  • вторичную (внешнюю) память.

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

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

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

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

Вторичная память характеризуется тем, что:

  • В отличие от оперативной памяти, она является энергонезависимой.
  • Имеет существенно большую емкость (это требование ко вторичной памяти)
  • Используется в качестве расширения основной памяти.

Иерархия памяти

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

Рисунок 3 Иерархия памяти

Многоуровневую схему используют следующим образом:

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

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

Описание уровней иерархии

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

Память должна быть:

  • Достаточно большо
  • Чрезвычайно быстрой
  • Очень дешёвой

Проанализируем уровни иерархии памяти:

  1. Регистры ЦП - При доступе к регистру задержки не происходят, программы могут .сами управлять регистрами (Сами решают, что в них хранить без вмешательства .аппаратуры).

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

  1. КЭШ - Контролируемая оборудованием память, ограниченная в размерах => .Высокая стоимость/
  2. ОЗУ -десятки-сотни мегабайт. Все запросы ЦП, которые не могут быть выполнимы КЭШ памятью, поступают для обработки в основную память. Оперативное запоминающее устройство предназначено для хранения информации (программ и данных), непосредственно участвующей в вычислительном процессе на текущем .этапе функционирования ПК.

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

  1. .Жесткий диск - дисковая память на два порядка дешевле и по сравнению с ОЗУ на .два порядка больше по емкость. Но у диска есть только одна проблема: случайный доступ к данным на нём занимает примерно на три порядка больше времени.

Причиной низкой скорости жесткого диска является тот факт, что диск представляет собой сложную механическую конструкцию и состоит из одной или .нескольких металлических пластин, вращающихся со скоростью 5400,7200 или 10800 оборотов в минуту. Перемещение головки от одного цилиндра к другому занимает около 1мс., а перемещение к произвольному цилиндру требует от 5 до 10 мс, в зависимости от диска. Когда головка располагается над правильной дорожкой, нужно ждать, пока двигатель повернет диск так, чтобы под головкой встал требуемый сектор.

  1. ПЗУ - Программируется при производстве, его нельзя изменить

Логическая память

Аппаратная организация памяти в виде линейного набора ячеек не соответствует .представлениям программиста о том, как организовано хранение программ и данных. Большинство программ представляет собой набор модулей, созданных независимо друг .от друга. Иногда все модули, входящие в состав процесса, располагаются в памяти один за другим, образуя линейное пространство адресов. Однако чаще модули помещаются в разные области памяти и используются по-разному.

Понятие сегмента

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

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

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

Рисунок 4 Пример расположения сегментов процессов в памяти компьютера

Адресация сегмента в реальной памяти (режиме)

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

Режимы работы процессора

Главным недостатком работы процессора в реальном режиме (он устанавливается с .момента запуска процессора, и в нем работает ДОС) является то, что любое приложение .может нарушить работу системы. Каким образом: занять адресное пространство, .отведенное в ОЗУ для ОС (см. наши рисунки).

Чтобы избежать этого был разработан защищенный режим (начиная с i80386).

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

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

История организации памяти

  1. Подавляющее большинство владельцев персональных компьютеров, совместимых .с IBM PC, используют операционную систему Microsoft MS-DOS или аналогичную .(IBM PC DOS или Digital Research DR DOS). Все эти операционные системы изначально разрабатывались для микропроцессора фирмы Intel i8086 или его более дешёвого аналога i8088. Именно такие микропроцессоры были установлены в первых персональных компьютерах фирмы IBM -IBM PC и IBM XT. Процессоры i8086 и i8088 относятся к 16-разрядным процессорам. Максимальный объём адресуемой ими оперативной памяти составляет 1 мегабайт, что определяется использованием 20-разрядной адресации памяти.
  2. Разработчики фирмы IBM из всего мегабайтного адресного пространства отвели для оперативной памяти 640 килобайт, зарезервировав остальное для BIOS и аппаратуры. Именно на такую конфигурацию адресного пространства и рассчитана операционная система MS-DOS (и её аналоги). Поэтому максимальный размер оперативной памяти, доступной программам, работающим под управлением MSDOS, обычно составляет 500-620 килобайт, в зависимости от версии операционной .системы и её настройки, от типа компьютера, от конфигурации драйверов и .резидентных программ.
  3. По мере внедрения персональных компьютеров в различные сферы деятельности человека быстро возрастала сложность программного обеспечения и требования к аппаратуре персонального компьютера. Скоро стало ясно, что для успешного решения многих задач объёма памяти в 640 килобайт явно недостаточно.
  4. Следующая удачная модель процессора фирмы Intel -16-разрядный процессор i80286 - принципиально отличается от i8086. Этот процессор может работать в двух .режимах - реальном и защищённом
  5. .В реальном режиме процессор i80286 является практически полным аналогом .i8086, но имеет большее быстродействие. В реальный режим процессор переключается после аппаратного сброса или после включения питания компьютера. Реальный режим обеспечивает полную совместимость процессора i80286 с .программным обеспечением, подготовленным для i8086. Поэтому компьютер .IBM AT (и его аналоги), в котором установлен процессор i80286, способен без труда работать с операционной системой MS-DOS и программами, разработанным ранее для процессора i8086. Однако полностью возможности i80286 реализуются в так называемом .защищённом режиме, в который процессор может переключиться специальной .командой из реального режима.
  6. В защищённом режиме процессор i80286 полностью преображается. Используя совершенно иной метод адресации памяти, процессор i80286 расширяет .адресное пространство до 16 мегабайт. Процессор i80286 в защищённом режиме имеет встроенную поддержку мультизадачных операционных систем, значительно ускоряющую и упрощающую процесс переключения задач. Эта поддержка активно используется всеми мультизадачными операционными системами и оболочками, разработанными для компьютера IBM PC/AT.
  7. Кроме расширения адресного пространства, новый метод адресации памяти позволяет изолировать адресные пространства отдельных задач друг от друга. При этом прикладная программа, работающая в среде операционной системы, использующей защищённый режим, не может случайно или намеренно разрушить целостность самой операционной системы.
  8. В следующих моделях процессоров фирмы Intel - i80386 и i80486 -помимо .расширения адресного пространства до умопомрачительной величины в 4 .гигабайта реализована концепция страничной виртуальной памяти. Всё это возможно только в защищённом режиме Механизм страничной виртуальной памяти позволяет разместить часть оперативной памяти на диске. Это и дешевле Кроме того, реально только механизм страничной виртуальной памяти может .обеспечить прикладные программы относительно быстрой оперативной памятью, .размер которой больше размера физической памяти, установленной в .компьютере.
  9. Помимо страничной виртуальной памяти в процессорах i80386 и i80486 .реализован так называемый режим виртуального процессора i8086 или просто виртуальный режим, реализуемый в рамках защищённого режима (процессор .может переключиться в виртуальный режим только из защищённого режима).

Адресация памяти

Проблема передачи физического адреса

Для работы с памятью используются две шины - шина адреса и шина данных. Физически память устроена таким образом, что возможна адресация как 16-битовых слов, так и отдельных байтов памяти. Кроме того, процессоры i80386 и i80486 могут .адресовать 32-битовые слова памяти. В любом случае так называемый физический адрес передаётся из процессора в память по шине адреса. Ширина шины адреса определяет максимальный объём физической памяти, непосредственно адресуемой процессором. На рис. 5 показана схема взаимодействия процессора и памяти через шины адреса и данных.

Рисунок 5 Шины адреса и шины данных

Например, компьютер IBM XT оснащён 20-разрядной шиной адреса и 16-разрядной .шиной данных.

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

00000h <= *диапазон физического адреса+ <= FFFFFh

Таким образом, для представления физического адреса в компьютерах IBM PC и IBM XT .используется двадцать двоичных или пять шестнадцатеричных разрядов. Однако все регистры процессора i8086 являются 16-разрядными. Возникает проблема .представления 20-разрядного физического адреса памяти при помощи содержимого 16...разрядных регистров.

Двукомпонентный логический адрес

Для разрешения этой проблемы используется двухкомпонентный логический адрес. Логический адрес состоит из 16-разрядных компонент: компоненты сегмента памяти и .компоненты смещения внутри сегмента.

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

Рисунок 6 Адресация памяти в реальном режиме

Логический адрес принято записывать в форме <сегмент:смещение>

Очевидно, что одному физическому адресу может соответствовать несколько логических.

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

Компонента смещения при такой схеме адресации является смещением внутри сегмента памяти. А сам сегмент памяти задаётся сегментной компонентой.

Рисунок 7 Соответствие логических и физических адресов

Рис.7 иллюстрирует сказанное выше. На этом рисунке показано соответствие логического .адреса 0002h:0028h физическому адресу 00048h.

Логический адрес должен находиться в следующих пределах:

0000h:0000h <= [логический адрес]<= FFFFh:000Fh

Архитектура процессоров серии i80XXX, работающих в реальном режиме, предполагает хранение сегментной компоненты адреса в специальных сегментных регистрах:

  • CS -сегмент кода
  • DS .-сегмент данных
  • ES .-дополнительный сегмент данных
  • SS .-сегмент стека.

Компонента смещения может находиться в регистрах BX, BP, SI, DI, IP. Задавая произвольные значения сегментной компоненты и компоненты смещения любая программа может адресоваться к любому участку памяти компьютера. В частности, любая программа может преднамеренно или из-за ошибки разрушить области данных, принадлежащие операционной системе.

Недостатки схемы адресации памяти реального режима

Выделим два основных недостатка схемы адресации памяти реального режима:

  • ограниченное адресное пространство (до 1 мегабайта плюс примерно 64 .килобайта старшей области памяти для процессоров i80286, i80386 и i80486);
  • свободный доступ для любых программ к любым областям данных, что .представляет потенциальную опасность для целостности операционной системы.

Этих недостатков полностью лишена схема адресации памяти, которая используется в защищённом режиме.

Связывание адресов

Принцип трансляции адресов

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

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

 

Рисунок 8 Формирование логического адреса и связывание логического адреса с физическим

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

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

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

  • Этап компиляции (Compile time). Когда на стадии компиляции известно точное место размещения процесса в памяти, тогда непосредственно генерируются .физические адреса. При изменении стартового адреса программы необходимо .перекомпилировать ее код. В качестве примера можно привести .com программы .MS-DOS, которые связывают ее с физическими адресами на стадии компиляции
  • .Этап загрузки (Load time). Если информация о размещении программы на стадии компиляции отсутствует, компилятор генерирует перемещаемый код. В этом случае окончательное связывание откладывается до момента загрузки. Если стартовый адрес меняется, нужно всего лишь перезагрузить код с учетом .измененной величины.
  • Этап выполнения (Execution time). Если процесс может быть перемещен во время выполнения из одной области памяти в другую, связывание откладывается до стадии выполнения. Здесь желательно наличие специализированного оборудования, например регистров перемещения. Их значение прибавляется к каждому адресу, сгенерированному процессом. Большинство современных ОС осуществляет трансляцию адресов на этапе выполнения, используя для этого специальный аппаратный механизм. Например, MS-DOS использует четыре таких (сегментных) регистра

ОС и схемы управления реальной памятью

Функции ОС по управлению памятью

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

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

Простейшие схемы управления реальной памятью

Основные понятия

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

Затем возникло предложение делить все свободное пространство ОЗУ на разделы.

Затем появился "простой свопинг" (система по-прежнему размещает каждый процесс в .основной памяти целиком, но иногда на основании некоторого критерия целиком .сбрасывает образ некоторого процесса из основной памяти во внешнюю и заменяет его .в основной памяти образом другого процесса). Такого рода схемы имеют не только .историческую ценность. В настоящее время они применяются в учебных и научно-исследовательских модельных ОС, а также в ОС для встроенных (embedded) .компьютеров.

Для начала рассмотрим структуру памяти ОЗУ и процедуру стандартной загрузки .программы.

  • Часть ОЗУ, начиная с адреса 00000h до (в нашем примере) 00F1A, занимает ОС. Остальное место в ОЗУ условно признаем свободным Программа, собирающаяся занять место в ОЗУ, размещается в ней, занимая адресное пространство (с номера 00F1A до некоего адресного значения).

Смежное размещение процессов

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

Первый — метод смежного размещения, второй — метод несмежного размещения.

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

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

Однопрограммный и оверлейный режимы

Это частные случаи смежного размещения. При смежном размещении размер загружаемой программы ограничивается размером ОЗУ. Для того чтобы при смежном размещении загружать программы, размеры которых превышают .размеры ОЗУ, используют метод оверлейных сегментов (overlay segments).

В программе, имеющей древовидную структуру (основной корневой сегмент программы и несколько оверлейных сегментов). Модули второго уровня работают сугубо последовательно, поэтому в памяти может находиться только один из них. Далее они сменяют друг друга.

Рисунок 9 Разбиение теля программы на корневой и оверлейный сегменты

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

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

Отображение адресного пространства программы на основную память. Статическое и динамическое перемещение