Программное обеспечение. 6

Содержание

 

 

 

 

 

 

 

 

 

 

 

 

 

Введение

 

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

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

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

 

 

 

 

 

 

 

 

 

 

 

 

 

  1. Программное обеспечение. Виды программного обеспечения

 

В компьютерном жаргоне часто используется слово «софт» от английского software, которое, в этом смысле впервые применил в статье American Mathematical Monthly математик из Принстонского университета Джон Тьюки (John W. Tukey) в 1958 г.

К программному обеспечению (ПО) относится также вся область деятельности по проектированию и разработке ПО:

  • технология проектирования программ (например, нисходящее проектирование, структурное и объектно-ориентированное проектирование и др.);
  • методы тестирования программ;
  • методы доказательства правильности программ;
  • анализ качества работы программ;
  • документирование программ;
  • разработка и использование программных средств, облегчающих процесс проектирования программного обеспечения, и многое другое.

Программное обеспечение – неотъемлемая часть компьютерной системы. Оно является логическим продолжением технических средств. Сфера применения конкретного компьютера определяется созданным для него ПО. Сам по себе компьютер не обладает знаниями ни в одной области применения. Все эти знания сосредоточены в выполняемых на компьютерах программах.

Программное обеспечение в настоящее  время составляет сотни тысяч  программ, которые предназначены  для обработки самой разнообразной  информации с самыми различными целями.

Все программы, работающие на компьютере, можно условно разделить на три вида (рис. 1.):

Прикладные программы, непосредственно обеспечивающие выполнение необходимых пользователям работ;

Системные программы, предназначены для управления работой вычислительной системы, выполняют различные вспомогательные функции, например:

- управление ресурсами компьютера;

- создание копий используемой информации;

- выдача справочной информации о компьютере и др.;

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

 

Рис.1. Программы, работающие на компьютере

 

При построении классификации ПО нужно  учитывать тот факт, что стремительное  развитие вычислительной техники и  расширение сферы приложения компьютеров  резко ускорили процесс эволюции программного обеспечения. Если раньше можно было легко перечислить основные категории ПО — операционные системы, трансляторы, пакеты прикладных программ, то сейчас ситуация коренным образом изменилась. Развитие ПО пошло как вглубь (появились новые подходы к построению операционных систем, языков программирования и т.д.), так и вширь (прикладные программы перестали быть прикладными и приобрели самостоятельную ценность).Соотношение между требующимися программными продуктами и имеющимися на рынке меняется очень быстро. Даже классические программные продукты, такие, как операционные системы, непрерывно развиваются и наделяются интеллектуальными функциями, многие из которых ранее относились только к интеллектуальным возможностям человека.

    1. Прикладное программное обеспечение

 

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

Прикладные программы могут  носить и общий характер, например, обеспечивать составление и печатание документов и т.п.

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

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

Наиболее  часто встречающееся прикладное ПО:

Редакторы документов – это наиболее широко используемый вид прикладных программ. Они позволяют подготавливать документы гораздо быстрее и удобнее, чем с помощью пишущей машинки. Текстовые редакторы могут обеспечивать выполнение разнообразных функций, а именно:

    • редактирование строк текста;
    • возможность использования различных шрифтов символов;
    • копирование и перенос части текста с одного места на другое или из одного документа в другой;
    • контекстный поиск и замена частей текста;
    • задание произвольных межстрочных промежутков;
    • автоматический перенос слов на новую строку;
    • автоматическая нумерацию страниц;
    • обработка и нумерация сносок;
    • выравнивание краев абзаца;
    • создание таблиц и построение диаграмм;
    • проверка правописания слов и подбор синонимов;
    • построение оглавлений и предметных указателей;
    • распечатка подготовленного текста на принтере в нужном числе экземпляров и т.п.

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

Представители редакторов документов – программы Microsoft Word, Wordpad, Microsoft Publisher, Corel Ventua и Adobe ageMaker.

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

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

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

Табличные процессоры имеют встроенную справочную систему, предоставляющую пользователю информацию по конкретным командам меню и другие справочные данные. Многомерные  таблицы позволяют быстро делать выборки в базе данных по любому критерию.

Представители семейства табличных процессоров: Microsoft Excel, Quatro Pro, Lotus 1-2-3.

Графические редакторы позволяют создавать и редактировать рисунки. В простейших редакторах предоставляются возможности рисования линий, кривых, раскраски областей экрана, создание надписей различными шрифтами и т.д. Большинство редакторов позволяют обрабатывать изображения, полученные с помощью сканеров. Представители графических редакторов – программы Adobe Photoshop, Corel Draw.

