- •Классификация эвм, краткие характеристики суперЭвм, мейнфреймов и мини-эвм
- •Настольная вычислительная система.
- •Классификация процессоров.
- •Регистровая модель процессора x86.
- •Режимы работы процессора 80386.
- •1.Реальный режим
- •2. Защищенный режим
- •Процессор х86: непосредственная и регистровая адресация.
- •Процессор х86: прямая адресация и прямая со сдвигом.
- •Процессор х86: косвенная адресация и косвенная со сдвигом.
- •Процессор х86: регистровая адресация и регистровая с масштабированием.
- •Адресация с масштабированием
- •Размещение в памяти многомерных статических массивов и доступ к их элементам.
- •Размещение в памяти многомерных динамических массивов и доступ к их элементам.
- •Формирование исполнительного адреса из трех и четырех составляющих.
- •Процессор х86: инструкции копирования данных.
- •Процессор х86: инструкции ввода-вывода.
- •Представление целых чисел: прямой код, дополнительный код, bsd.
- •Процессор х86: инструкции сложения, сложения с переносом и сложение чисел в формате bcd.
- •Процессор х86: инструкции вычитания, вычитания с заемом и вычитание чисел в формате bcd.
- •Процессор х86: инструкции умножения.
- •Процессор х86: инструкция деления и операции расширения знакового бита.
- •Процессор х86: поразрядные логические инструкции, использование масок.
- •Процессор х86: инструкции сдвига. Умножение и деление на константы.
- •Процессор х86: инструкции цикла. Ожидание готовности пу с тайм-аутом.
- •Процессор х86: безусловный переход и виды меток.
- •Процессор х86: вызов процедуры; рамка стека функции в с.
- •Процессор х86: инструкции условного перехода.
- •Процессор х86: строковый примитив копирования данных.
- •Процессор х86: строковые примитивы сравнения данных, сканирования данных и заполнения данных.
- •Сегменты реального и защищенного режима. Глобальная и локальная таблицы дескрипторов.
- •Селектор сегмента. Механизм получения линейного адреса в защищенном режиме процессора x86.
- •Механизм преобразования линейного адреса в физический в процессоре x86.
- •Преимущества виртуального отображения страниц и адресное пространство процесса.
- •Формат дескриптора сегмента в процессорах x86. Прикладные сегменты.
- •Формат вентиля вызова и исключения. Область применения вентилей вызова.
- •Основные исключения защиты; обработка исключения отсутствие страницы в памяти.
- •Уровни привилегий и кольца защиты защищенного режима.
- •Аппаратная поддержка многозадачности, формат сегмента состояния задачи - tss.
- •Карта ввода/вывода. Прямой доступ к портам ввода/вывода в Windows и Linux.
- •Методы управления пу
- •Использование буферов при проведении обменов
- •Принципы, заложенные в подсистему управления вводом-выводом в ос unix
- •Система управления данными (файловая система)
- •Логическая организация файлов
- •1. Последовательная организация.
- •2. Библиотечная организация.
- •Физическая организация файлов
- •1. Распределение при помощи цепочек блоков.
- •2. Распределение при помощи цепочек индексов
- •Дескриптор файла (дф)
- •Матрица управления доступом (МтУд)
- •Управление доступом в зависимости от класса пользователей
- •Копирование и восстановление информации
- •Свопинг и пейджинг
- •2. Стратегии подкачки страниц
- •3. Стратегии размещения
Формат дескриптора сегмента в процессорах x86. Прикладные сегменты.
Формат дескрипторной таблицы.
дескрипторы сегментов
Имеется дескриптор сегмента, используемый для описания каждого сегмента в системе. Имеются обычные и системные дескрипторы. Ниже представлен дескриптор во всей своей красоте. Такой странный формат создан специально для того, чтобы обеспечить совместимость с 286. Заметьте, что он занимает 8 байт
Разъяснения:
R зарезервирован (0)
DPL 0 означает ядро, 3 означает пользователя
G 1 означает гарантировано 4К (В Linux установлен всегда)
D 1 означает 32-х битное значение операнда по умолчанию
U определяется программистом
P 1 означает присутствие в физической памяти
S 0 означает системный сегмент, 1 означает обычный сегмент кода или данных
TYPE Существует много возможностей. Прерывания различны для системных и обычных дескрипторов.
3. Формат дескрипторной таблицы.
На рисунке E.3. приведен формат дескрипторов в дескрипторных таблицах. Подробнее смотри [??? Григорьев и Обнинск.] На них обозначены:
Базовый адрес (32-х битный) - базовый адрес сегмента. Именно этот адрес сформирует процессор при нулевом смещении.
Предел (20-битный). Определяет размер сегмента в байтах.
Бит присутствия (P) установлен в состояние 1, когда он находится (присутствует) в физической памяти.
Двухбитное поле привилегий (DPL) определяет уровень привилегий сегмента. Существуют четыре уровня привилегий: от 0 до 3.
Бит S (системный, сегмент) всегда установлен в 1, если этот объект в дескрипторной таблице является сегментом. В случае S=0 данный объект может являться, а может и не являться сегментом памяти.
Бит гранулярности G. При бите гранулярности G = 0 предел сегмента измеряется в байтах, а при G = 1 - в страницах по 4 Кбайт.
Бит D - размер по умолчанию. Он определяет, какая из размерностей для данных (16 или 32 бита) применяется для операндов процессора. При D=0 процессор интерпретирует содержимое сегмента кода как 16-ти битный код процессора i80286, а при D=1 - как 32-х битный код процессора i80486 и старше. Использование бита D - самый простой способ переключения между 16-ти и 32-х битными приложениями.
Бит A - доступа и обращения. Этот бит процессор автоматически устанавливает в состояние 1, когда происходит обращение к сегменту в физической памяти, описываемым данным дескриптором. Он предназначен для предотвращения свопинга сегмента на диск в момент обращения к нему.
Бит X зарезервирован корпорацией Intel для своих будущих разработок. Он должен всегда равняться 0.
Бит U может быть использован программистом для своих целей.
Трехбитное поле ТИП используется для указания целевого использования сегмента. Его значения:
000b - сегмент данных, разрешено только считывание.
001b - сегмент данных, разрешено считывание и запись.
010b - сегмент стека, разрешено только считывание (не используется в практике.)
011b - сегмент стека, разрешено чтение и запись.
100b - сегмент кода, разрешено только выполнение.
101b - сегмент кода, разрешено выполнение и считывание.
110b - подчиненный сегмент кода, разрешено только выполнение.
111b - подчиненный сегмент кода, разрешено выполнение и считывание.