Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Сегментном структурированное АП






Основные задачи преобразования адресов для оперативной памяти или желаемого адресного пространства

В зависимости от структуризации АП:

 

Сегментном структурированное АП

После решения задачи размещения сегмент в САП для каждого модуля программы выделяется отдельный сегмент из памяти. В этом случае, адрес конкретной ячейки АП или виртуального пространства определяется по простой формуле Ao = Aso+Rs (смещение внутри сегмента). При решении задачи преобразования адресов данная операция выступает как относительно короткая операция (Ао – короткий виртуальный адрес в этом случае). Но процесс или программный текст состоит из нескольких модулей. При этом каждый модуль находится в собственном сегменте адресов и может располагаться как в ОП, так и в ВАП. При этом возникает новая задача: необходимо при передачи управления от одного модуля к другом (от одного сегмента к другому) учитывать их расположение в различных АП.

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

Очевидно, что для того, чтобы осуществлять задачу управления от одного модуля к другому, необходимо хранить учетную информацию о загруженных модулях и соответствующих сегментах. Эта информация структурирована. Чаще всего используется обычная табличная форма (эта таблица называется «Словарь сегментов < имя процесса>»). В этом словаре сегментов перечислены текущие базовые адреса всех модулей одного процесса, если эти модули находятся в ВАП. Так же в этой таблице хранятся абсолютные базовые адреса, если просто в ОП. При обращении к новому сегменту необходимо применять помимо короткого преобразования дополнительные преобразования адресов.

При обращении к новому сегменту S’ выбирается один из элементов таблицы сегментов. Если известен адрес начала таблицы сегментов и известен S’, то очевидно, что Ao’=Ao+S’. Тогда, при обращении к элементу нового сегмента очевидно нужно использовать следующее выражение: Ao=Ao'+R'=< Ao+S'> +R’. Такое выражение позволяет получить адрес элемента в новом сегменте или модуле, которому передаётся управление. Это выражение по виртуальному адресу называется длинная схема преобразования адресов. Выполняется один раз при обращении к новому сегменту. При первом обращении значение базового регистра R1 получается адрес элемента.

 

Как правило, может развиваться в рамках ОС одновременно несколько процессов. В этом случае необходима более сложная схема преобразования адресов. При выполнении операции в пределах одно процесса используется длинная схема преобразования. Информация о всех процесса представляется так же в специальной таблице. Эта таблица может иметь различную структуру, но в ней хранится информация о всех процессах, существующих в данный момент. Каждому пользователю (процессу) присваивается определённый номер. Совокупность всех номеров процессов и содержимого процессов представляется объединенное виртуальное АП. Механизм учёта пользователей заключается в следующем: в ц каждый элемент соответствующих тому или иному процессу содержит адрес начала в ОП таблиц сегментов, которые соответствуют данному процессу.

Будем считать, что каждый процесс определяется номером J и D – начальный адрес таблицы процессов. В этом случае очевидно выражение: < D+J> будет определять адрес начала таблицы сегмента. Если мы используем данное выражение, то адрес элемента в сегменте S со смещением Rs для процесса J можно определить следующим элементом: Ao=< < D+J> +S> +Rs. Данная операция является ещё более длинной, чем при смене сегмента. Выполняется только один раз при передаче управления очередному процессу. При этом задействовано уже три базовых регистра (R1 – базовый адрес, R2 – начало таблицы, R3- начальный адрес таблицы процессов). Данная операция называется «сверхдлинная схема преобразования адресов».

 

11032012 Лекция 2






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.