- •Классификация эвм, краткие характеристики суперЭвм, мейнфреймов и мини-эвм
- •Настольная вычислительная система.
- •Классификация процессоров.
- •Регистровая модель процессора 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. Стратегии размещения
Аппаратная поддержка многозадачности, формат сегмента состояния задачи - tss.
Для многозадачных и многопользовательских операционных систем важна способность процессора к быстрому переключению выполняемых задач. Операция переключения задач процессора сохраняет состояние процессора и связь с предыдущей задачей, загружает состояние новой задачи и начинает ее выполнение. Состояние каждой задачи сохраняется в сегменте состояния задачи (TSS), который, как и любой другой сегмент, определяется дескриптором (см. рисунок 1.6). Дескриптор TSS может быть расположен только в GDT. Ни в LDT, ни в IDT он не может быть расположен. При попытке обращения к TSS
селектором сегмента с установленным флагом TI (который указывает на текущую LDT) генерируется исключение общей защиты #GP. Исключение общей защиты генерируется и в том случае, если производится попытка загрузки селектора TSS в сегментный регистр. Флаг занятости (В) в поле типа говорит о том, занята задача, или нет. Занятой является выполняемая или приостановленная задача. Значение поля типа 1001b индицирует неактивную задачу, а 1011b – занятую. Задачи не являются рекурсивными. Переключение задач выполняется по инструкции межсегментного перехода (JMP) или вызова (CALL), ссылающейся на сегмент состояния задачи (TSS) или дескриптор вентиля задачи в GDT или LDT. Переключение задач может происходить также по аппаратным и программным прерываниям и исключениям, если соответствующий элемент в IDT является дескриптором вентиля задачи. Дескриптор TSS
указывает на сегмент, содержащий полное состояние процессора, а дескриптор вентиля задачи содержит селектор, указывающий на дескриптор TSS.
Каждая задача должна иметь связанный с ней TSS. 32-разрядные процессоры допускают и 16-битный формат TSS. Оба типа сегментов содержат образы регистров процессора, раздельные указатели стеков для
уровней 0, 1 и 2, а также обратную ссылку на TSS вызвавшей задачи. Свободное поле TSS может использоваться по усмотрению операционной системы. TSS для процессоров 386+ содержит элементы, отсутствующие в TSS 80286: битовые карты разрешения ввода/вывода и перенаправления
прерываний, а также бит отладочной ловушки Т (при Т=1 переключение в данную задачу вызывает исключение отладки). Последним элементом TSS 386+ должен быть байт 0FFh. Значение поля лимита дескриптора для TSS 386+ должно превышать 0064h. Структура сегмента состояния задачи
показана на рисунке 1.8. Карта разрешения ввода/вывода (I/O Permission Bit Map), расположенная в конце TSS 386+, имеет по одному биту на каждый адрес портов ввода/вывода. Разрешению обращения соответствует нулевое значение бита. Максимальный размер таблицы (2000h), соответствующий
всем 64 К адресам, может быть урезан лимитом TSS. Порты с адресами, не попавшими в усеченную таблицу, считаются недоступными. Текущий TSS идентифицируется специальным регистром задачи TR
(Task Register). Этот регистр содержит селектор, ссылающийся на дескриптор текущего TSS. Программно-невидимые регистры базового адреса и лимита, связанные TR, загружаются при загрузке в TR нового
селектора. Для возврата управления задаче, вызвавшей текущую задачу, или ей прерванной, используется инструкция IRET. В регистре флагов имеется флаг вложенной задачи NT (Nested Task), который управляет действием инструкции IRET. При NT = 0 IRET работает обычным образом, оставаясь 30 в текущей задаче. При NT = 1 (текущая задача – вложенная) IRET выполняет переключение в предыдущую задачу.
Рисунок 1.8 – Структура сегмента состояния задачи
Когда инструкции CALL, JMP или INT выполняют переключение задач, старый (кроме случая JMP) и новый TSS помечаются занятыми (меняется значение Type в их дескрипторах), и в поле обратной ссылки в
новом TSS устанавливается значение селектора старого TSS. Инструкции CALL и INT, переключающие задачи, устанавливают в новой задаче бит NT. Прерывание, не вызывающее переключение задач, сбросит бит NT. Этот бит может устанавливаться и сбрасываться инструкциями POPF и IRET.
Смена контекста сопроцессора при переключении задач автоматически не производится, так как новой задаче сопроцессор может и не понадобиться. Однако, если процессор обнаруживает первое
31 использование сопроцессора после переключения задачи, он вырабатывает исключение #NM. Обработчик этого исключения сам определит, необходима ли смена контекста. Каждый раз при переключении задач
процессор устанавливает бит TS (Task Switched) в MSW. Это указывает на то, что контекст процессора может относиться к другой задаче. При выполнении инструкций ESC или WAIT, если TS = 1 и MP = 1 (сопроцессор присутствует), вырабатывается исключение #NM (отсутствующий сопроцессор).