- •Системное программное обеспечение
- •Основные понятия теории операционных систем
- •Прерывания
- •Классификация операционных систем
- •Архитектура аппаратных и программных средств персонального компьютера
- •Регистры микропроцессоров Intel 8086/88
- •Формирование физического адреса
- •Прерывания
- •Особенности архитектуры микропроцессоров i80x86
- •Реальный и защищенный режимы работы процессора
- •Новые системные регистры микропроцессоров i80х86
- •Адресация в 32-разрядных микропроцессорах i80х86 при работе в защищенном режиме
- •Система прерываний 32-разрядных микропроцессоров i80х86
- •Управление задачами в операционных системах
- •Планирование процессов и диспетчеризация задач
- •Стратегии планирования (диспетчеризации)
- •Дисциплины диспетчеризации
- •Диспетчеризация задач с использованием динамических приоритетов
- •Управление памятью в операционных системах
- •Память и отображение, виртуальное адресное пространство
- •Простое непрерывное распределение и распределение с перекрытием
- •Распределение статическими и динамическими разделами
- •Разрывные методы распределения памяти
- •Распределение оперативной памяти в современных ос для пк
- •Управление вводом/выводом в операционных системах
- •Основные системные таблицы ввода-вывода
- •Файловая система
- •Структура магнитного диска
- •Файловая система fat
- •Файловая система ntfs
- •Структура тома с файловой системой ntfs
- •Основные отличия fat от ntfs
- •Управление параллельными взаимодействующими вычислительными процессами
- •Использование блокировки памяти при синхронизации параллельных процессов.
- •Синхронизация процессов посредством операции «проверка и установка»
- •Семафорные примитивы Дейкстры
- •Мониторы Хоара
- •Почтовые ящики
- •Конвейеры (программные каналы)
- •Очереди сообщений
- •Проблема тупиков и методы борьбы с ними
- •Предотвращение тупиков
- •Обход тупиков
- •Распознавание тупика
- •Современные операционные системы
- •Семейство операционных систем unix
- •Основные понятия системы unix
- •Функционирование системы unix
- •Файловая система
- •Межпроцессорные коммуникации
Формирование физического адреса
Так как внутренние регистры – 16-разрядные (216 = 64 Кбайт), а шина адреса имеет ширину 20 бит (220 = 1Мбайт), то для формирования 20-разрядного физического адреса памяти используются: сегмент адреса и смещение адреса. Физический адрес записывается парой этих значений, разделенных двоеточием, и образуется следующим образом (рис.4):
-
значение сегмента адреса, берущегося из регистра, CS сдвигается на 4 бита влево с заполнением разрядов справа нулями;
-
к образовавшемуся 20-битовому значению прибавляется значение смещения адреса из регистра IP. При возникновении переполнения берется только пять 16-ричных цифр результата.
Например, адрес 40:1Ch соответствует физическому адресу 0041Ch.
Значение регистра CS
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
00 |
00 |
00 |
00 |
15 0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Регистр IP
= 15 0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
адрес
19 0
Рис.4. Схема определения физического адреса для микропроцессоров 8086/88
Прерывания
Микропроцессоры Intel 8086/88 поддерживают 256 прерываний. Каждое из них имеет свой номер и ISR. Адрес точки входа в ISR называется вектором прерываний и хранится в специальной таблице, называемой таблицей векторов прерывания (ТВП). Код ISR может располагаться в любом месте памяти. Поэтому вектор прерывания занимает 4 байта:
-
2 байта отводится на значение сегмента адреса – значение регистра CS;
-
2 байта – на значение смещения, устанавливаемое в регистре IP.
Вся ТВП занимает 256*4 = 1024 байта и хранится в оперативной памяти, начиная с адреса 0000:0000.
При возникновении прерывания процессор помещает в стек 6 байт:
-
текущее значение регистра CS;
-
текущее значение регистра IP;
-
2 байта флагов процессора;
-
в CS и IP устанавливаются значения из ТВП, задающие начальный адрес ISR.
Прерыванию «0» соответствует вектор прерывания по адресу 0000:0000.
Прерыванию «1» соответствует вектор прерывания по адресу 0000:0004h.
Прерыванию «2» соответствует вектор прерывания по адресу 0000:00008h.
…………………………………………………………………………………..
В процессе функционирования ПК могут встретиться 4 типа прерываний:
-
Аппаратные.
Они возникают как результат внешних событий, и их генерирует специальная микросхема ПК i8259A – программируемый контроллер прерываний (PIC). Она рассчитана на 8 входов запросов прерываний (IR – Interrupt Request). Сигналы на ней возбуждают внешние устройства: таймер, клавиатура, дисководы и т.д. Выход этой микросхемы подается на специальный вход процессора INTR. Этот вход является маскируемым: если флаг IF равен 1, то процессор реагирует на прерывания по этой линии, флаг IF сброшен в 0, то – нет;
-
Немаскируемые прерывания.
Процессор, кроме входа INTR, имеет вход немаскируемых прерываний NMI. Сигнал по этому входу не может быть блокирован программным образом и вызывает прерывание с номером «2». Это прерывание имеет более высокий приоритет, чем по входу INTR и используется для организации реакции процессора на критические ситуации.
-
Программные прерывания.
Осуществляется по программной инструкции INT(«номер прерывания»).
-
Исключительные ситуации.
Генерация внутренних прерываний процессором при возникновении необычных условий при выполнении машинных команд, например «деление на нуль», «пошаговое исполнение»..