Файл: Состав и свойства вычислительных систем. Информационное и математическое обеспечение вычислительных систем..pdf

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

Категория: Курсовая работа

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

Добавлен: 31.03.2023

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

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

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

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

Разработка информационного и математического обеспечения вычислительных систем тесна связана с созданием программного обеспечения. К современным методикам создания программного обеспечения относят[6][34]:

1. Традиционное программирование

2. Сентенциальное программирование

3. Функциональное программирование

4. Событийное программирование

5. Параллельное программирование

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

1. Традиционное программирование

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

С этой точки зрения такие современные языки, как С++, Ada или Java, остаются традиционными[6][35].

Конструкции традиционных языков.

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

Листинг 1 – Пример программы на С

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


2. Сентенциальное программирование[13][36]

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

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

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

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

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

Этот метод работы согласуется с формулировкой глобальной окружающей среды в логике и теории алгоритмов, но его нельзя считать априорно исчерпывающим. В будущем могут быть и другие формы глобального проверки данных[13][37] .

Листинг 2 – Пример программы на Prolog

3.Функциональное программирование

Функциональное программирование рассмотрим на примере языка LISP.

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

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

Основной единицей данных для LISP- является список.

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

1. Пустой список () (также называемый ноль) список.


2. Если L1,. , , , Ln, п> = 1 - атомы или списки, которые (l1,, пер ...) - список.

Элементы списка (l1, ..., Ln) называется l1,. , , , Ln. списки равенства определяется следующим индуктивным определением.

1. л = ноль тогда и только тогда, когда л есть также равны нулю.

2. (l1, ..., Ln) = (k1, ..., Km) тогда и только тогда, когда п = т и соответствующий Li = ки.

Для LISP (как и для любого другого функционального языка программирования) обязательно надо сказать, где и как разместить структуры данных (списки)[8][38].

Рисунок Структура информации, сопоставленной атому языка LISP

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

4. Событийное программирование

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

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

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

Примером языка, в некоторой степени, на основе событийного программирования, может служить Perl[8][39].

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


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

5. Параллельное программирование

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

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

Рисунок - Развилка

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

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

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

Вывод по главе 2

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


1. Информационное обеспечение определяет способы и формы отображения состояния объекта управления в виде данных внутри информационной системы, документов, графиков и сигналов вне информационной системы.

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

3. Математическое обеспечение вычислительных систем — состоит из фонда программ вычислительных алгоритмов.

4. Разработка информационного и математического обеспечения вычислительных систем тесна, связана с созданием программного обеспечения. К современным методикам создания программного обеспечения относят:

  • Традиционное программирование
  • Сентенциальное программирование
  • Функциональное программирование
  • Событийное программирование
  • Параллельное программирование

ЗАКЛЮЧЕНИЕ

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

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

2. Отличительной особенностью вычислительной системы по отношению к ЭВМ является наличие в них нескольких вычислителей, реализующих параллельную обработку.

3. Существует множество классификаций вычислительных систем. В курсовой работе рассмотрена следующая классификация вычислительных систем:

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

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

5. Архитектура вычислительных систем — совокупность важнейших решений об организации вычислительной системы Наиболее характерными видами современных вычислительных систем являются:

  • Встроенные программные системы
  • Клиент-серверные системы
  • Интегрированные распределенные решения
  • Системы реального времени
  • Web – сервисы
  • Системы мобильных устройств
  • Системы носимых компьютеров
  • Системы для управления информацией
  • Вычислительные системы промежуточного уровня
  • Вычислительные системы для виртуализации
  • Облачные вычисления и центров обработки данных
  • Системы для управления знаниями
  • Системы для научных вычислений