ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 16.12.2020

Просмотров: 1961

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

Глава

 3.  

Программное

обеспечение

компьютеров

3.1. 

Классификация

и

эволюция

про

-

граммного

обеспечения

Еще

в

 30-

е

годы

  «

великий

вождь

всех

народов

» 

товарищ

Ста

-

лин

произнес

крылатую

фразу

которая

долгое

время

не

сходила

с

лозунгов

и

транспарантов

: «

Техника

без

людей

мертва

Техника

во

главе

с

людьми

овладевшими

техникой

может

и

должна

давать

чудеса

». 

Адаптируя

это

изречение

к

проблема

информатики

мож

-

но

сказать

что

вычислительная

техника

 (hardware) 

без

программ

,

олицетворяющих

действия

людей

по

управлению

ею

мертва

и

без

-

душна

как

всякое

железо

И

только

программное

обеспечение

(software) 

вдыхает

жизнь

в

эти

кристаллы

разъемы

и

провода

зас

-

тавляет

компьютеры

делать

все

те

чудеса

которым

мы

не

перестаем

удивляться

Желая

подчеркнуть

приоритет

программного

обеспече

-

ния

  

перед

аппаратным

академик

Глушков

как

-

то

сказал

что

в

на

-

стоящее

время

они

соотносятся

друг

с

другом

по

стоимости

  

и

вло

-

женному

интеллекту

 «

как

товар

с

упаковкой

».

За

пятьдесят

лет

развития

многие

поколения

программистов

создали

гигантский

объем

программного

обеспечения

 (

ПО

). 

Хотя

он

создавался

стихийно

под

влиянием

преходящих

обстоятельств

,


background image

158

в

процессе

его

формирования

существуют

определенные

законо

-

мерности

Чтобы

их

выяснить

нам

понадобится

некоторая

класси

-

фикация

программного

обеспечения

 (

см

схему

).

Прежде

всего

все

программное

обеспечение

можно

разделить

на

общее

и

специальное

Общее

ПО

рассчитано

на

самый

широкий

круг

пользователей

и

используется

почти

на

каждом

компьютере

.

Специальное

ПО

разрабатывается

для

решения

конкретной

задачи

,

оно

как

правило

уникально

В

качестве

примера

укажем

на

разно

-

образные

бухгалтерские

и

банковские

системы

которые

часто

раз

-

рабатываются

под

заказ

хотя

есть

и

исключения

.

Общее

ПО

в

свою

очередь

подразделяется

на

системное

слу

-

жащее

для

разработки

программ

и

поддержки

вычислительного

про

-

цесса

на

