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

1.6. Принцип многоуровневой реализации функций

Функция (назначение) компьютера – реализация программ. Программы исполняются аппаратурой компьютера: процессором, запоминающими устройствами (ЗУ) и устройствами ввода-вывода (УВВ) (рис.1.14), которые взаимодействуют между собой в соответствии с рис.1.2 и 1.7. Возможности аппаратуры компьютера по вводу-выводу, хранению и обработке

Программа

Процессор

Память Устройства

ввода-вывода

ЗУ … ЗУ УВВ … УВВ

Программно-аппаратный интерфейс

Аппаратура компьютера

Рис. 1.14. Программно-аппаратный интерфейс

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

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

Функции процессора. Рассмотрим вопрос о том, какой минимальный набор операций должен выполнять процессор, чтобы решать любые алгоритмически разрешимые задачи. Доказано, что любые алгоритмически разрешимые задачи могут исполняться в простейших, примитивных алгоритмических базисах. Так, алгоритмическая система Поста, состоящая всего лишь из трех операций: y:=0 (переменной у присвоить значение 0), y:=1 (переменной у присвоить значение 1), y=0? (проверить, равно ли у нулю), достаточна, чтобы реализовать все алгоритмически вычислимое. Такой же полнотой обладает и алгебра Буля: у:= а, y:=ab, y:=ab, y=0?, или даже более простой набор из одной операции y:=ab и операции следования у=0?. Однако программирование вычислений в столь примитивном операционном базисе приводит к большим издержкам на программирование и вычисления. Человечество свои материальные проблемы связало с численным выражением сущности, и четыре операции арифметики y:=a+b, y:=a-b, y:=ab, y:=ab и операция следования стали основой математики, финансовой и инженерной деятельности. При этом в качестве операндов a и b выступают целые числа 0, 1, 2,.. или действительные числа, посредством которых отображаются время, пространство, энергия и т.д.

Оказалось, что четырех действий арифметики достаточно для разрешения многих проблем. Для исчисления высказываний достаточно только трех операций булевой алгебры у:=а, y:=ab, y:=ab. Для обработки текстов – символьной информации, достаточно реализовать операции над последовательностями байтов, а обработку графической информации аналитическая геометрия свела к тем же известным четырем арифметическим действиям. Таким образом, операции арифметики и булевой алгебры стали самодостаточными для решения всех алгоритмически разрешимых задач. Однако существуют и другие алгоритмические системы со свойствами алгоритмической полноты, например нормальные алгоритмы Маркова.

Инженерная мысль выбрала в качестве функций процессора арифметические и логические операции над числами и последовательностями битов (байтов). Кроме этого процессор должен обеспечивать обслуживание операций ввода-вывода (передача команд ввода-вывода в определенные запоминающие устройства и устройства ввода-вывода и установления момента завершения операций ввода-вывода). Таким образом, функции процессора ограничиваются реализацией процедур:

  1. Выборки команды из оперативной памяти и операндов, указанных в адресной части команды.

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

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

Для реализации функций по обеспечению согласованной работы устройств служит операционная система. Операционная система (ОС) – комплекс программ, обеспечивающий управление устройствами компьютера и программами. ОС вводит набор макроопераций и макрокоманд, каждая из которых реализует функцию управления устройством или программой. Эта функция реализуется совокупностью команд, исполняемых аппаратурой компьютера. Например, перед началом операции ввода необходимо проверить готовность устройства (включено – выключено, наличие носителя информации и т.д.). Для подготовки к выполнению операции ввода-вывода выполнить операции с целью выделения в оперативной памяти области для размещения вводимых данных, обеспечить посимвольный или посегментный ввод данных в заданную область с использованием команд ввода и завершить операцию в естественном порядке или в особом режиме (например, из-за ошибки в передаваемых данных). Управление программами обеспечивается поиском местоположения программы во внешней памяти, выделением области оперативной памяти для размещения первого блока программы и т.д. Макрокоманды операционной системы определяют набор примитивов, достаточных для создания систем программирования, управления данными и контроля работоспособности компьютера как целостных операций, уровень которых превышает программно-аппаратный интерфейс. Совокупность макрокоманд, реализуемых программно средствами ОС, определяют интерфейс ОС, а через него программируемые возможности компьютера.

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

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

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

Операционная система вводит собой операции ввода, вывода, хранения данных, управление аппаратурой компьютера и вычислительными процессами более высокого уровня, чем операции, реализуемые аппаратурой компьютера. При этом общая большая часть операций, реализованная аппаратурой, доступна для использования в программах более высокого уровня: на 2-, 3-, 4-м уровнях (см. рис 1.15). Другая часть операций, называемая привилегированными операциями, становится доступной программистам только при обращении к ним через операционную систему, например с помощью команды CALL target (ВЫЗОВ процедуры), в которой target – номер вызываемой процедуры. В общем случае команда CALL исполняется, если процессор находится в состоянии СУПЕРВИЗОР, в котором разрешается выполнять операции управления устройствами и программами. Если же процессор находится в другом состоянии, команда CALL не может быть исполнена и ее появление в потоке команд вызывает прерывание программы – остановку программы при выборке команды CALL.

Таким образом, интерфейс операционной системы вводит совокупность процедур, управляющих устройствами и программами в состоянии СУПЕРВИЗОР, и одновременно с этим совокупность операций, которые могут исполняться на любом уровне программирования.