§10. Программное обеспечение компьютера. Программный принцип работы компьютера. Различные подходы к классификации программного обеспечения.

10.1. Программный принцип работы компьютера

Основным принципом построения всех современных компьютеров явля­ется программное управление, в соот­ветствии с которым команды програм­мы и данные хранятся в оперативной памяти в закодированном виде. Ин­формация, с которой работает ком­пьютер, представлена в двоичном ко­де и делится на два типа: программа (набор команд по обработке данных); данные, обрабатываемые программой. Процессор может выполнять ариф­метические и логические операции, предусмотренные его системой ко­манд. Команды и данные считывают­ся по очереди из памяти и поступают в процессор, где они расшифровыва­ются, а затем выполняются. Резуль­таты выполнения различных команд могут быть записаны в память или переданы на различные устройства.

Работа компьютера по принципу программного управления описана в примере 10.1. Создание ЭВМ с храни­мой в памяти программой положило начало программированию, а возмож­ность обращения к любой ячейке па­мяти по ее адресу позволила исполь­зовать переменные в программирова­нии.

10.2. Различные подходы к классификации программного обеспечения

Компьютер представляет собой единство аппаратных (hardware) и программных (software) средств.

Появление персонального компьютера и развитие программирования привело к возникновению огромного количе­ства различных программ. Совокуп­ность всех программных средств на­зывают программным обеспечением (ПО) компьютера.

Рассмотрим некоторые способы классификации ПО.

Классификация по назначению

В зависимости от назначения вы­деляют системное, прикладное и ин­струментальное ПО (пример 10.2). Каждый класс в свою очередь делится на подклассы. Подробную схему деле­ния ПО можно посмотреть в Приложе­нии к главе 2 (с. 116).

Классификация по способу
распространения и использования

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

Способы распространения про­граммных продуктов: коммерческий, условно-бесплатный, бесплатный и

пробный (пример 10.3). Кроме того, различают свободное и проприетарное ПО. Свободное ПО распространяется с исходными кодами и может быть из­менено пользователем. У проприетарного ПО все права (использование, распространение, модификация) при­надлежат создателю.

Классификация
по степени переносимости

Позволяет выделить кроссплатформенные и платформозависимые про­граммы. Кроссплатформенные про­граммы работают более чем на одной аппаратной платформе и/или операци­онной системе. Типичным примером является программное обеспечение, предназначенное для работы в опера­ционных системах Linux и Windows одновременно. Платформозависимые программы работают только в той среде, для которой созданы.

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

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

Ученые из США и Италии в 2015 г. заявили о создании прототипа мем- процессора (mem — от англ. memory) с архитектурой, отличной от архитекту­ры фон Неймана. Мем-процессор реа­лизует одновременное вычисление и хранение полученных данных в одном месте путем взаимодействия ячеек па­мяти.

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

Пример 10.2. Классы ПО в зависимо­сти от назначения.

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

Прикладное ПО — комплекс про­грамм для решения задач определенно­го класса предметной области. Данный класс ПО является самым многочислен­ным, сюда входят редакторы, электрон­ные системы обучения, компьютерные игры и т. д.

Инструментальное ПО предназначе­но для создания другого программно­го обеспечения. Сюда относят системы программирования, которые обеспечи­вают разработку программ.

Классификация по способу
выполнения программы

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

Исходный код у компилируемых программ преобразуется компилято­ром в машинный код и записывает­ся в файл с особым заголовком и/или расширением. Операционная система идентифицирует такой файл как ис­полняемый.

У интерпретируемых исходный код программы последовательно исполняет­ся с помощью специальной программы- интерпретатора.

Пример 10.3. Классы ПО в зависи­мости от способа распространения и ис­пользования.

Коммерческие программы (Commercial software) создаются с целью получения прибыли от их использования, напри­мер путем продажи.

Условно-бесплатные программы (shareware) распространяются по прин­ципу «попробуй, прежде чем купить». Использовать программу можно в те­чение небольшого срока (2 недели или месяц). По истечении указанного сро­ка пользователь обязан купить ее или прекратить использование программы и удалить ее.

Бесплатные программы (Freeware) — программное обеспечение, лицензион­ное соглашение которого не требует каких-либо выплат правообладателю. Лицензия не дает пользователю право на модификацию программы.

Пробные программы (Betaware) — обычно предварительные (тестовые) бета-версии коммерческого или неком­мерческого ПО. Можно использовать бесплатно, но часто применение огра­ничивается периодом тестирования или функциональностью программы.

1. В чем суть принципа программного управления?
2. По каким критериям можно классифицировать программное обеспечение?
3. Назовите основные классы ПО по назначению.

Упражнения

1. Определите, к какому классу программного обеспечения (по назначению) относятся перечисленные программы.

  1. Архиватор.
  2. Текстовый редактор.
  3. PascalABC.
  4. Windows.
  5. Браузер.
  6. Бухгалтерская программа.

2. Откройте сайт http://pascalabc.net/. Перейдите в раздел лицензионное соглашение. К какому классу относится лицензия PascalABC?
3. Найдите информацию о лицензии программы Inkscape.
4. Найдите информацию о кроссплатформенных программах: текстовый редактор, графический редактор, редактор электронных таблиц.

 

Проверь себя

Выбор тем