50.11. АДРЕСНОЕ ПРОСТРАНСТВО И ВИРТУАЛЬНАЯ ПАМЯТЬ




THIS SECTION IS UNDER CONSTRUCTION


Адресное пространство / \ сплошное сегментированное +-----------+ +-------------+ | | | | | | |+-----------+|+< -------+ | | || окно ||| | | | || ||| | | |< --+ || ||+< --+ | | | | || || | | | | | |+-----------+| | | | | | | | | | | | | | | | | +-----------+ | +-------------+ | | | | | +-----------+ | +-----+-------+ | | | Offset |----+ | Seg | Offset|-----+ | +-----------+ +-----+-------+ | | | +---------------------+




Виртуальная память: Зачем нужна виртуальная память? Память, деньги и время - ресурсы которых не бывает много. Виртуальная память помогает создать иллюзию для прикладных что памяти много, а на самом деле эта дополнительная память находится на диске или где то еще и при необходимости считывается/записывается оттуда. Как правило виртуальная память организуется страницами фиксированного размера, хотя может организовыватся и сегментами. VIRTUAL PHYSICAL +-----------+ +-----------+ | |----------+ | | +-----------+ | +-----------+ | | +--=------->| | +-----------+ | | +-----------+ | | | +------->| | +-----------+ | +-----------+ | |-------+ +-----------+ | |------> NOT PRESENT +-----------+ | | +-----------+ | | +-----------+ Если идет обращение к странице, а страница не присутствует в памяти, то возникает аппаратное внутрипроцессорное прерывание-исключение (exception), управление передается операционной системе, которая загружает эту страницу, ставит ей флаг, что она присутствует в памяти и перезапускает инструкцию которая вызвала исключение.




Direct-Mapped Paging:

Associative Paging:

Set Associative Paging:

Рассмотрим виртуальную память на 386 процессоре: 10 bit 10 bit 12 bit +---------------+-------------+-----------------+ | DIR | PAGE | OFFSET | +---------------+-------------+-----------------+ | | | +----------+ | | | | CR3 | V | | +----------+ INDEX in | | | | | | PDT (Pages | +---------+ | Directory Table) V | \---->+----------------+ INDEX in | | .... | | +----------------+ PT (Pages Table) | | PT desc. |------>+-------------------+ V +----------------+ | ...... | OFFSET in page | .... | +-------------------+ +----------------+ | Page desc. | ---> +-----------+ | | +-------------------+ | Page in | | | | ..... | | memory 4K | | | +-------------------+ +-----------+ +----------------+ Память организована в виде страниц размером 4K. Системный регистр CR3 процессора указывает на таблицу директории страниц. Каждый вход в этой таблице указывает на таблицу страниц. А каждый вход в таблице страниц указывает на страницу в памяти. Типичные аттрибиты страниц в таблицах страниц: o Существует/не существует о Присутствует в физической памяти o Была ли модифицированна o Разрешено ли чтение/запись/выполнение о Можно ли cachировать и как o Уровень доступа (пользователь/система)


TLB

Операция вычисления физического адресса по виртуальному занимает очень много времени (2 обращения к памяти на 386). Что бы повысить производительность используется TLB (Translation Lookahead Buffer) - это типа cache но не для данных, а для адрессов страниц.



TLB имеет структуру такую же как cache. В качестве Tag - используется часть виртуального адресса страницы, в качестве данных - используется физический адресс страницы.

Собственно процессор не обязан работать с таблицами страниц аппаратно Некоторые архитектуры (Alpha) на Page Fault вызывают exception, а операционная система сама ходит по таблицам и результат записывает через специальные системные регистры в TLB. Полный цикл доступа к памяти:





Index Prev Next