компьютере

 (

операционные

системы

системы

программи

-

рования

различные

вспомогательные

программы

и

прикладное

,

иначе

называемое

пакетами

прикладных

программ

 (

ППП

). 

Типич

-

ными

ППП

являются

текстовые

процессоры

системы

управления

Классификация

программного

обеспечения

Бухгалтерские

системы

СУБД

Текстовые

процессоры

Операционные

системы

Банковские

системы

Электронные

таблицы

Специальное

Общее

Программное

обеспечение

Системное

Прикладное

(

ППП

)

Системы

программирования

Графические

системы

Системы

управления

производством

Служебные

программы

(

утилиты

)


background image

159

Эволюция

общего

программного

обеспечения

1950

1960

1970

1980

1990

2000

100%

Общее

программное

обеспечение

100%

СУБД

Диалоговые

ОС

Специальное
программное

обеспечение

Компьютерные

сети

Мультимедиа

Пакетные

ОС

Языки

и

системы

программирования

Настольные

ППП

CASE-

технологии

Автокоды

и

ассемблеры

Библиотеки

прикладных

программ

базами

данных

 (

СУБД

), 

электронные

таблицы

некоторые

другие

широко

распространенные

программы

.

Граница

раздела

между

упомянутыми

классами

весьма

услов

-

на

и

  

в

процессе

эволюции

постоянно

передвигается

в

пользу

об

-

щего

ПО

На

заре

компьютерной

эры

 (

первая

коммерческая

ЭВМ

UNIVAC 

появилась

как

мы

знаем

в

 1951 

году

), 

когда

машины

были

программно

несовместимы

и

каждая

задача

была

уникальна

, 100%

программного

обеспечения

было

специальным

Этот

факт

наглядно

представлен

на

схеме

где

по

оси

абсцисс

отложено

время

а

по

оси

ординат

показана

относительная

доля

каждого

класса

ПО

В

даль

-

нейшем

по

мере

освоения

типовых

классов

задач

и

унификации

вычислительных

систем

все

большее

число

программ

стало

пере

-

ходить

в

разряд

общего

 (

системного

или

прикладного

ПО

.  

К

концу


background image

160

XX 

века

 90 - 95% 

всего

ПО

  

можно

считать

общим

а

следовательно

,

и

общедоступным

.

Общее

программное

обеспечение

 — 

это

ценнейший

интеллек

-

туальный

ресурс

накопленный

человечеством

за

последние

полве

-

ка

В

его

разработку

вложены

миллионы

человеко

-

лет

труда

несколь

-

ких

поколений

программистов

потрачены

многие

миллиарды

дол

-

ларов

Образование

массива

общего

ПО

из

специального

подобно

отложению

осадочных

пород

на

дне

океана

когда

  

в

каждую

истори

-

ческую

эпоху

из

плавающей

клубящейся

мути

отстаивается

и

вык

-

ристаллизовывается

новый

геологический

пласт

Много

тысячеле

-

тий

спустя

геологи

пробуривая

скважины

обнаруживают

эти

плас

-

ты

и

по

ним

восстанавливают

геологическую

историю

Земли

.

Представим

себя

на

месте

геологов

и

произведем

 «

разведочное

бурение

» 

общего

ПО

В

нашем

случае

вся

 «

геологическая

» 

история

длилась

всего

 50 

лет

Мы

условно

разделим

ее

на

 5 

эпох

по

 10 

лет

каждая

Каждая

эпоха

оставила

свой

слой

в

общем

ПО

который

на

-

глядно

показан

на

рисунке

и

который

мы

кратко

прокомментируем

.

50-

е

годы

:

библиотеки
стандартных
программ
и

ассемблеры

Первые

вычислительные

машины

во

-

обще

не

имели

никакого

общего

программного

обеспечения

Программы

для

решения

конкретных

задач

писались

с

нуля

,  

в

машинных

двоичных

ко

дах

  (

для

сокращения

   

записи

использовалась

восьмеричная

или

шестнадцатеричная

система

но

это

не

меняло

сути

в

абсолютных

адресах

они

загружались

в

чис

-

тую

оперативную

память

Процесс

был

мучительным

и

трудоемким

.

Приходилось

помнить

двоичные

коды

всех

операций

а

любую

под

-

программу

выписывать

из

справочника

в

условных

адресах

затем

вручную

привязывать

к

главной

программе

распределять

память

и

т

д

.  

На

каждом

этапе

возникали

ошибки

поэтому

отладить

про

-

грамму

даже

в

тысячу

команд

было

уже

очень

трудно

.

Первоочередной

задачей

программистов

на

данном

этапе

было

создание

библиотек

которые

обеспечивали

бы

вызов

стандартных

программ

из

внешней

памяти

и

автоматически

подключали

их

   

к

главной

программе

Идея

использования

  

подпрограмм

была

реали

-

зована

Грейс

Хоппер

еще

до

появления

ЭВМ

на

электромеханичес

-


background image

161

кой

 MARK-1, 

а

в

дальнейшем

она

стала

общепринятой

Из

-

за

про

-

граммной

несовместимости

у

каждой

ЭВМ

были

свои

уникальные

библиотеки

Например

для

отечественной

машины

М

-20  

Михаил

Романович

Шура

-

Бура

  

с

коллегами

разработали

  

прекрасную

по

тем

временам

интерпретирующую

систему

ИС

-2 

с

богатейшей

кол

-

лекцией

стандартных

программ

охватывающей

все

области

вычис

-

лительной

математики

Создание

библиотек

резко

повысило

про

-

изводительность

труда

программистов

так

как

появмлась

возмож

-

ность

опереться

на

труд

предшественников

и

не

программировать

каждую

новую

задачу

с

нуля

.

Вторая

проблема

была

связана

с

мнемоническим

кодированием

и

автоматическим

распределением

памяти

.  

Впервые

она

была

ре

-

шена

в

Кембридже

в

Великобритании

  

на

ЭВМ

 EDSAC (1949 

г

.).

Вместо

того

чтобы

записывать

коды

операций

двоичными

цифра

-

ми

  

программист

писал

текст

программы

на

символическом

  

языке

,

пользуясь

мнемоническими

обозначениями

операций

и

условными

адресами

а

специальная

  

программа

 (

руководитель

проекта

Морис

Уилкс

назвал

ее

собирающей

системой

 — 

по

английски

assembly

system

автоматически

преобразовывала

мнемонические

коды

в

по

-

нятные

машине

двоичные

и

распределяла

память

для

выполнения

программы

Идея

оказалась

столь

продуктивной

что

все

последую

-

щие

поколения

программистов

на

всех

ЭВМ

отказались

от

абсо

-

лютного

кодирования

Языки

программирования

низкого

уровня

в

которых

коды

операций

заменены

мнемоническими

обозначения

-

ми

стали

называться

языками

ассемблера

или

автокодами

 (

мнемо

-

кодами

), 

а

преобразующие

программы

 — 

ассемблерами

.

В

 50-

е

годы

ЭВМ

были

еще

экзотической

редкостью

они

ис

-

пользовались

в

основном

в

элитных

академических

учреждениях

и

военных

системах

Программисты

также

исчислялись

единицами

и

работать

им

приходилось

в

очень

стесненных

условиях

Приходи

-

лось

постоянно

изворачиваться

экономить

каждую

ячейку

памяти

и

каждый

машинный

такт

потому

что

возможности

тех

компьюте

-

ров

были

более

чем

скромными

У

машины

Урал

-1, 

например

ОЗУ

имело

всего

 1024 

слова

при

быстродействии

 100 

оп

./

с

Зато

каждая

отлаженная

тем

более

стандартная

программа

была

своего

рода

шедевром

.