Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
для поступления в магистратуру.pdf
Скачиваний:
46
Добавлен:
04.08.2022
Размер:
2.68 Mб
Скачать

100

языков программирования.

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

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

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

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

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

-средства формализованного представления информации, хранимой в банке данных, - информационный язык;

-средства формализованного представления информационных задач, решаемых системой,

-язык запросов (информационно-поисковый язык);

-средства формализованного представления корректирующей информации (язык коррекции), а также процедур ее обработки;

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

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

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

Преимущества, которые обычно соотносятся с понятием хорошая архитектура: Масштабируемость (Scalability) возможность расширять систему и увеличивать ее

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

Ремонтопригодность (Maintainability) изменение одного модуля не требует изменения других модулей

Заменимость модулей (Swappability) модуль легко заменить на другой

Возможность тестирования (Unit Testing) модуль можно отсоединить от всех остальных и протестировать / починить

Переиспользование (Reusability) модуль может быть переиспользован в других программах и другом окружении

Сопровождаемость (Maintenance) разбитую на модули программу легче понимать и сопровождать

Архитектура — это организация системы, воплощенная в ее компонентах, их

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

Основы метрической теории ВС

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

101

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

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

Однако в зависимости от того, что мы считаем, время может быть определено различными способами.Наиболеепростойспособопределениявремениназываетсяастрономическимвременем, временем ответа (response time), временем выполнения(execution time) или прошедшим временем (elapsed time). Это задержка выполнения задания, включающая буквально все: работу процессора, обращения к диску, обращения к памяти, ввод/вывод и накладные расходы операционной системы. Однако при работе в мультипрограммном режиме во время ожидания ввода/вывода для одной программы, процессор может выполнять другую программу, и система не обязательно будет минимизировать время выполнения данной конкретной программы.

Для измерения времени работы процессора на данной программе используется специальный параметр - время ЦП (CPU time), которое не включает время ожидания ввода/вывода или время выполнения другой программы. Очевидно, что время ответа, видимое пользователем, является полным временем выполнения программы, а не временем ЦП. Время ЦП может далее делиться на время, потраченное ЦП непосредственно на выполнение программы пользователя и называемое пользовательским временем ЦП, и время ЦП, затраченное операционной системой на выполнение заданий, затребованных программой, и называемое системным временем ЦП.

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

Вбольшинстве современных процессоров скорость протекания процессов взаимодействия внутренних функциональных устройств определяется не естественными задержками в этих устройствах,азадаетсяединойсистемойсинхросигналов,вырабатываемыхнекоторымгенератором тактовых импульсов, как правило, работающим с постоянной скоростью. Дискретные временные события называются тактами синхронизации (clock ticks), просто тактами (ticks), периодами синхронизации (clock periods), циклами (cycles) или циклами синхронизации (clock cycles).Разработчики компьютеров обычно говорят о периоде синхронизации, который определяется либо своей длительностью (например, 10 наносекунд), либо частотой (например, 100 МГц). Длительность периода синхронизации есть величина, обратная к частоте синхронизации.

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

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

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

102

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

Технология распределенной обработки данных

Распределенная обработка данных – обработка данных, выполняемая на независимых, но связанных между собой компьютерах, представляющих распределенную систему.

Для реализации распределенной обработки данных были созданы многомашинные ассоциации, структура которых разрабатывается по одному из следующих направлений:

-многомашинные вычислительные комплексы;

-компьютерные (вычислительные) сети. Направления в технологиях распределенных систем:

-технология «клиент-сервер»;

-технологии объектного связывания;

-технологии реплицирования.

Технология «клиент-сервер». При реализации данной технологии отступают от одного из основных принципов создания распределенных систем – отсутствия центрального узла. Принцип централизации хранения и обработки данных является базовым принципом технологии клиентсервер.

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

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

Решение этой задачи основывается на поддержке современными «настольными» СУБД

(MS Access, MS FoxPro, dBase и др.) технологии «объектов доступа к данным» — DAO (Data Access Objects). Под объектом понимается интеграция данных и методов их обработки в одно целое (объект), на чем, как известно, основываются технологии объектно-ориентированного программирования. Другими словами, СУБД, поддерживающие DAO, получают возможность внедрять и оперировать в локальных базах объектами доступа к данным, физически находящимся в других файлах, возможно на других вычислительных установках и под управлением других СУБД. Связанные объекты для пользователя ничем не отличаются от внутренних объектов. Пользователь может также открывать связанные во внешних базах таблицы данных, осуществлять поиск, изменение, удаление и добавление данных, строить запросы по таким таблицам и т. д. Связанные объекты можно интегрировать в схему внутренней базы данных, т. с. устанавливать связи между внутренними и связанными таблицами.

Технологии реплицирования

Репликой называют особую копию базы данных для размещения на другом компьютере сети с целью автономной работы пользователей с одинаковыми (согласованными) данными общего пользования.

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

Программное обеспечение СУБД для реализации такого подхода соответственно дополняется функциями тиражирования (реплицирования) баз данных.

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

103

непрерывности согласованного состояния данных.

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

На практике для совместной коллективной обработки данных применяются смешанные технологии, включающие элементы объектного связывания данных, репликаций и клиентсерверных решений. Развитие и все более широкое распространение распределенных информационных систем является основной перспективой развития автоматизированных информационных систем.