Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы к ГОСАМ ВМКСС 0704.docx
Скачиваний:
29
Добавлен:
27.04.2019
Размер:
2.8 Mб
Скачать

Сегментное распределение

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

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

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

Рис. 2.14. Распределение памяти сегментами

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

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

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

Странично-сегментное распределение

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

Рис. 2.15. Схема преобразования виртуального адреса в физический для  сегментно-страничной организации памяти

17. КЭШ-память. Назначение. Принцип функционирования.

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

  1. Построить ОП на более быстродействующей элементной базе (дорогостоящий)

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

Отличительными особенностями КЭШ являются:

  1. Малый объем (от 8кбайт)

  2. Быстродействие сравнимое с быстродействием процессора.

КЭШ – это тайник, недоступно для программ, так как не может быть адресовано машинными командами.

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

Пусть ОП состоит из 2n адресуемых слов, можно представить ОП под совокупность блоков фиксированной длинны по «к» слов в каждом. Тогда емкость оперативной памяти можно записать следующим выражением

КЭШ память состоит из C строк по «к» слов в каждой. Причем емкость КЭШ во много раз меньше емкости ОП.

В процессе выполнения задачи, некоторое подмножество блоков в ОП находятся строго в КЭШ. Каждая строка в КЭШ снабжается ТЭГом, является служебной областью, как правило ТЭГ содержит старшие разряды поля адресов памяти. ТЭГ нужен для установления соответствия между ОП и КЭШ.

Структурная организация КЭШ

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

Если происходит КЭШ попадание, то буферы адреса и данных блокируются, весь процесс обращения ведется без участия ОП.

Если происходит событие КЭШ промах, то затребованный процессором адрес выставляется в буфер адреса , передается на системную магистраль, затем происходит поиск в ОП, блок информации копируется в буфер данных, затем передается в КЭШ, затем ЦП.