- •1.Общие сведения о пэвм.
- •3.Принципы взаимодействия основных частей пэвм.
- •4. Общие сведения об операционных системах, применяемых на пэвм.
- •5.Базовая система ввода/вывода (bios). Подсистема post.
- •Вопрос 9.Файловая система fat
- •10) Ntfs
- •11)Резидентные системные программы и утилиты. Командные файлы, файлы конфигурации системы
- •Файл autoexec.Nt
- •Файлы winstart.Bat и dosstart.Bat
- •Файл config.Nt
- •12. Прерывания дисковой системы пэвм.
- •14. Назначение, структурная схема и программирование контроллеров нdd.
- •15. Назначение и состав системы ввода-вывода.
- •19. Организация обмена данными через параллельные порты.
- •20. Характеристики микропроцессоров intel и amd
- •21. Математические сопроцессоры.
- •1. Регистры ммх
- •2. Типы данных ммх
- •3. Команды пересылки данных ммх
- •4. Команды преобразования типов ммх
- •5. Арифметические операции ммх
- •6. Команды сравнения ммх
- •7. Логические операции ммх
- •8. Сдвиговые операции ммх
- •9. Команды управления состоянием ммх
- •10. Расширение amd 3d
- •25. Модель микропроцессора для программиста.
- •Реальный режим общие сведения
- •26. Спецификация регистров микропроцессора. Режимы работы. Типы данных.
- •Реальный режим общие сведения
- •Работа с адресами
- •Обработка прерываний
- •27. Системные регистры.
- •Регистры управления памятью
- •Регистры управления процессором
- •Отладочные регистры
- •Машинно-специфичные регистры
- •31. Системные ресурсы пэвм
- •32. Дескрипторы
- •33. Сегмент состояния задачи
- •35. Прерывания пэвм
- •Исключения в защищённом режиме
- •Обработка аппаратных прерываний
- •39. Контроллер прерываний. Исключения.
- •42 Полупроводниковые пзу, рпзу.
- •43 Сегментация. Физические и логические адреса.
- •Общие сведения
- •Работа с адресами
- •Обработка прерываний
- •Вход в защищённый режим(286)
- •2.1. Подготовка к переключению в защищённый режим
- •2.2. Переключение в защищённый режим
- •2.3. Возврат в реальный режим
- •47 Режим виртуального процессора i8086
- •48 Преобразование адресов
- •Программирование микросхемы таймера 8253/8254.
- •50.Каналы и управление таймеров. Микросхемы таймера 8253/8254
- •Средства ms-dos для работы с таймером
- •51.Режимы работы таймеров. Микросхемы таймера 8253/8254
- •52.Назначение, структурная схема контроллера пдп(dma).
- •53 Программирование контроллера пдп(dma).
- •54 Организация ввода данных с клавиатуры.
- •56. Прерывания и порты клавиатуры.
- •58. Прерывания видеосистемы.
- •59.Организация вывода информации на экран дисплея через память видеоадаптера.
- •60. О рганизация вывода информации на экран дисплея через прерывания. Прерывания dos
- •Прерывания bios
- •Int 10h
- •Int 1Dh
- •Int 1Fh
32. Дескрипторы
Дескриптор (англ. Descriptor) — дословно описатель, описательный элемент.
Файловый дескриптор
Все открытые файлы ссылаются к ядру через так называемые файловые дескрипторы. Файловый дескриптор — это неотрицательное целое число. Когда мы открываем существующий файл или создаем новый файл, ядро возвращает процессу файловый дескриптор.
По умолчанию Unix-шеллы связывают файловый дескриптор 0 со стандартным вводом процесса (терминал), файловый дескриптор 1 — со стандартным выводом (терминал), и файловый дескриптор 2 — со стандартной ошибкой (то есть то куда выводятся сообщения об ошибках). Это соглашение соблюдается многими Unix-шеллами и многими приложениями — и ни в коем случае не является составной частью ядра.
Стандарт POSIX.1 заменил «магические числа» 0,1,2 символическими константами STDIN_FILENO, STDOUT_FILENO и STDERR_FILENO соответственно.
Файловые дескрипторы могут принимать значения от 0 до OPEN_MAX. Старые версии UNIX имели верхний предел до 19, позволяя одному процессу открывать до 20 файлов. Сейчас это значение увеличено до нескольких тысяч.
Дескриптор сегмента — служебная структура в памяти, которая определяет сегмент. Длина дескриптора равна восьми байтам.
-База (жёлтые поля, 32 бита) — начало сегмента в линейной памяти
-Лимит (красные поля, 20 бит) — (размер сегмента в байтах)-1 (База+Лимит = линейный адрес последнего байта)
-Права доступа (синие поля, 12 бит) — флаги, определяющие наличие сегмента в памяти, уровень защиты, тип, разрядность + один пользовательский флаг.
Дескриптор шлюза — служебная структура данных, служащая для различных переходов. Используется только в защищённом режиме. В реальном режиме некоторым аналогом может служить дальний адрес. Длина дескриптора стандартна и равна восьми байтам.
Смещение (англ. Offset, жёлтые поля) — смещение процедуры в сегменте кода;
Селектор (англ. Selector, оранжевое поле) — селектор сегмента процедуры, на который происходит переход. Может быть сегментом кода или TSS;
Количество параметров (англ. Words count, голубое поле, биты 32-36) — количество слов (16-разрядный стек) или двойных слов (32-разрядный стек), копируемых из стека вызывающей программы в стек вызываемой процедуры. Актуально только при смене уровня привилегий; используется только в шлюзах вызова (Call Gate)
Тип/права доступа (голубые поля, биты 40-47) — права доступа к шлюзу и его тип (см. Дескриптор сегмента — типы системных сегментов).
Селектор и смещение составляют обычный дальний адрес точки входа в процедуру.
При выполнении дальних команд CALL, JMP с указанием селектора шлюза, значение смещения, указываемого в команде игнорируется.
Алгоритм перехода с использованием шлюза:
Если уровень привилегий вызываемого сегмента кода численно меньше CPL, то происходит смена стека: из соответствующих полей TSS загружаются новые значения SS, (E)SP;
Если была смена стека, то в новый стек сохраняется предыдущие значения SS, (E)SP (до вызова);
Если была смена стека, а шлюз является шлюзом вызова, то в новый стек копируются WC слов/двойных слов из стека вызывающей программы;
Если это шлюз прерывания или ловушки, то сохраняется значение (E)Flags;
Сохраняется текущее значение CS, (E)IP;
Из дескриптора шлюза в регистры CS:(E)IP загружается новый дальний адрес, указанный в соответствующих полях дескриптора;