Правовые  базы данных содержат тексты нормативных документов и предоставляют возможности справки, контекстного поиска, распечатки и т.д. Представители правовых баз данных – пакеты Гарант и Консультант+ .

Системы автоматизированного проектирования (САПР) или CAD (англ. Computer-Aided Design) — программный пакет, предназначенный для создания чертежей, конструкторской и/или технологической документации и/или 3D моделей. Среди систем малого и среднего класса в мире наиболее популярна система AutoCad фирмы AutoDesk. Отечественный пакет с аналогичными функциями – Компас.

Системы управления базами данных (СУБД) позволяют управлять большими информационными массивами - базами данных. Программные системы этого вида позволяют обрабатывать на компьютере массивы информации, обеспечивают ввод, поиск, сортировку выборку записей, составление отчетов и т.д. Представители данного класса программ – Microsoft Access, Clipper, Paradox, FoxPro.

Интегрированные системы сочетают в себе возможность системы управления базами данных, табличного процессора, текстового редактора, системы деловой графики, а иногда и другие возможности. Как правило, все компоненты интегрированной системы имеют схожий интерфейс, что облегчает обучение работе с ними. Представители интегрированных систем – пакет Microsoft Office и его бесплатный аналог Open Office.

    1. Системные программы

 

Системные программы выполняются  вместе с прикладными и служат для управления ресурсами компьютера — центральным процессором, памятью, вводом-выводом.

Это программы общего пользования, которые предназначены для всех пользователей компьютера. Системное программное обеспечение разрабатывается так, чтобы компьютер мог эффективно выполнять прикладные программы.

Системное программное обеспечение  направлено:

  • на создание операционной среды функционирования других программ;
  • на обеспечение надежной и эффективной работы самого компьютера и вычислительной сети;
  • на проведение диагностики и профилактики аппаратуры компьютера и вычислительных сетей;
  • на выполнение вспомогательных технологических процессов (копирование, архивирование, восстановление файлов программ и баз данных и т.д.).

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

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

1.2.1. Структура системного программного обеспечения

 

Системное программное обеспечение можно разделить на:

Базовое программное обеспечение (base software) — минимальный набор программных средств, обеспечивающих работу компьютера,( как правило, поставляется вместе с компьютером). В базовое программное обеспечение входят: операционная система; операционные оболочки (текстовые и графические); сетевая операционная система.

Сервисное программное обеспечение — программы и программные комплексы, которые расширяют возможности базового программного обеспечения и организуют более удобную среду работы пользователя – утилиты,(может быть приобретено дополнительно)

Что такое операционная система

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

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

В функции операционной системы  входит:

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

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

Операционную систему можно  назвать программным продолжением устройства управления компьютера. Операционная система скрывает от пользователя сложные  ненужные подробности взаимодействия с аппаратурой, образуя прослойку между ними. В результате этого люди освобождаются от очень трудоёмкой работы по организации взаимодействия с аппаратурой компьютера.

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

Ещё не так давно работы по настройке  приходилось выполнять пользователю вручную, а сегодня производители компонентов компьютерной техники разработали протокол plug-and-play (включил - заработало). Этот протокол позволяет операционной системе в момент подключения нового компонента получить информацию о новом устройстве, достаточную для настройки ОС на работу с ним.

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

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

 Кратко опишем некоторые  разновидности утилит:

  • программы контроля, тестирования и диагностики, которые используются для проверки правильности функционирования устройств компьютера и для обнаружения неисправностей в процессе эксплуатации; указывают причину и место неисправности;
  • программы-драйверы, которые расширяют возможности операционной системы по управлению устройствами ввода-вывода, оперативной памятью и т.д.; с помощью драйверов возможно подключение к компьютеру новых устройств или нестандартное использование имеющихся;
  • программы-упаковщики (архиваторы), которые позволяют за счет применения специальных алгоритмов упаковки информации сжимать информацию на дисках, т.е. создавать копии файлов меньшего размера, а также объединять копии нескольких файлов в один архивный файл. Применение программ-архиваторов очень полезно при создании архива файлов, так как в большинстве случаев значительно удобнее их хранить, предварительно сжав программами-архиваторами. Представители данных программ –WinRar и WinZip.
  • антивирусные программы, предназначенные для предотвращения заражения компьютерными вирусами и ликвидации последствий заражения вирусами. Компьютерный вирус — это специально написанная небольшая по размерам программа, которая может "приписывать" себя к другим программам для выполнения каких-либо вредных действий — портит файлы, "засоряет оперативную память и т.д. Представители антивирусного семейства программ – Kaspersky Antivirus, DrWeb, Norton Antivirus

Часть утилит входит в состав операционной системы, а другая часть функционирует независимо от нее, т.е. автономно.

    1. Инструментальные системы

 

