Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
AOS_otvety_1.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
3.29 Mб
Скачать

Привилегии подробнее:

В процессоре Пентиум – МАНДАТНЫЙспособ определения прав доступа (механизм колец защиты):

Есть 4 уровня привилений:

0 – ядро

1, 2 – системные утилиты

3 – прикладные проги

Для характеристики уровня привилегий есть несколько переменных:

  • DPLDescripror Privilege Level – (DPL –поле в дескрипторе сегмента – в таблице дескрипторов)

  • RPLRequest Privilege Level – (RPL – поле в селекторе сегмента (то, с чем мы запрашиваем память))

  • СPLCurrent Privilege Level – (RPL – поле в селекторе кодового сегмента (то, что сейчас выполняется))

  • EPLEffective Privilege Level – эффективный уровень привилегий запроса. Что это?

Уровни привилегий назначаются дескрипторам и селекторам. В любом случае это 2 бита: 00 01 10 11. Основное из чего оно вычисляются все переменные – DPL.

При остановке процесса уровень привилегий процесса сохраняется в его контексте. В Процессоре Пентиум это записывается в системный сегмент TSS – task state segment

Контроль доступа:

- к сегментам данных

Сопоставление EPL запроса и DPL сегмента данных:

EPL = max (RPL, CPL) - худшее

CPL – привилегии выполняемого кода

RPL – это привилегии, с которыми запрашиваем данные

DPL – привилегии, с которыми данные могут быть запрошены

- к сегменту стека

Предотвратить доступ низкоуровневого кода к данным, выработанным высокоуровневым кодом и помещенным в стек

EPL кода = DPL сегмента стека, тогда разрешен доступ

Т.е. для каждого уровня привилегий используется отдельный сегмент стека.

- к сегменту кода

CPL сравниваем с DPL, а как именно – все сложно.

  1. Смешанная сегментно-страничная организация памяти в системах на основе процессоров с архитектурой ia32. Трансляция адреса. Буфер ассоциативной трансляции (tlb).

Для поддержки страничной организации – в управляющем регистре CR0 нужно старший бит PG установить в 1.

При этом сегментный механизм продолжает работать, но смысл его работы меняется.

  • ВАП процесса ограничивается размером 4 Гб

  • Оно делится на витруальные сегменты

  • Виртуальные сегмены могут накладываться друг на друга (процессор это не контролирует, это забота ОС)

  • ВАП и ФАП разбиты на страницы размером 4 кб

  • Всего страниц – 1 Мб, 2 20 степени

Виртуальный адрес – это СЕЛЕКТОР + СМЕЩЕНИЕ.

1 этап преобразования: сегментный:

  • На основании индекса селектора берем нужный дескриптор из GDT или LDT

  • Из дескриптора добываем базовый адрес сегмента

  • Но! Базовый адрес дескриптора здесь – это базовый адрес сегмента в ВАП а не в ФАП как в сегментной организации.

  • Плюсуем к базовому адресу смещение = Линейный Виртуальный Адрес.

ЛВА передаем страничному механизму.

2 этап – страничный.

  • ЛВА на основании размера страницы делим на номер страницы и смещение

  • Находим в таблице страниц нужный дескриптор

  • Находим номер физической страницы

  • Плюсуем смещение

Вот как выглядит дескриптор страницы в таблице страниц

P – бит присутствия в физической памяти

W – бит разрешения записи

U – бит пользователь / супервизор

A – к странице был доступ

D – признак модификации

PWT и PCD – управление механизмом кэширования

AVL – резерв для нужд ОС

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

Номер виртуальной страницы (20 разрядов) – делится на номер раздела и номер страницы в разделе. Ну и дальше все преобразуется как описано в страничном механизме.

Трансляция адреса. Буфер ассоциативной трансляции (TLB).

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

Буфер ассоциативной трансляции (англ. Translation lookaside buffer, TLB) — это специализированный кэш центрального процессора, используемый для ускорения трансляции адреса виртуальной памяти в адрес физической памяти. TLB используется всеми современными процессорами с поддержкой страничной организации памяти. TLB содержит фиксированный набор записей (от 8 до 4096) и является ассоциативной памятью. Каждая запись содержит соответствие адреса страницы виртуальной памяти адресу физической памяти. Если адрес отсутствует в TLB, процессор обходит таблицы страниц и сохраняет полученный адрес в TLB, что занимает в 10—60 раз больше времени, чем получение адреса из записи, уже закешированной TLB. Вероятность промаха TLB невысока и составляет в среднем от 0,01 % до 1 %.

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

Иногда верхний уровень TLB разделяется на 2 буфера, один для страниц, содержащих исполняемый код, и другой — для обрабатываемых данных.

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

    Иерархия запоминающих устройств:

Память часто называют «узким местом» фон-Неймановских  ВМ из-за ее серьезного отставания по быстродействию от процессоров, причем, разрыв этот неуклонно увеличивается.

Так, если производительность процессоров возрастает вдвое примерно каждые 1,5 года, то для микросхем памяти прирост быстродействия не превышает 9% в год (удвоение за 10 лет), что выражается в увеличении разрыва в быстродействии между процессором и памятью приблизительна на 50% в год.

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

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

Фундамент пирамиды – внешняя память (жесткий и гибкий магнитный диск, магнитные ленты, оптические диски, флэшки):

  1. Объем – десятки и сотни гигабайт

  2. Время доступа – десятки миллисекунд

Оперативная память:

  1. Объем – гигабайты

  2. Время доступа – 10-20 наносекунд

  3. Реализуется на относительно медленной динамической памяти DRAM

Быстродействующая память (ее же называют Кэш??)

  1. На основе статической памяти SRAM

  2. Объем – десятки-сотни килобайт

  3. Время доступа – до 8 наносек

Регистры процессора

  1. Объем – десятки байт

  2. Время доступа – 2-3 наносекунды (определяется быстродействием процессора)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]