- •Задачи поиска: исчерпывающий поиск, быстрый поиск, использование деревьев в задачах поиска
- •Задачи поиска
- •Исчерпывающий поиск: перебор с возвратом, метод ветвей и границ, динамическое программирование
- •Быстрый поиск: бинарный и последовательный поиски в массивах, хеширование
- •Использование деревьев в задачах поиска: бинарные и случайные бинарные, оптимальные и сбалансированные деревья поиска
- •Уровни моделей и этапы проектирования баз данных Инфологическое моделирование
- •Базы данных (БД) и системы управления базой данных (СУБД)
- •Выбор системы управления базами данных
- •Жизненный цикл базы данных
- •Уровни моделей и этапы проектирования БД
- •Инфологическое моделирование
- •Языковые средства современных СУБД
- •Даталогическое моделирование
- •Проектирование на физическом уровне
- •Средства и методы проектирование БД
- •Ограничения целостности
- •Технология оперативной обработки транзакции (OLTP-технология)
- •Информационные хранилища
- •OLAP-технология
- •Принципы построения и архитектура компьютерных сетей Протоколы, иерархия протоколов и режимы их работы
- •Классификация современных компьютерных сетей
- •Принципы построения и архитектура компьютерных сетей
- •Протоколы, иерархия протоколов и режимы их работы
- •Соединение, передача данных, разъединение
- •Передача информации в компьютерных сетях
- •Каналы связи, модемы
- •Кодирование и защита от ошибок
- •Структура пакета
- •Методы коммутации каналов, сообщений, пакетов
- •Маршрутизация
- •Базовые средства передачи данных
- •Локальные вычислительные сети (ЛВС)
- •Структура и принципы строения ЛВС
- •Конфигурация связей
- •Стандарты, соглашения и рекомендации
- •Программное обеспечение компьютерных сетей
- •Назначение и основные функции операционных систем
- •Назначение и основные функции операционных систем (ОС)
- •Способы построения современных операционных систем и операционных оболочек
- •Организация и управление памятью, распределение ресурсов, сервисные службы операционных систем, организация сохранности и зашиты программных систем
- •Языки и системы программирования. Модели языков программирования
- •Языки и системы программирования. Модели языков программирования.
- •Компиляторы и интерпретаторы
- •Объектно-ориентированное программирование
- •Модели и этапы разработки программного обеспечения
- •Программные средства и программные продукты
- •Коммерческое, условно-бесплатное и свободно распространяемое программное обеспечение
- •Теория схем программ
- •Семантическая теория программ
- •Модели вычислительных процессов: Модель графов распределения ресурсов
- •Вычислительные схемы
- •Реляционные системы управления базами данных Объектно-ориентированные базы данных
- •Реляционные СУБД
- •СУБД на инвертированных файлах
- •Гипертекстовые и мультимедийные БД
- •XML-серверы
- •Объектно-ориентированные базы данных
- •Организация процессов обработки данных в БД
- •Архитектуры вычислительных систем. Архитектура системы команд
- •Классификация современных вычислительных систем
- •Способы организации и типы ВС
- •Параллельная обработка информации: уровни и способы организации
- •Реализация в многомашинных и многопроцессорных ВС
- •Операционные контейнеры
- •Векторные, матричные, ассоциативные системы
- •Однородные системы и среды: RISC-архитектуры
- •Развитие архитектур, ориентированных на языковые средства и среду программирования
- •Основы метрической теории ВС
- •Технология распределенной обработки данных
- •Задачи сортировки Анализ сложности и эффективности алгоритмов сортировки
- •Задачи сортировки
- •Внутренняя и внешняя сортировки
- •Алгоритмы сортировки
- •Анализ сложности и эффективности алгоритмов поиска и сортировки
- •Современные технологии разработки программного обеспечения Управление версиями Документирование
- •Современные технологии разработки программного обеспечения, постановка задачи, оценка осуществимости
- •Планирование, тестирование, обеспечение оценки качества
- •Групповая разработка, управление версиями, организация коллектива разработчиков, документирование
- •Структурное проектирование, CASE-средства, реинжиниринг программных систем
- •Работа с данными
- •Проблема создания и сжатия больших информационных массивов, информационных хранилищ и складов данных
92
Архитектуры вычислительных систем. Архитектура системы команд
Архитектура вычислительной машины (англ. сomputer architecture) – концептуальная структура вычислительной машины, определяющая проведение обработки информации и включающая методы преобразования информации в данные и принципы взаимодействия технических средств и программного обеспечения.
Архитектура системы – совокупность свойств системы, существенных для пользования. Архитектурой компьютера называется его описание на некотором общем уровне,
включающее описание пользовательских возможностей программирования, системы команд, системы адресации, организации памяти и т.д. Архитектура определяет принципы действия, информационные связи и взаимное соединение основных логических узлов компьютера: процессора, оперативного ЗУ, внешних ЗУ и периферийных устройств. Общность архитектуры разных компьютеров обеспечивает их совместимость с точки зрения пользователя.
Архитектура современного персонального компьютера подразумевает такую логическую организацию аппаратных компонент компьютера, при которой все устройства связываются друг с другом через магистраль, включающую в себя шины данных, адресов и управления.
Наиболее распространены следующие архитектурные решения.
Классическая архитектура (архитектура фон Неймана) — одно арифметико-логическое устройство(АЛУ),черезкотороепроходитпотокданных,иодноустройствоуправления(УУ),через которое проходит поток команд — программа. Это однопроцессорный компьютер. К этому типу архитектуры относится и архитектура персонального компьютера с общей шиной. Все функциональные блоки здесь связаны между собой общей шиной, называемой также системной магистралью.
Физически магистраль представляет собой многопроводную линию с гнездами для подключения электронных схем. Совокупность проводов магистрали разделяется на отдельные группы: шину адреса, шину данных и шину управления.
Периферийные устройства (принтер и др.) подключаются к аппаратуре компьютера через специальные контроллеры — устройства управления периферийными устройствами.
Контроллер — устройство, которое связывает периферийное оборудование или каналы связи с центральным процессором, освобождая процессор от непосредственного управления функционированием данного оборудования.
Архитектура с параллельными процессорами. Здесь несколько АЛУ работают под управлением одного УУ. Это означает, что множество данных может обрабатываться по одной программе— тоестьпоодномупотокукоманд.Высокоебыстродействиетакойархитектурыможно получить только на задачах, в которых одинаковые вычислительные операции выполняются одновременно на различных однотипных наборах данных.
Шинная (магистральная) архитектура ЭВМ. Наличие интеллектуальных контроллеров внешних устройств стало важной отличительной чертой машин третьего и четвертого поколений. Контроллер можно рассматривать как специализированный процессор, управляющий работой внешнего устройства. Такой процессор имеет собственную систему команд. Например, контроллер накопителя на гибких магнитных дисках (дисковода) умеет позиционировать головку на нужную дорожку диска, читать или записывать сектор, форматировать дорожку и т.п. Результаты выполнения каждой операции заносятся во внутренние регистры памяти контроллера и могут быть
вдальнейшем прочитаны центральным процессором. Центральный процессор при необходимости произвести обмен выдает задание на его осуществление контроллеру. Дальнейший обмен информацией может протекать под руководством контроллера без участия центрального процессора. Последний получает возможность «заниматься своим делом», т.е. выполнять программу дальше (если по данной задаче до завершения обмена ничего сделать нельзя, то можно
вэто время решать другую).
93
Рисунок 2 – Шинная (магистральная) архитектура ЭВМ Из рисунка видно, что для связи между отдельными функциональными узлами ЭВМ
используется общая шина (часто ее называют магистралью). Шина состоит из трех частей:
•шина данных, по которой передается информация;
•шина адреса, определяющая, куда передаются данные;
•шина управления, регулирующая процесс обмена информацией.
Отметим, что существуют модели компьютеров, у которых шины данных и адреса для экономииобъединены.Утакихмашинсначаланашинувыставляетсяадрес,азатемчерезнекоторое времяданные;длякакойименноцелииспользуетсяшинавданныймомент,определяетсясигналами на шине управления. Описанную схему легко пополнять новыми устройствами - это свойство называют открытостью архитектуры. Для пользователя открытая архитектура означает возможность свободно выбирать состав внешних устройств для своего компьютера, т.е. конфигурировать его в зависимости от круга решаемых задач.
Архитектура системы команд
Системой команд вычислительной машины называют полный перечень команд, которые способна выполнять данная ЭВМ. В свою очередь, под архитектурой системы команд (АСК) принято определять те средства вычислительной машины, которые видны и доступны программисту. АСК можно рассматривать как линию согласования нужд разработчиков программного обеспечения с возможностями создателей аппаратуры вычислительной машины. Таким образом, АСК служит интерфейсом между программной и аппаратной частями компьютера
(см. рис. 5.6).
Рис 5.6. Основные компоненты компьютера
Вконечном итоге цель разработчиков программного обеспечения и создателей аппаратуры
—реализация вычислений наиболее эффективным образом, то есть за минимальное время, и здесь важнейшую роль играет правильный выбор архитектуры системы команд.
94
В упрощенной трактовке время выполнения программы ТВЫЧ можно определить через число команд впрограммеNKОM, среднееколичество тактовпроцессораCPI, приходящихся наодну
команду и длительность тактового периода τтп:
Каждая из составляющих данного выражения зависит от одних аспектов архитектуры системы команд и, в свою очередь, влияет на другие (см. рисунок 5.7), что свидетельствует о необходимости ответственного подхода к выбору АСК.
Рис 5.7. АСК и эффективность вычислений В истории развития вычислительной техники отражаются изменения, происходившие во
взглядах разработчиков на перспективность той или иной архитектуры системы команд. Сложившуюся на настоящий момент ситуацию в области АСК иллюстрирует рисунок 5.8.
Рис 5.8. Классификация АСК Среди мотивов, чаще всего определяющих переход к новому типу АСК, остановимся на
двух наиболее существенных. Первый — место хранения операндов, что влияет на количество и длину адресов, указываемых в адресной части команд обработки данных. Второй — это состав операций, выполняемых вычислительной машиной, и их сложность. Именно эти моменты взяты в качестве критериев дляприведенной классификацииархитектур системы команд. Важнуюроль при выборе АСК играет ответ на вопрос о том, где могут храниться операнды и каким образом к ним осуществляется доступ. С этих позиций различают следующие виды архитектур системы команд:
-стековую;
-аккумуляторную;
-регистровую;
95
- с выделенным доступом к памяти.
Выбор той или иной архитектуры влияет на принципиальные моменты: сколько адресов будет содержать адресная часть команд, какова будет длина этих адресов, насколько просто будет происходить доступ к операндам и какой будет общая длина команд.
Классификация современных вычислительных систем
Вычислительная система (ВС) - это взаимосвязанная совокупность аппаратных средств вычислительной техники и программного обеспечения, предназначенная для обработки информации.
Иногда под ВС понимают совокупность технических средств ЭВМ, в которую входит не менее двух процессоров, связанных общностью управления и использования общесистемных ресурсов (память, периферийные устройства, программное обеспечение и т.п.).
Ресурсы вычислительной системы
К ресурсам вычислительной системы относят такие средства вычислительной системы, которыемогутбытьвыделеныпроцессуобработкиданныхнаопределенныйквантвремени.Основными ресурсами ВС являются процессоры, области оперативной памяти, наборы данных, периферийные устройства, программы.
Виды вычислительных систем
В зависимости от ряда признаков различают следующие вычислительные системы (ВС):
●однопрограммные и многопрограммные (в зависимости от количества программ, одновременно находящихся в оперативной памяти);
●индивидуального и коллективного пользования (в зависимости от числа пользователей, которые одновременно могут использовать ресурсы ВС);
●с пакетной обработкой и разделением времени (в зависимости от организации и обработки
заданий);
●однопроцессорные, многопроцессорные и многомашинные (в зависимости от числа процессоров);
●сосредоточенные, распределенные (вычислительные сети) и ВС с теледоступом (в зависимости от территориального расположения и взаимодействия технических средств);
●работающие или не работающие в режиме реального времени (в зависимости от соотношения скоростей поступления задач в ВС и их решения);
●универсальные, специализированные и проблемно-ориентированные (в зависимости от назначения).
Способы организации и типы ВС
Вычислительные системы могут строиться на основе целых компьютеров или отдельных процессоров. В первом случае ВС будет многомашинной, во втором – многопроцессорной.
Многопроцессорная архитектура. Наличие в компьютере нескольких процессоров означает, что параллельно может быть организовано много потоков данных и много потоков команд. Таким образом, параллельно могут выполняться несколько фрагментов одной задачи.
Многомашинная вычислительная система. Здесь несколько процессоров, входящих в вычислительную систему, не имеют общей оперативной памяти, а имеют каждый свою (локальную). Каждый компьютер в многомашинной системе имеет классическую архитектуру, и такая система применяется достаточно широко. Однако эффект от применения такой вычислительной системы может быть получен только при решении задач, имеющих очень специальную структуру: она должна разбиваться на столько слабо связанных подзадач, сколько компьютеров в системе.
Преимущество в быстродействии многопроцессорных и многомашинных вычислительных