Инструментальные программные  средства — это программы, которые используются в ходе разработки, корректировки или развития других прикладных или системных программ.

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

К инструментальным программам, например, относятся:

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

Система программирования — это система для разработки новых программ на конкретном языке программирования.

Современные системы программирования обычно предоставляют пользователям  мощные и удобные средства разработки программ. В них входят:

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

Транслятор (англ. translator — переводчик) — это программа-переводчик. Она преобразует программу, написанную на одном из языков высокого уровня, в программу, состоящую из машинных команд.

Трансляторы реализуются в виде компиляторов или интерпретаторов. С точки зрения выполнения работы компилятор и интерпретатор существенно  различаются.

Компилятор (англ. compiler — составитель, собиратель) читает всю программу целиком, делает ее перевод и создает законченный вариант программы на машинном языке, который затем и выполняется.

Интерпретатор (англ. interpreter — истолкователь, устный переводчик) переводит и выполняет программу строка за строкой.

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

Откомпилированные программы работают быстрее, но интерпретируемые проще  исправлять и изменять.

Популярные системы программирования – Turbo Basic, Quick Basic, Turbo Pascal, Turbo C. Borland C++, Borland Delphi и др

Каждый конкретный язык ориентирован либо на компиляцию, либо на интерпретацию — в зависимости от того, для каких целей он создавался. Например, Pascal обычно используется для решения довольно сложных задач, в которых важна скорость работы программ. Поэтому данный язык обычно реализуется с помощью компилятора. С другой стороны, Basic создавался как язык для начинающих программистов, для которых построчное выполнение программы имеет неоспоримые преимущества.

Иногда  для одного языка имеется и  компилятор, и интерпретатор. В этом случае для разработки и тестирования программы можно воспользоваться интерпретатором, а затем откомпилировать отлаженную программу, чтобы повысить скорость ее выполнения.

  1. Тенденции развития программного обеспечения

 

Насколько близко мы подошли к действующему квантовому компьютеру? Прежде всего, необходимо создать элементы проводников, памяти и логики. Кроме того, эти простые элементы нужно заставить взаимодействовать друг с другом. Наконец, нужно встроить узлы в полноценные функциональные чипы и научиться тиражировать их. По оценкам ученных, прототипы таких компьютеров появились уже в 2009 году, а в 2010-2020 годах должно было начаться их массовое производство.

Конечно, заглянуть  вперед более чем на несколько  лет можно лишь чисто умозрительно, хотя в том, что ко второй половине этого века обрабатывающая мощность компьютеров превысит интеллектуальные способности человека, можно не сомневаться. Вполне вероятно, что к тому времени начнется и колонизация Солнечной системы. А к 22-му веку и люди, и компьютеры широко распространятся по ее планетам и начнут готовиться к освоению ближайших звездных систем.

Многоядерные процессоры отражают тенденцию последних лет: производительность компьютеров постоянно повышается и вместе с тем уменьшается  потребляемая мощность.

Все большее значение многоядерные процессоры приобретают в условиях всеобщей «цифрофикации» окружающей нас информации. Музыка, видео, фотографии, игры – их носители повсеместно становятся цифровыми, растет и количество устройств, генерирующих, обрабатывающих и хранящих цифровой контент (фото- и видеокамеры, DVD- и МР3-плееры).

Еще одна важная задача – расширение коммуникационной функции ПК. Проникновение в наши офисы и дома новых телекоммуникационных технологий, таких как VoIP, а также рост пропускной способности сетей требует обработки огромного количества пакетов данных, но это не должно влиять на скорость работы основных приложений. Многоядерные процессоры помогут справиться с этой задачей, правильно распределив ресурс вычислительных ядер для обработки сетевых пакетов и выполнения других приложений.1

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

Уменьшение размеров транзисторов, сопровождаемое снижением напряжения питания с 5В до 2,5-3В и ниже, увеличивает быстродействие и уменьшает  выделяемую тепловую энергию. Все производители  микропроцессоров перешли с проектных норм 0,35-0,25мкм на 0,18мкм и 0,12мкм и стремятся использовать уникальную 0,07мкм технологию (см. Таблица 2.1).

Таблица 2.1

Тенденции изменений характеристик  памяти

Год производства

2005

2006

2007

2010

2013

2016

DRAM, нм

80

70

65

45

32

32

МП, нм

80

70

65

45

32

32

Uпит, В

0,9

0,9

0,7

0,6

0,5

0,4

Р, Вт

170

180

190

218

251

288


 

В настоящее время ряд фирм выпускает  процессоры для персональных компьютеров  с тактовой частотой свыше 4 ГГц.

