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

 
Введение Печать
Ранним утром 10 апреля 1981 г. челночный космический корабль «Колумбия», казавшийся крошечным на фоне своих громадных ракетных ускорителей, застыл, готовый к старту, на пусковой площадке мыса Канаверал во Флориде. Ожидая запуска на околоземную орбиту, астронавты Роберт Криппен и Джон Янг лежали, привязанные к креслам, в кабине корабля. Это был поистине захватывающий момент. Наконец, после более чем 5 лет подготовки американцы были близки к осуществлению небывалой космической экспедиции - ведь впервые астронавтам предстояло совершить попытку возвращения на Землю в крылатом управляемом корабле, который можно было неоднократно использовать в последующих полетах. Погода стояла ясная и безветренная. До старта оставалось 20 мин, и казалось, что все пойдет строго по расписанию.

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

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

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

Было также установлено, что вероятность такой рассинхронизации фактически не превышает одного случая на 67 запусков, причем это может произойти только на начальной стадии работы программ бортового компьютера. Специалисты заверили НАСА (Национальное. управление по аэронавтике и исследованию космического пространства), что можно гарантировать безопасность полета, не внося никаких изменений в программное обеспечение, - и через два дня «Колумбия» успешно стартовала.
 
Хьюстон: центр управления

 
 
Программное обеспечение для управления полетом «космического челнока» (корабля многоразового использования серии «Шаттл») состоит по существу из 8 самостоятельных программ. Вместе они содержат около полумиллиона отдельных команд, контролирующих и регулирующих все процессы - от расчета траектории и управления полетом до поддержания работы систем жизнеобеспечения. Подобные программные комплексы - одно из чудес современного мира. Их составление требует не меньшего искусства, чем строительство египетских пирамид, - разница лишь в том, что роль каменных блоков здесь выполняют логические операции. Но, несмотря на всю сложность, такие программы принципиально не отличаются от тех, которыми пользуется бухгалтер при финансовых расчетах на настольном компьютере или ребенок при игре с машиной, снабженной видеоэкраном. Без программ компьютер любого размера - не более чем простое переплетение бесполезных электронных схем.

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

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