Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Сегментация с использованием страниц: Intel Pentium
Каждая программа обеспечивается до 16К сегментов, каждый из которых может быть до 1 млдр 36-разрядных слов длиной. Основа виртуальной памяти системы Pentium состоит из двух таблиц: o Локальная таблица дескрипторов LDT (Local Descriptor Table) - есть у каждой программы, и описывает сегменты программы. o Глобальная таблица дескрипторов GDT (Global Descriptor Table) - одна для всех программ, и описывает системные сегменты (включая саму ОС). Каждый селектор (указывает на дескриптор) представляет собой 16-разрядный номер. Селектор в системе Pentium 13 битов определяют номер записи в таблице дескрипторов, поэтому эти таблицы ограничены, каждая содержит 8К (2^13) сегментных дескрипторов. 1 бит указывает тип используемой таблицы дескрипторов LDT или GDT. Уровни привилегированности в системе Pentium Уровни привилегированности запрещают выполняемому коду обратиться к более низкому уровню. С учетом максимального размера сегмента - 4 Гбайта - каждая задача, при чисто сегментной организации виртуальной памяти, работает в виртуальном адресном пространстве в 64 Тбайта (4 Гбайта * 16К, где 16К=8К*2 т.к. LDT и GDT). Дескриптор программного (не данных) сегмента в системе Pentium (всего 8 байт (64 бита)). База (Base) - базовый адрес сегмента (32-бита), разделен на три части из-за совместимости с i286, в котором это поле имеет только 24 бита. Размер (Limit) - размер сегмента (20 бит), разнесен на две части. Если размер сегмента указан в страницах, он может достигать 2^32 байтов (2^20 * 4Кбайт (2^12) (размер страницы в Pentium)). Алгоритм получение физического адреса: 1. Селектор загружается в регистр (для сегмента команд в CS, для сегмента данных в DS). 2. Определяется глобальный или локальный сегмент (LDT или GDT). 3. Дескриптор извлекается из LDT или GDT, и сохраняется в микропрограммных регистрах. 4. Если дескриптор в памяти и смещение не выходит за пределы сегмента, программа может продолжить работу, если нет, происходит прерывание. 5. Система Pentium прибавляет базовый адрес к смещению, и получает линейный адрес, 6. В случае, если используется страничная организация памяти, линейный адрес переводится в физический с помощью таблицы страниц. Преобразование пары (селектора, смещение) в физический адрес При 32-разрядном (2^32=4Гбайт) адресе и 4Кбатной странице, сегмент может содержать 1 млн страниц (4Гбайт/4Кбайта). Поэтому используется двухуровневое отображение (создана таблица ( страничный каталог ) содержащая список из 1024 таблиц страниц), благодаря чему можно снизить количество записей в таблице страниц до 1024. В этом случае сегмент в 4 Мбайта (1024 записи по 4 Кбайта страницы), будет иметь страничный каталог только с одной записью (и 1024 в таблице страниц), вместо 1 млн в одной таблице. Отображение линейного адреса на физический адрес В системе Pentium также есть буфер быстрого преобразования адреса ( TLB ), в котором хранятся наиболее часто используемые комбинации Каталог-Страница на физический адрес страничного блока. Только если комбинация в TLB отсутствует, выполняется это алгоритм. Особенности реализации в UNIX В LUNIX системе на 32-разрядной машине каждый процесс получает 3Гбайта виртуального пространства для себя, и 1Гбайт для страничных таблиц и других данных ядра. На компьютерах Pentium, используется двухуровневые таблицы страниц, и размер страниц фиксирован 4Кбайта На компьютерах Alpha, используется трехуровневые таблицы страниц, и размер страниц фиксирован 8Кбайт Для каждой программы выделяется 3 сегмента: 1. Код программы (только для чтения) 2. Данные 3. Стек
Принципы аппаратуры ввода-вывода Устройства ввода-вывода Устройства делят на две категории (некоторые не попадают ни в одну): o блочные устройства - информация считывается и записывается по блокам, блоки имеют свой адрес (диски) o символьные устройства - информация считывается и записывается посимвольно (принтер, сетевые карты, мыши) Контроллеры устройств Устройства ввода-вывода обычно состоят из двух частей: o механическая (не надо понимать дословно) - диск, принтер, монитор o электронная - контроллер или адаптер Если интерфейс между контроллером и устройством стандартизован (ANSI, IEEE или ISO), то независимые производители могут выпускать совместимые как контроллеры, так и устройства. Например: диски IDE или SCSI. Операционная система обычно имеет дело не с устройством, а с контроллером. Контроллер, как правило, выполняет простые функции, например, при считывании с диска, преобразует поток бит в блоки, состоящие из байт, и осуществляют контроль и исправление ошибок, проверяется контрольная сумма блока, если она совпадает с указанной в заголовке сектора, то блок считан без ошибок, если нет, то считывается заново. Популярное:
|
Последнее изменение этой страницы: 2016-05-28; Просмотров: 718; Нарушение авторского права страницы