Компьютер является универсальным инструментом для решения разнообразных задач по преобразованию информации, но его универсальность определяется не столько аппаратным обеспечением, сколько установленными программными средствами, другими словами, все «знания» компьютера сосредоточены в программах, которые представляют собой точную и подробную последовательность инструкций, представленных на понятном для компьютера языке, по обработке информации. Меняя программы на компьютере можно превратить его в рабочее место дизайнера, бухгалтера или конструктора, статистика или агронома, использовать его для прослушивания музыки, просмотра кинофильмов и других развлечений.
Джоном фон Нейманом в 1945 г. были описаны основные принципы построения компьютеров, которые до сих пор являются стандартом практически для всех компьютеров. Одним из них является программное управление.
В основе принципа программного управления лежит представление алгоритма решения любой задачи в виде программы вычислений.
Алгоритм [2][1] – точное предписание, определяющее процесс преобразования исходных данных в конечный результат. При решении задачи применим общий алгоритм: 1) получить исходные данные; 2) найти решение; 3) сообщить ответ.
Программа (для компьютера)[3][2] – это упорядоченная последовательность команд, подлежащая обработке. Программа описывает операции, которые нужно выполнить процессору компьютера для решения поставленной задачи.
Команда – это инструкция машине на выполнение элементарной операции. Набор операций, которые может выполнять компьютер, и правил их записи образуют машинный язык.
Структура команды в общем случае имеет вид:
КОП Код операции | А1 Адрес 1-го операнда | А2 Адрес 2-го операнда | А3 Адрес помещения результата | А4 Адрес следующей команды |
Исторически сложилась тенденция к увеличению количества команд в машинном языке. Разработчики считали, что чем больше в нем команд, тем шире возможности по обработке данных. В настоящее время совершается переход на RISC-процессоры, основной характеристикой которых является сокращение набора команд и упрощение их структуры.
Суть принципа программного управления заключается в следующем:
· все вычисления, предписанные алгоритмом решения задачи, должны быть представлены в виде программы, состоящей из последовательности управляющих слов-команд;
· каждая команда содержит указания на конкретную выполняемую операцию, место нахождения (адрес) операндов и ряд служебных признаков. Операнды – это переменные, значения которых участвуют в операциях преобразования данных. Список всех переменных (входных и данных, промежуточных значений и результатов вычислений) является неотъемлемым элементом любой программы;
· для доступа к программам, командам и операндам используются их адреса, в качестве которых выступают номера ячеек памяти компьютера, предназначенных для хранения объектов;
· команды программы расположены в памяти друг за другом, что позволяет микропроцессору организовывать выборку цепочки команд из последовательно расположенных ячеек памяти и выполнять команду за командой.
· для перехода к выполнению не следующей по порядку команды, а к какой-то другой, используются команды условного или безусловного переходов. Выборка команд из памяти прекращается после достижения и выполнения команды «стоп». Таким образом, процессор исполняет программу автоматически, без вмешательства человека.
Обычно программы хранятся во внешней памяти ПЭВМ и для выполнения передаются в оперативную память. Некоторые программы постоянно размещаются в памяти (ядро операционной системы, архиватор Zip Magic, монитор антивирусной программы Касперский АнтиВирус и др.) и называются резидентными, а другие – загружаются только на время выполнения, а затем удаляются из памяти, и называются транзитными.
Часть машинных программ, обеспечивающих автоматическое управление вычислениями и используемых наиболее часто, может размещаться в постоянном запоминающем устройстве – реализовываться аппаратно. Программы, записанные в ПЗУ, составляют базовую систему ввода/вывода (BIOS), которая является промежуточным звеном между программным обеспечением компьютера и его электронными компонентами. Ее компоненты обеспечивают выполнение всех операций ввода/вывода в соответствии со специфическими особенностями работы каждого из периферийных устройств данного компьютера (драйверы стандартных устройств), тестируют работу памяти и устройств компьютера при включении электропитания (тест), а также выполняют загрузку операционной системы.