Главная arrow Развитие ПО arrow Программное управление
Как начинался компьютер
Компьютерная революция
Двоичный код
Разработки военных лет
Интегральные микросхемы
Микрокомпьютер
Персоны
Сеть
Язык компьютера
Развитие ПО
Гибкие системы
Средства разработки
Информатика
Вычислительная наука
Операционные системы
Искусственный интеллект
Предыстория
Поиск
Знания и рассуждения
Логика
Робототехника
 

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

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

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

За прошедшие годы развитие программного обеспечения выделило несколько основных типов программ. Центральное место в большинстве компьютерных систем занимает специальная совокупность программ, называемая операционной системой, которая координирует работу компьютера и управляет размещением программ и данных в оперативной памяти. Она дает указания компьютеру, как интерпретировать команды и данные, как распределять аппаратные ресурсы для выполнения задания и как управлять периферийными устройствами (например, принтером или видеотерминалом). Она также обеспечивает возможность непосредственного взаимодействия человека и компьютера, выполняя такие действия, как хранение программ и файлов данных.

Если рассматривать операционную систему как «режиссер» компьютерного действа, то прикладные программы играют роль «артистов». Именно благодаря таким программам, как текстовый процессор (word processor), игры и электронные таблицы (spreadsheet), компьютер приобретает удивительную разносторонность.

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

Вычислительный процесс от ввода до вывода

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

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

Немногие, наиболее важные и часто используемые, программы всегда хранятся в так называемом постоянном запоминающем устройстве (ПЗУ) компьютера. Сразу же после включения компьютера центральный процессор по специальной встроенной программе отыскивает на диске операционную систему и загружает ее в оперативную память. Дальнейшее управление всеми устройствами компьютера осуществляет операционная система; она предоставляет также пользователю определенный набор команд и соответствующих им ответных реакций компьютера, с помощью которых можно управлять вычислительной машиной.
 
Ввод. Клавиатура - самое распространенное устройство для взаимодействия с компьютером. Программное обеспечение, управляющее машиной, интерпретирует определенные комбинации вводимых символов или как команды, которые надо выполнить, или как данные, подлежащие обработке. Простые программы можно ввести непосредственно с клавиатуры, однако более сложные и большие программы обычно загружаются в оперативную память компьютера с помощью специального внешнего устройства (например, для ввода), которое передает в машину хранимую на диске информацию. Информация записывается на диске по концентрическим окружностям (дорожкам); здесь могут храниться данные различных типов и программы в виде понятных компьютеру электромагнитных импульсов.
Обработка. В блоке центрального процессора (ЦП) устройство управления следит за порядком выполнения операций, а арифметико-логическое устройство выполняет арифметические и логические операции. Активная программа помещается в оперативное запоминающее устройство (ОЗУ) компьютера, благодаря чему центральный процессор может выбирать команды последовательно, одну за другой. Программы, которые всегда хранятся в постоянном запоминающем устройстве (ПЗУ), обеспечивают начальную активизацию компьютера и поддерживают взаимодействие процессора с устройствами ввода-вывода. В ПЗУ может, кроме того, находиться транслятор языка программирования или прикладные программы.
Вывод. Видеотерминал обеспечивает отображение графических результатов вычислений. Обычно компьютер выводит на экран информацию, поступающую с клавиатуры, а также свои ответы. Принтер служит для вывода информации на бумагу, т.е. для получения так называемой «твердой копии», на которой зафиксированы результаты работы программы. Информация может также выводиться в виде искусственной (синтезированной) речи или электрических импульсов.

Распределение памяти для хранения программ

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

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

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

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

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

Оперативная память используется и для хранения обрабатываемой информации. Программа читает данные, выполняет над ними определенные действия и вновь заносит результаты в память. Команды каждой про граммы указывают, какой тип информации содержится по тому или иному адресу.
 
Простой и гибкий код. Запоминающее устройство (память) компьютера состоит из тысяч электронных переключателей; каждый из них может находиться в одном з двух состояний: включено или выключено. Это соответствует одному биту информации (0 или 1). Последовательность из 8 бит называется байтом. Каждый байт позволяет хранить 256 различных комбинаций 1 и 0, которое можно интерпретировать как некое множество символов, зависящее от программного обеспечения компьютера.

Представление буквы. В специальном коде, который называется Американским стандартным кодом для обмена информацией (ASCII, для представления букв английского алфавита, цифр от 0 до 9 и набора знаков препинания используются десятичные числа в диапазоне от 0 до 127. Написанный в виде двоичных цифр (здесь показано двоичное представление латинской буквы d) код используется как стандартный формат для обмена информацией между компьютерами.
Представление числа. Числа, которые компьютер обрабатывает как арифметические величины, записываются в двоичном коде, не совпадающем с кодом ASCII. С помощью одного байта можно закодировать целые десятичные числа в интервале от -128 до + 127. Для представления чисел с большей абсолютной величиной и дробей используются несколько байт. В других системах кодирования для приближенного представления любых чисел используется фиксированное количество байт.
Представление команды. Содержимое байта или некоторой последовательности байтов может трактоваться и как команда центральному процессору, предписывающая выполнение определенных действий. Коды команд индивидуальны для каждой конкретной модели процессора. На рисунке показан код, который вызывает полную остановку машины (на одной из моделей центрального процессора).
Представление произвольного символа. Одна из самых сильных возможностей программного обеспечения заключается в его способности приписывать любой смысл каждому конкретному коду, содержащемуся в байте информации. Байты можно использовать не только для кодирования букв, чисел и команд, но и, например, для записи нотных знаков или цветовых оттенков.