
Курс лекций информатика
.pdf6. Анализ результатов решение задачи. Программа, прошедшая отладку и тестирование, готова для практического использования, то есть для решения реальной задачи на ЭВМ. На этапе решения задачи составляются инструкции по использованию программы и подготавливаются исходные данные. С развитием ЭВМ и их программного обеспечения программы стали разрабатываться с учетом их длительного использования. На основе анализа результатов решения задачи делается заключение о практической значимости полученных результатов и необходимости корректировки исходных данных или модели.
7. Сопровождение программ — это работы, связанные с обслуживанием программ в процессе их эксплуатации.
Многократное использование разработанной программы для решения различных задач заданного класса требует проведения следующих дополнительных работ:
исправление обнаруженных ошибок;
модификация программы для удовлетворения изменяющихся эксплуатационных требований;
доработка программы для решения задач с конкретными входными данными;
проведение дополнительных тестовых просчетов;
внесение исправлений в рабочую документацию;
усовершенствование программы и т.д.
Применительно ко многим программам работы по сопровождению поглощают более половины затрат, приходящихся на весь период времени существования программы (начиная от выработки первоначальной концепции и кончая моральным ее устареванием) в стоимостном выражении.
Программа, предназначенная для длительной эксплуатации, должна иметь соответствующую документацию и инструкцию по её использованию.
182

Деление процесса решения задачи на этапы является в некоторой степени условным. Действительно, решения, принимаемые на некотором этапе, могут во многом определить действия на последующих этапах. С другой стороны, результаты, полученные на каком-то этапе, могут привести к основательному пересмотру предыдущих этапов.
6.6.Классификация программного обеспечения
Поскольку каждая программа предназначена для решения вполне определенной задачи, то количество программ, используемых на ЭВМ, достаточно велико. В зависимости от признаков программное обеспечение можно разделить на группы, т.е. провести классификацию программного обеспечения.
Так, по функциональному назначению можно выделить следующие виды программного обеспечения.
Классификация ПО по функциональному назначению
Программное
обеспечение
Системное ПО |
Инструментальное ПО |
Прикладное ПО |
|
Рис.36 |
|
Системное |
программное обеспечение |
(System Software) — |
совокупность программ, обеспечивающих:
создание операционной среды функционирования других программ;
надежную и эффективную работу компьютера и компьютерных сетей;
проведение диагностики и профилактики аппаратуры компьютера и сетей;
183

