Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
sp.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
213.38 Кб
Скачать
  1. Интерфейс прикладных программ (api). Apidos (программные прерывания) и Win32

Интерфейс прикладного программирования (иногда интерфейс программирования приложений) (англ. applicationprogramminginterface, API [эй-пи-ай])[1] — набор готовых классов, процедур функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) для использования во внешних программных продуктах.

Прерывания в DOS – механизм оперативного реагирования на происходящие события. Являются средством выхода за рамки однозадачного режима и унифицированным интерфейсом между программами. Типы прерываний:

– внешние аппаратные (маскируемые и немаскируемые) – от аппаратных узлов ЭВМ, действительно прерывают нормальное выполнение программ;

– исключительные ситуации ЦП – возникают вследствие выполнения тех или иных инструкций;

– программные – активизируются программами в произвольные моменты инструкциями int, служат межпроцессного взаимодействия.

Аппаратная поддержка системы прерываний – см. описание аппаратных ресурсов. К этому этапу относится все, что происходит вне контроля прикладной программы.

Независимо от источника прерывания, его обработка в архитектуре x86 выполняется программно и базируется на таблице векторов прерываний.

Обработчик прерывания – программа (подпрограмма), ассоциированная с данным прерыванием и получающая управление при его возникновении. Как правило, резиденты включают один или более обработчиков. Ряд обработчиков принадлежат ОС или BIOS, их также можно считать резидентными. Кроме того, собственные обработчики могут определять обычные (транзитные) программы. С одним прерыванием может быть ассоциировано более одного обработчика, образуя цепочку (каскад) (см. ниже).

Вектором прерывания принято называть полный (сегмент/смещение) адрес точки входа обработчика, в данный момент сопоставленного прерыванию, и обозначать его номером этого прерывания. Текущие установки векторов (256 адресов, суммарно 1 Кбайт) содержатся в специальной таблице, расположенной по нулевому физическому адресу. Таблица хранит только адреса "верхних" в цепочке обработчиков. Действие аппаратных средств поддержки системы прерываний заканчивается выборкой из таблицы одного из адресов и передача ему управления.

Примечание. Некоторые вектора реально не являются адресами обработчиков.

Резиденты и обработчики прерываний представляют собой выход за рамки однозадачности DOS, что отличает их от большинства приложений этой ОС

  1. Дисковая подсистема в архитектуре ibmpc

Логическая структура дисковых устройств в архитектуре IBMPC, унифицированная для всех операционных систем, предназначенных для этой архитектуры, предусматривает представление устройства как совокупности одного или более логических разделов (partitions).

В физически первом секторе диска (первый сектор нулевой поверхности нулевого цилиндра) находятся главная загрузочная запись (MasterBootRecord – MBR) и таблица разделов (PartitionTable). Таблица разделов начинается со смещения в секторе 1BEh и содержит до 4 записей по 16 байт, каждая из которых описывает один раздел (формат см. ниже). Один из разделов может быть определен как активный, т.е. используемый как загрузочный для операционной системы. MBR представляет собой программу, которая занимает первые 446 сектора (обычно намного меньше) и выполняет поиск активного раздела, считывание его загрузочной записи и передачу ей управления (предваряется также необходимыми подготовительными действиями). На данном этапе управление целиком принадлежит MBR, алгоритм действий которого в общем случае может сильно отличаться от "типового". Однако MBR ряда операционных систем ПЭВМ в той или иной степени взаимозаменяемы.

Раздел должен включать обязательно целое число цилиндров. Обычно границы разделов выравниваются по целым цилиндрам, однако это не обязательно.

Т.к. 4 разделов таблицы недостаточно, а также из-за ограничений на размер раздела было введено понятие расширенного раздела (extendedpartition). Такой раздел содержит в начале сектор, аналогичный первому сектору диска и содержащий пустой MBR и действительную таблицу разделов, описывающую разделы, принадлежащие уже этому extendedpartition. Среди этих разделов может быть следующий расширенный, и т.д. Таблица разделов может содержать не более 1 расширенного раздела.

Примечание. В русской терминологии "разделом" принято называть и раздел, целиком занимающий всю область, описываемую одним "partition", и часть расширенного "partition". В первом случае употребляется также термин "первичный раздел" или "первичный partition", во втором – просто "логический раздел" или "логический диск". Сложившийся перевод термина "primary" как "первичный" иногда признается неудачным: некоторые источники предлагают вариант "простой" – в противоположность "расширенному".

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]