Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
02. Организация компьютеров.doc
Скачиваний:
13
Добавлен:
16.12.2018
Размер:
556.03 Кб
Скачать

2.2. Программно-аппаратный интерфейс и интерфейс прикладных программ

Возможности аппаратных средств компьютера определяют программно-аппаратный интерфейс, который характеризует функции аппаратуры и организацию компьютера, необходимые и достаточные для разработки программ. Программно-аппаратный интерфейс фиксирует в себе все необходимые программистам сведения об аппаратуре, составляющей компьютер. При этом не затрагиваются никакие аспекты внутренней организации компьютера: тип полупроводниковых элементов, напряжение электропитания, конструктивы печатных плат и т.п. Совокупность свойств аппаратуры компьютера, существенной для разработки программ, т.е. для программистов, называется архитектурой компьютера. Таким образом, термины архитектура и программно-управляемый интерфейс будем использовать как синонимы, понимая, что конкретной архитектуре соответствует конкретный программно-аппаратный интерфейс.

Как уже отмечалось, программирование в терминах программно-аппаратного интерфейса доступно только системным программистам, создающими программы – драйверы для обслуживания периферийных устройств, программ обслуживания запоминающих устройств, переключения задач, распределение памяти между задачами и т.д., которые в комплексе образуют операционную систему. Операционная система вводит интерфейс следующего уровня – интерфейс прикладных программ (API – Applicaton Programming Interface). Интерфейс прикладных программ вводит систему операторов, используемых программистами для выполнения операций ввода-вывода и хранения данных, распределения устройств и памяти между задачами, управления устройствами компьютера и процессами обработки данных. Все операторы интерфейса прикладных программ реализуются через операционную систему, т.е. посредствам соответствующих программ операционной системы, интерпретирующих операторы интерфейса прикладных программ в последовательность команд программно-аппаратного интерфейса, реализуемых аппаратурой компьютера. Программы операционной системы являются неотъемлемой частью аппаратуры компьютера: именно программы операционной системы создают операторы (функции), в терминах которые исполняются обслуживающие программы, инструментальные системы и прикладные программы.

Таким образом, аппаратура и операционной системы компьютера выступают как единый программно-аппаратный комплекс – компьютерная платформа, на которой строится программное обеспечение более высокого уровня, в том числе прикладные программы, взаимодействующие с аппаратурой через интерфейс прикладных программ.

Программно-аппаратный интерфейс. Программно-аппаратный интерфейс определяет функции, реализуемые аппаратурой компьютера. Эти функции принято подразделять на следующие группы:

  1. состав и форма представления машинных единиц информации;

  2. типы данных и формы их представления;

  3. способы адресации данных;

  4. система команд;

  5. функции управления состояниями устройств и процессов.

Первые четыре группы функций, реализуемые аппаратурой компьютера, порождают систему команд компьютера, которая устанавливает коды операций и правила кодирования адресов операндов, участвующих в операциях. Последовательности команд, составляющие программы, корректны в том случае, когда команды предписывают операции над соответствующими типами данных: целыми числами, логическими значениями, строками символов и т.д. Наряду с программируемыми функциями, работа компьютера сопровождается событиями, происходящими в темпе работы устройств (окончание операций ввода-вывода, ошибки в передаваемых данных и т.д.) или при выполнении команд (некорректность кода операции, нарушение правил адресации, доступ к незащищенным данным и т.д.). В этих условиях устройства компьютера, реагируя на окончание процессов или особые ситуации при выполнении предписанных командами операций, формируют сигналы прерывания. Эти сигналы воспринимаются процессором, который обеспечивает переход к специальным программам, обрабатывающим возникшие ситуации в работе устройств и при выполнении программ. За счет этого операционная система обеспечивает управление устройствами и процессами выполнения программ и объединяет аппаратные и программные средства в единый аппаратно-программный комплекс.

Подавляющее большинство ныне используемых архитектур относятся к классу процессорно-ориентированных (processor-center). При этом для каждой архитектуры создается специфичный программно-аппаратный интерфейс, порождающий уникальную систему команд, реализуемых операционной системой компьютера. Это означает, что для каждого процессора и системы внешних устройств создается специфичная операционная система, служащая фундаментом для написания прикладных программ и централизованного управления всеми системными ресурсами – устройствами и программами.

Интерфейс прикладных программ. Производители компьютерного оборудования разработали архитектуры, в основе которых лежит интерфейс прикладных программ API (Application Programming Interface). API–ориентированные архитектуры устанавливают интерфейс, который используется для доступа всех прикладных программ к функциям операционной системы и изолирует прикладные программы от аппаратных и программных деталей операционной системы.

Один из наиболее известных API – POSIX (Portable Operation System Interface based on uniX), - международный стандарт для Unix–подобных операционных систем. В 1993 году группа разработчиков приложений для операционных систем Unix определила собственный набор интерфейса прикладных программ API, включающий в себя 1179 функций. Стандарт «Единая спецификация Unix» стал современной промышленной версией POSIX.

Другой вариант API – независимый от технологии машинный интерфейс (Tecnology Independent Machine Interface), часто называемый просто MI (Machine Interface). Этот интерфейс включает в себя набор функций операционной системы компьютера, работающей по двухступенчатой схеме: генерация шаблона программы – генерация кода программы. Компилятор генерирует из исходного текста код MI, который представляется в виде шаблона программы. На втором этапе транслятор генерирует двоичный код программы по шаблону программы, и двоичный код программы, созданный транслятором, хранится в памяти компьютера как единый программный объект. Такая программа называется отслеживаемой (observable). Если в компьютере начинает применяться, например, 64-разрядный процессор, то для новой аппаратуры создается специальный транслятор, который транслирует код шаблона программы в новый двоичный код, соответствующий составу данных, с которым оперирует новый 64-разрядный процессор. В результате этого за один день компьютер получает 64-разрядную операционную систему и тысячи 64-разрядных прикладных программ.

Существенный недостаток API – отсутствие гибкости. Клиент не может выбрать операционную систему одного производителя, базу данных – другого, защиты данных – третьего, так как они не могут работать как единая интегрированная система. Единственный способ обеспечить гибкость - самостоятельное объединение разнородных компонент в интегрированную систему. Однако для этого требуются средства на обучение пользователей и сопровождения программных систем.