2.1. Увеличение объема и пропускной способности подсистемы памяти

 

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

Совершенствование интерфейсов реализуется  как увеличением пропускной способности  шин, так и введением дополнительных шин, расшивающих конфликты между  процессором, кэш-памятью и основной памятью. В последнем случае одна шина работает на частоте процессора с кэш-памятью, а вторая – на частоте работы основной памяти. При этом частоты работы второй шины, например, равны 66, 66, 166 МГц для микропроцессоров Pentium Pro-200, Power PC 604E-225, Alpha 21164-500, работающих на тактовых частотах 300, 225, 500 МГц, соответственно. При ширине шин 64, 64, 128 разрядов это обеспечивает пропускную способность интерфейса с основной памятью 512, 512, 2560 Мбайт/с, соответственно.2

Общая тенденция увеличения размеров кэш-памяти реализуется по-разному:

внешние кэш-памяти данных и команд с двухтактовым временем доступа  объемом от 256 Кбайт до 2 Мбайт  со временем доступа 2 такта в HP PA-8000;

отдельный кристалл кэш-памяти второго  уровня, размещенный в одном корпусе  в Pentium Pro;

размещение отдельных кэш-памяти команд и кэш-памяти данных первого  уровня объемом по 8 Кбайт и общей  для команд и данных кэш-памяти второго  уровня объемом 96 Кбайт в Alpha 21164.

Наиболее используемое решение  состоит в размещении на кристалле  отдельных кэш-памятей первого уровня для данных и команд с возможным созданием внекристальной кэш-памяти второго уровня.

Увеличение количества параллельно  работающих исполнительных устройств. Каждое семейство микропроцессоров демонстрирует в следующем поколении увеличение числа функциональных исполнительных устройств и улучшение их характеристик, как временных (сокращение числа ступеней конвейера и уменьшение длительности каждой ступени), так и функциональных (введение ММХ- расширений системы команд и т.д.).

В настоящее время процессоры могут  выполнять до 6 операций за такт. Однако число операций с плавающей точкой в такте ограничено двумя для R10000 и Alpha 21164, а 4 операции за такт делает HP PA-8500.

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

Широко используются архитектуры  с длинным командным словом – VLIW. Так, архитектура IA-64, развиваемая Intel и HP, использует объединение нескольких инструкций в одной команде (EPIC). Это позволяет упростить процессор и ускорить выполнение команд. Процессоры с архитектурой IA-64 могут адресоваться к 4 Гбайтам памяти и работать с 64-разрядными данными. Архитектура IA-64 используется в микропроцессоре Merced, обеспечивая производительность до 6 Гфлоп при операциях с одинарной точностью и до 3Гфлоп – с повышенной точностью на частоте 1ГГц.

Системы на одном кристалле и  новые технологии. В настоящее время получили широкое развитие системы, выполненные на одном кристалле – SOC (System On Chip). Сфера применения SOC – от игровых приставок до телекоммуникаций. Такие кристаллы требуют применения новейших технологий.

Основной технологический прорыв в области SOC удалось сделать корпорации IBM, которая смогла реализовать сравнительно недорогой процесс объединения на одном кристалле логической части микропроцессора и оперативной памяти. В новой технологии, в частности, используется так называемая конструкция памяти с врезанными ячейками (trench cell). В этом случае конденсатор, хранящий заряд, помещается в некое углубление в кремниевом кристалле. Это позволяет разместить на нем свыше 24 тыс. элементов, что почти в 8 раз больше, чем на обычном микропроцессоре, и в 2-4 раза больше, чем в микросхемах памяти для ПК. Хотя кристаллы, объединяющие логические схемы и память на одном кристалле, выпускались и ранее, например, такими фирмами, как Toshiba, Siemens AG и Mitsubishi, подход, предложенный IBM, выгодно отличается по стоимости. Причем ее снижение никоим образом не сказывается на производительности.

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

Для создания SOC IBM использует самые  современные технологические решения, одним из которых являются медные межсоединения (copper interconnect). По сравнению с технологией, где межсоединения выполнены на основе алюминия, медь позволяет сделать кристалл меньшим по размеру и более быстродействующим. Медная металлизация уменьшает общее сопротивление, что позволяет увеличить скорость работы кристалла на 15-20%. Обычно эта технология дополняется еще одной новинкой: технологией кремний на изоляторе – КНИ (SOI, Silicon On Insulator). Она уменьшает паразитные емкости, возникающие между элементами микросхемы и подложкой. Благодаря этому тактовую частоту работы транзисторов также можно увеличить. Возрастание скорости от использования КНИ приближается к 20-30%. Таким образом, общий рост производительности в идеальном случае может достигнуть 50%.

Программное обеспечение. 6