выполнение вспомогательных технологических операций (копирование, архивирование, восстановление программ и данных и т.д.).
Данный класс программных продуктов тесно связан с типом компьютера и является его неотъемлемой частью. Знание базовой технологии работы с этим классом программных продуктов требуется и конечным пользователям персонального компьютера, которые самостоятельно не только работают со своими программами, но и выполняют обслуживание компьютера, программ и данных.
Программные продукты данного класса носят общий характер применения, независимо от специфики предметной области. К ним предъявляются высокие требования по надежности и технологичности работы, удобству и эффективности использования.
Обычно, в составе системного ПО выделяют две группы программ: операционные системы, являющиеся базовым программным обеспечением, и сервисные программы, расширяющие возможности базового.
Классификация системного программного обеспечения
Системное ПО
Операционные системы |
Сервисные |
|
программы |
Рис.37
Инструментальное программное обеспечение (Software Tools) -
совокупность программ используемых в процессе разработки новых программ. Оно включает специализированные программные продукты, которые являются инструментальными средствами разработчика. Программные продукты данного класса поддерживают все технологические этапы процесса проектирования, программирования, отладки и тестирования программ.
184
Прикладное программное обеспечение (Application Software)—
комплекс программ для решения задач определенного класса конкретной предметной области. Оно объединяет программные продукты, выполняющие обработку информации различных предметных областей и может быть весьма специфичным для каждой их них.
Эти программные продукты предназначены для решения конкретных задач пользователя и представляет уровень программного обеспечения, обращенный к человеку, который обычно не составляет программ, а лишь использует их с целью решения своих задач. При общении с прикладной программой пользователю иногда приходится выполнять простые операции - вводить числа и текст, просматривать данные, выводить графики, рисунки или чертежи на экран дисплея и на внешние устройства и т.д. Прикладные программы конструируются таким образом, чтобы создать человеку максимальный комфорт при выполнении описанных действий и при этом не требовать от него чрезмерно больших навыков и специальных знаний, не относящихся непосредственно к его профессиональным интересам.
По количеству программных модулей программы можно подразделить на отдельные программы и пакеты программ.
По набору реализуемых функций программы подразделяются на однофункциональные и многофункциональные, например, интегрированные системы.
По количеству одновременно работающих пользователей
программное обеспечение подразделяют на однопользовательское и многопользовательское.
По возможности работы в компьютерной сети выделяют локальные программы (несетевые) и программы с поддержкой обмена данными по сети (сетевые).
По потребительским свойствам в отношении пользователя программы могут быть полезными и вредоносными, например, вирусы.
185
По характеру использования программное обеспечение делят на две группы:
-утилитарные программы («программы для себя»), которые предназначены для удовлетворения нужд самих разработчиков;
-программные продукты, предназначенные для широкого распространения и продажи.
По типу лицензии (права на использование) выделяют: коммерческие программные продукты - официально приобретенные или зарегистрированные программы у официальных распространителей; freeware – бесплатные, свободно распространяемые программы, например, Demo-версии программ, которые позволяют лишь ознакомится с ее возможностями; free for personal use – бесплатные для некоммерческого использования; shareware - условно-бесплатные программы, которые имеют ограниченные возможности по выполняемым функциям или сроку использования и предполагают приобретение программы в дальнейшем.
6.7.Контрольные вопросы
1.Дайте определение алгоритма, укажите его свойства.
2.Каковы способы записи алгоритмов?
3.Укажите основные алгоритмические конструкции.
4.Что такое алгоритмический язык и какими свойствами он должен обладать?
5.Приведите классификацию языков программирования.
6.Укажите основные компоненты языка программирования.
7.Что такое алгоритмическое программирование?
8.Что такое структурное проектирование?
9.Какой подход к программированию называется нисходящим проектированием?
10.В чем преимущество модульного программирования?
11.В каких случаях используют событийно-ориентированное программирование?
186
12.Дайте понятие объектно-ориентированного проектирования.
13.Что понимают под восходящим программированием?
14.Укажите основные этапы жизненного цикла программного обеспечения.
15.Дайте характеристику этапа постановки задачи
16.Дайте определение модели и математической постановки
задачи.
17.Что такое отладка задачи?
18.Чем отличается тестирование задачи от ее отладки?
19.Приведите классификацию программного обеспечения.
187
Глава 7. Операционные системы
7.1.Понятие и виды операционных систем
Операционная система (operating system, OS) - совокупность программ, предназначенных для управления ресурсами ЭВМ, исполнения программ и организации диалога с пользователем.
Операционная система обычно хранится во внешней памяти компьютера — на диске. При включении компьютера она считывается с диска и размещается в оперативной памяти ЭВМ. Во время работы она постоянно находится в оперативной памяти и управляет всеми компонентами вычислительной машины, выделяя нужные ресурсы для решения задач пользователя. Кроме того, она обеспечивает пользователю удобный интерфейс (средства общения) с прикладными программами и устройствами компьютера.
Существует два основных вида пользовательского интерфейса: графический и интерфейс командной строки. Интерфейс командной строки предполагает управление ОС на уровне директив (команд). Пользователь набирает команду со всеми необходимыми параметрами и ОС ее выполняет, затем следующую и т.д. Недостатком данного метода является то, что пользователь должен хорошо помнить все команды ОС. Если в параметрах команды необходимо указать путь к файлу, то необходимо точно помнить и его. Ошибка или неточность в команде приводит к ее невыполнению и команду приходится вводить повторно.
В графическом интерфейсе, все файлы представлены в виде объектов, имеющих графическое представление (иконку). Пользователь может манипулировать ими с помощью какого-нибудь подходящего для этой цели устройства, например манипулятора «мышь». Это называется графическим пользовательским интерфейсом (GUI, Graphic User Interface).
Команда пользователя или действие, выполняемое прикладной программой, разбивается на несколько сотен или тысяч элементарных операций. Назначение операционной системы состоит в том, чтобы скрыть
188
от пользователя эти сложные и ненужные ему подробности и предоставить ему удобный интерфейс для работы. С точки зрения пользователя ОС выступает посредником между ним и ЭВМ, воспринимает команды, вводимые пользователем, и выполняет действия, указанные в команде.
ОС обеспечивает выполнение двух главных задач:
-поддержку работы всех программ и обеспечение их взаимодействия
саппаратурой;
-предоставление пользователю возможности общего управления
ЭВМ.
В рамках первой задачи ОС обеспечивает взаимодействие программ
свнешними устройствами и друг с другом: распределение оперативной памяти между программами, управление устройствами, обработка ошибок и др. Цель управления ресурсами заключается в том, чтобы добиться эффективного использования ресурсов компьютера, а также освободить пользователя от необходимости самому управлять ими.
Вторая задача - общее управление машиной осуществляется использованием команд ОС, с помощью которых человек может выполнять, например, такие операции, как копирование программ, просмотр файлов и каталогов на экране дисплея, запуск программ, установку режимов работы дисплея, принтера и т.д.
В различных моделях ЭВМ используются ОС с разной архитектурой и возможностями, для их работы необходимы различные аппаратные ресурсы предоставляя пользователям разную степень сервиса для выполнения программ.
Скорость работы программ и выполнения операций с файлами зависит от количества информации, обрабатываемой ОС в единицу времени. Чем больше этот объем, тем быстрее выполняются операции. Выделяют 16-ти, 32-х, 64-х разрядные ОС и т.д.
В зависимости от количества одновременно обрабатываемых задач
(процессов) выделяют следующие виды операционных систем:
־однозадачные;
189
־многозадачные;
Ав зависимости от количества одновременно работающего числа пользователей:
־однопользовательские;
־многопользовательские.
Воднозадачной ОС в единицу времени может выполняться (быть активной) только одна прикладная программа которой представляются все ресурсы ЭВМ. В то же время, некоторые однозадачные ОС позволяют выполнять параллельно (в фоновом режиме) одну или несколько вспомогательных (резидентных) программ. Резидентные программы после запуска остаются в оперативной памяти и обычно обрабатывают операции ввода-вывода, следя за конкретными событиями, не мешая активной задаче.
Вмногозадачной ОС может одновременно выполняться несколько независимых друг от друга задач (процессов, программ). Многозадачность основана на принципе квантования времени. Эффект одновременной работы достигается разделением процессорного времени и других ресурсов между несколькими вычислительными процессами. Операционная система выстраивает очередь из поступающих заданий, выделяет квант времени для доступа к центральному процессору каждому заданию согласно очереди. Выполнив первое задание, операционная система отсылает его в конец очереди и переходит ко второму и т. д. Достоинство этого режима перед однозадачным заключается в более эффективном использовании ресурсов ЭВМ и повышении ее пропускной способности. Многозадачные ОС являются более предпочтительными, но при этом и более сложными, поскольку появляется необходимость реализации механизма управления заданиями.
Многозадачные ОС при выполнении программ используют
кооперативную или приоритетную многозадачность. При кооперативной многозадачности все приложения делят процессорное время, периодически опрашивая друг друга. Каждое приложение получает
190
фактически столько процессорного времени и аппаратных ресурсов, сколько оно считает нужным. Часто возникает ситуация когда приложение заняло ресурс, и при этом в ее работе возникла ошибка (программа "зависла"). На запросы других программ и в частности ОС она не реагирует, и работа компьютера становится нестабильной. Выходом из этой ситуации чаще всего, является перезагрузка компьютера, при которой другие работающие в это время программы аварийно завершаются с потерей обрабатываемой информации.
В режиме с приоритетной многозадачностью операционная система отводит каждому приложению строго определенное количество времени, не давая ей возможности монопольного использования аппаратуры. В этом режиме при "зависании" программы ОС может выгрузить ее из памяти, не нарушая работы других программ. Такие ОС являются более стабильными, но не все программы могут работать в них.
Однопользовательская операционная система позволяет работать в единицу времени только одному пользователю, в то время как многопользовательская ОС позволяет запускать на одном ПК несколько задач нескольким пользователям, позволяя им непосредственно взаимодействовать со своим заданием.
7.2.Требования к операционным системам
Надежность. Операционная система должна быть надежна, как и аппаратура на которой она работает. Она должна иметь возможность определения и диагностирования собственных ошибок, а также восстановления работоспособности после большинства характерных ошибок, произошедших по вине пользователя. Кроме того, она должна минимизировать вред, который они могут причинить.
Защита программ и данных. Операционная система должна защищать выполняемые программы и данные от взаимного влияния их друг на друга.
191