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. Определите, к какому классу программного обеспечения (по назначению) относятся перечисленные программы.
- Архиватор.
- Текстовый редактор.
- PascalABC.
- Windows.
- Браузер.
- Бухгалтерская программа.
2. Откройте сайт http://pascalabc.net/. Перейдите в раздел лицензионное соглашение. К какому классу относится лицензия PascalABC?
3. Найдите информацию о лицензии программы Inkscape.
4. Найдите информацию о кроссплатформенных программах: текстовый редактор, графический редактор, редактор электронных таблиц.