
- •Вопрос 2. Спецификация, представление, реализация абстрактных типов данных.
- •Вопрос 3. Многомашинные вс. Реализация на основе ес эвм. Кластерные вс.
- •Типы кластеров:
- •Вопрос 2. Линейные структуры данных: стек, очередь, дек
- •Вопрос 3. Сравнительный анализ и основные компоненты инструментальных среды разработки пользовательских интерфейсов. Классификация элементов пользовательского интерфейса
- •Вопрос 1. Конкретные реализации языков функционального программирования: язык программирования Лисп, основные объекты, примитивы, списки, правила составления программ.
- •Вопрос 2. Семантическая теория программ. Вычислимость и разрешимость
- •Вопрос 3. Формальные методы описания диалоговых систем. Законы Фитса и Хика.
- •Вопрос 1. Основные конструкции логической программы: факты, правила, запросы, логические переменные. Операционная и декларативная семантика логических программ.
- •1. 5. Декларативный и процедурный смысл программ
- •Вопрос 2. Интерфейсы. Способы согласования аппаратных структур. Организация асинхронных интерфейсов
- •Элементы процесса как поведенческой категории :
- •Дескриптивный асинхронный процесс (dp)
- •Асинхронный процесс (ap)
- •Инициаторы
- •Вопрос 3. Эргономика пользовательского интерфейса. Критерии эргономичности интерфейса. Человеческие ошибки. Методы предотвращения ошибок. Снижение чувствительности системы к ошибкам.
- •Типы ошибок
- •Методы предотвращения ошибок
- •Как избежать сообщений об ошибках
- •Вопрос 1. Интерпретация и корректность логических программ. Абстрактный интерпретатор, значение логической программы, вычислительная модель
- •Вопрос 2. Порядковые статистики (Гулаков сказал что его не будет)
- •Субъективная удовлетворенность
- •Типичные интерфейсные ошибки отечественного по
- •Программа перегружена элементами управления
- •Терминология не адекватна знаниям пользователя о системе
- •От пользователя постоянно требуется дополнительная информация
- •Вопрос 1. Программирование баз данных. Динамическая база данных. Добавление и удаление фактов в процессе работы программы.
- •Вопрос 2. Поиск и кодирование (сжатие) данных, кодовые деревья, оптимальные префиксные коды
- •Вопрос 1. Рекурсивное программирование на логическом языке. Рекурсивные структуры данных – списки. Объявление списков. Составные списки. Голова и хвост списка. Примеры работы со списками.
- •Вопрос 2. Бинарный поиск, хеширование
- •Вопрос 3. Тестирование и отладка программного обеспечения. Структурное и функциональное тестирование. Особенности тестирования объектно-ориентированного по. Автоматизация процесса тестирования.
- •Вопрос1. Вычислительная модель программы на логическом языке. Согласование целевых утверждений. Сопоставление и унификация. Детерминизм.
- •Вопрос 2. Понятие выполнения сети. Свойства сети (устойчивость, безопасность, консервативность).
- •Вопрос 3. Автоматизация проектирования программного обеспечения на базе case-технологий. Принципы построения и т.Д.
- •Вопрос 1. Множественные выражения Программирование второго порядка Недетерминированное программирование
- •Вопрос 2. Нелинейные структуры данных: иерархические списки, деревья и леса, бинарные деревья
- •Вопрос 1. Вне логические предикаты. Ввод-вывод. Доступ к программам и обработка программ. Металогические предикаты. Сравнение не основных термов.
- •Вопрос 2. Алгоритмы сортировки
- •Сортировка разделением (Quicksort)
- •Вопрос 1. Constraint–Пролог: операционная семантика обобщение механизма унификации, понятие constraint'а. Операционная модель Constraint-пролоГа.
- •Вопрос 2. Нелинейные структуры: обходы деревьев
- •Вопрос 3. Качество по. Критерии качества: сложность, корректность, надежность, трудоемкость. Методика оценки качества по. Метрические особенности объектно-ориентированных пс. Сертификация по
- •Вопрос 1. Cancelled мистером г.
- •Вопрос 2. Стандартные схемы программ. Методы формальной спецификации и верификации.
- •Вопрос 1. Использование деревьев в задачах поиска: бинарные деревья поиска, случайные, оптимальные, сбалансированные по высоте и рандомизированные деревья поиска
- •. Деревья цифрового поиска
- •Вопрос 2. Определение асинхронного процесса как описания модели вычислительного процесса. Глобальные свойства – асинхронность, недетерминированность, параллельность.
- •1. Задачи сортировки; внутренняя и внешняя сортировка
- •2. Подклассы асинхронного процесса. Эффективный асинхронный процесс
- •Длительность реакции системы
- •Субъективное восприятие скорости работы
- •Приемы для уменьшения субъективного восприятия
- •1. Оптимальная сортировка.
- •2. Конвейерный процесс. Автономный процесс. Асинхронный процесс как метамодель.
- •Непосредственное манипулирование
- •Потеря фокуса внимания (прерывание)
- •Ограничение принятия решений
- •1. Анализ сложности и эффективности алгоритмов поиска и сортировки.
- •2. Классификация сетей (ординарные, автоматные, маркированный граф).
- •Понятность системы
- •Ментальная модель
- •Метафора
- •Аффорданс
- •Стандарт
- •1. Файлы: организация и обработка, представление деревьями: b-деревья.
- •2. Сетевое представление параллельных процессов. Области применения сетей Петри
- •3. Основы теории формальных языков и грамматик. Основные понятия и определения. Операции над языками. Классификация формальных языков и грамматик по порождающей способности
- •1. Алгоритмы на графах: представления графов, схемы поиска в глубину и ширину, минимальное остовное дерево, кратчайшие пути.
- •2.1.Поиск в глубину
- •2.2 Поиск в ширину.
- •2. Протоколы взаимодействия объектов вычислительных структур. Понятие протокола.
- •3. Вывод контекстно-свободных (кс) – грамматик и правила построения дерева вывода. Синтаксический разбор. Способы задания схем грамматик. Форма Бэкуса-Наура.
- •1. Теория сложности алгоритмов: np-сложные и труднорешаемые задачи.
- •2. Недетерминированные конечные автоматы. Конечные преобразователи и переводы. Преобразование некоторых грамматик к автоматному виду.
- •3. Объектно-ориентированное проектирование. Принципы проектирования. Схемы, диаграммы, инструменты.
- •1. Детерминированные конечные автоматы. Эквивалентные состояния и автоматы.
- •2. Синтаксический анализ. Метод оперативного предшествования. Восходящие и нисходящие методы синтаксического анализа.
- •2. Жизненный цикл программного обеспечения. Структура жизненного цикла согласно международного стандарта.
- •1. Нисходящие распознаватели. Ll(k) – грамматики. Построение детерминированного нисходящего распознавателя.
- •2. Параллельная обработка как основа высокопроизводительных вычислений. Уровни организации параллелизма: уровень заданий, программ и команд. Системы (языки) параллельного программирования.
- •1. Восходящие распознаватели. Lr(k) грамматики. Построение грамматики.
- •2. Понятие архитектуры вычислительной системы (вс). Архитектура как набор компонент и как система уровневых интерфейсов. Основные аппаратные и программные элементы вс.
- •1.1. Архитектура как набор взаимодействующих компонент
- •1.2. Архитектура как интерфейс между уровнями физической системы
- •1. Магазинные преобразователи. Определение магазинного преобразователя. Перевод, определяемый преобразователем.
- •2. Архитектура системы команд. Микропроцессоры (мп) с полным (cisc) и сокращённых (risc) набором команд. Основные принципы risc- архитектуры. Организация risc мп Alpha 21x64 фирмы dec.
- •Особенности архитектуры Alpha компании dec
- •1. Описание перевода или трансляции. Синтаксически-управляемые (су) – схемы.
- •2. Основные идеи объектно-ориентированных языков программирования. Создание абстрактных типов данных. Инкапсуляция. Полиморфизм. Наследование.
- •3. Развитие архитектур современных мп. Конвейеризация и динамическое выполнение потока команд. Суперскалярность. Архитектура epic мп Intel itanium.
- •1. Транслирующие грамматики. Построение транслирующей грамматики по су-схеме. Атрибутные транслирующие грамматики.
- •3. Векторные и векторно-конвейерные вс. Структура векторного процессора. Матричные вс.
- •1. Трансляторы, интерпретаторы и компиляторы. Стадии работы компиляторы. Лексический анализ.
- •3. Системы массовой параллельной обработки (мрр). Супер эвм фирмы sgi - Cray t3e(t3d) -1200.
- •2. Классификация и типы вс. Многомашинные и многопроцессорные вс. Представление вс на основе распределения потоков команд и данных (классификация Флинна)
Билет 1
Вопрос 1. Математические основы функционального программирования: лямбда-исчисление А.Черча и теория рекурсивных функций: основные понятия и положения. Программирование в функциональных обозначениях. Строго функциональный язык. Соответствие между функциональными и императивными программами.
Лямбда исчисление оперирует тремя типами элементов: символами, представляющими переменные и константы; скобками для группировки символов; обозначениями функций с использованием греческой буквы лямбда. Функциональная программа состоит из совокупности определений функций. Функции представляют собой вызовы других функций и предложений, управляющих последовательностью вызовов. Вычисления начинаются с вызова некоторой функции, которая вызывает функции, входящие в состав ее определения. Функции могут прямо или опосредованно вызывать сами себя. Каждый вызов возвращает некоторое значение в вызвавшую его функцию, вычисление которой после этого продолжается. В функциональном программировании нет места присваиванию и передаче управления. Разветвление вычислений описано на механизме обработки аргументов условного выражения.
При таком подходе к программированию рекурсия является единственным способом организации повторяющихся вычислений. В функциональной программе не должно быть присваиваний, глобальных переменных, обработки исключений, функций с побочными эффектами.
Существуют две парадигмы программирования: императивная и декларативная. Основные черты императивной программы: указание логики управления в программе, определение порядка выполнения операций, наличие операторов присваивания, выполняющих разрушающее присваивание. Концепция памяти как хранилища значений, содержимое которого может обновляться операторами программы, является фундаментальной в императивном программировании.
При использовании декларативного языка в программе в явном виде указывается, какими свойствами должен обладать результат, но не определяется порядок его получения. Декларативная программа состоит из предложений, описывающих результат. Порядок предложений, определяющий свойства результат не имеет значения. Отсутствует концепция переменной, как поименованной области памяти и явное управление.
Прозрачность по ссылкам является фундаментальным свойством математических функций и формулируется: значение функции зависит только от нее самой и аргументов вызова. Здесь отсутствуют функции с побочными эффектами, при вызове которых с разными значениями, могут быть получены разные результаты. Оператор присваивания отсутствует, объекты нельзя уничтожать, можно только создавать новые путем декомпозиции и синтеза существующих. О ненужных объектах позаботиться сборщик мусора.
В теории функционального программирования принято говорит о энергичном и ленивом вычислениях. Ленивое вычисление – стратегия планирования, при которой вычисления не выполняются до тех пор, пока не возникнет необходимость в их результатах. Энергичное вычисление – стратегия, при которой вычисления выполняются, как только появляется возможность их выполнить.
Многие современные языки ФП являются строго типизированными. Строгая типизация обеспечивает большую безопасность. Многие ошибки могут быть исправлены на стадии компиляции. Строгая типизация позволяет генерировать более эффективный код. Наряду с этим существуют функциональные языки с динамической типизацией.
Вопрос 2. Спецификация, представление, реализация абстрактных типов данных.
Тип данных определяет:
Формат представления в памяти компьютера
Множество допустимых значений, которые может принимать принадлежащая к выбранному типу переменная или константа
Множество допустимых операций, применимых к этому типу.
Структура данных характеризуется следующими свойствами:
Множеством допустимых значений. Если тип данных предполагает только определенный тип, то структура может совмещать несколько.
Характер отношений между данными. В одномерном массиве один элемент следует за другим. В графе возможны отношения: «один к одному», «один ко многим» (деревья), «многие ко многим»
Возможные операции над данными
Структурой данных называется совокупность элементов данных, между которыми существуют определенные отношения, причем элементами данных могут быть как простые данные, так и структуры данных. Структура данных описывается самими данными и отношениями между ними. Представление данных возможно:
Графическое (дерево, массив, граф)
Логическое (в языках с помощью декларативных операторов, struct)
Физическое (в виде 0 и 1)
Чтобы перейти от логического уровня к физическому необходимы программы-преобразователи, туда и назад.
Структуры данных, характерные для основной памяти ВС, будем называть оперативными структурами. Структуры данных для внешней памяти -внешние структуры.
Оперативные структуры можно классифицировать по нескольким признакам.
В зависимости от отсутствия или наличия явно заданных связей между элементами данных следует различать несвязные структуры (векторы, массивы, строки, стеки, очереди) и связные структуры (связные списки).
Весьма важный признак структуры данных- ее изменчивость-изменение числа элементов и (или ) связей между элементами структуры. По признаку изменчивости будем различать структуры статические, полустатические (меняются размеры а связи остаются) и динамические (меняются и размеры и связи).
Важный признак структуры данных- характер упорядоченности ее элементов. По этому признаку структуры можно делить на линейно-упорядоченные или линейные, и нелинейные структуры.
В зависимости от характера взаимного расположения элементов в памяти линейные структуры можно разделить на структуры с последовательным распределением их элементов в памяти(векторы, строки, массивы, стеки, очереди) и структуры с произвольным связанным распределением их элементов в памяти(односвязанные, двухсвязанные, циклически связанные, ассоциативные списки). Пример нелинейных структур- многосвязанные списки, древовидные структуры и графовые структуры общего вида.
Вопрос 3. Многомашинные вс. Реализация на основе ес эвм. Кластерные вс.
Многомашинная Вычислительная Система (МВС) – система, включающая в себя две или более ЭВМ (каждая из которых имеет процессор, ОЗУ, набор периферийных устройств и работает под управлением собственной операционной системы), связи между которыми обеспечивают выполнение функций, возложенных на систему.
Цели, которые ставятся при объединении ЭВМ в систему, могут быть различными, и они определяют характер связей между ЭВМ. Чаще всего основной целью создания МВС является или увеличение производительности, или повышение надежности, или одновременно и то и другое. Однако при достижении одних и тех же целей связи между ЭВМ могут существенно различаться.
По характеру связей между ЭВМ комплексы можно разделить на три типа: косвенно-, или слабосвязанные; прямосвязанные; сателлитные.
В косвенно-, или слабосвязанных, системах ЭВМ связаны друг с другом только через внешние запоминающие устройства (ВЗУ). Такая организация связей обычно используется в тех случаях, когда ставится задача повысить надежность комплекса путем резервирования ЭВМ. В этом случае ЭВМ, являющаяся основной, решает заданные задачи, выдает результаты и постоянно оставляет в общем ВЗУ всю информацию, необходимую для продолжения решения с любого момента времени. Вторая ЭВМ, являющаяся резервной, может находиться в состоянии ожидания, с тем чтобы в случае выхода из строя основной ЭВМ, по сигналу оператора начать выполнение функций, используя информацию, хранимую в общем ВЗУ основной ЭВМ.
В прямосвязанных системах существуют три вида связей: общее ОЗУ (ООЗУ); прямое управление, иначе связь процессор (П) – процессор; адаптер канал – канал (АКК).
Связь через общее ОЗУ гораздо сильнее связи через ВЗУ. Хотя первая связь также носит характер информационной связи и обмен информацией осуществляется по принципу «почтового ящика», однако, вследствие того, что процессоры имеют прямой доступ к ОЗУ, все процессы в системе могут протекать с существенно большей скоростью, а разрывы в выдаче результатов при переходах с основной ЭВМ на резервную сокращаются до минимума. Недостаток связи через общее ОЗУ заключается в том, что при выходе из строя ОЗУ, которое является сложным электронным устройством, нарушается работа всей системы. Чтобы этого избежать, приходится строить общее ОЗУ из нескольких модулей и резервировать информацию. Это, в свою очередь, приводит к усложнению организации вычислительного процесса в комплексе и в конечном счете к усложнению операционных систем. Следует отметить также и то, что связи через общее ОЗУ существенно дороже, чем через ВЗУ.
Для комплексов с сателлитными ЭВМ характерным является не способ связи, а принципы взаимодействии ЭВМ. Структура связей в сателлитных системах не отличается от связей в обычных МВС: чаще всего связь между ЭВМ осуществляется через АКК. Особенностью же этих комплексов является то, что в них, во-первых, ЭВМ существенно различаются по своим характеристикам, а во-вторых, имеет место определенная соподчиненность машин и различие функций, выполняемых каждой ЭВМ. Одна из ЭВМ, основная, является, как правило, высокопроизводительной и предназначается для основной обработки информации. Вторая, существенно меньшая по производительности, называется сателлитной или вспомогательной ЭВМ. Ее назначение – организация обмена информацией основной ЭВМ с периферийными устройствами, ВЗУ, удаленными абонентами, подключенными через аппаратуру передачи данных к основной ЭВМ. Кроме того, сателлитная ЭВМ может производить предварительную сортировку информации, преобразование ее в форму, удобную для обработки на основной ЭВМ, приведение выходной информации к виду, удобному для пользователя, и др. Сателлитная ЭВМ, таким образом, избавляет основную высокопроизводительную ЭВМ от выполнения многочисленных действий, которые не требуют ни большой разрядности, ни сложных операций, т. е. операций, для которых большая, мощная ЭВМ не нужна. Более того, с учетом характера выполняемых сателлитной машиной операций она может быть ориентирована на выполнение именно такого класса операций и обеспечивать даже большую производительность, чем основная ЭВМ.
ЕДИНАЯ СИСТЕМА ЭЛЕКТРОННЫХ ВЫЧИСЛИТЕЛЬНЫХ МАШИН (ЕС ЭВМ) - семейство цифровых вычислительных машин, обладающих широким диапазоном производительности и характеризующихся программной совместимостью машин семейства снизу вверх (т. е. программы, составленные для машин с меньшей производительностью, могут выполняться на машинах с большей производительностью). По конструктивно технологическому исполнению, логической структуре, номенклатуре устройств ввода-вывода и уровню программного обеспечения ЕС ЭВМ относится к 3-му поколению вычислительных машин. ЕС ЭВМ создал коллектив специалистов научно-исследовательских учреждений и предприятий стран-участниц СЭВ - Болгарии, Венгрии, ГДР, Польши, СССР и Чехословакии. Промышленный выпуск первых машин “ЕС-1020” и “ЕС-1030” начат в 1972.
Ядром Единой системы являются 7 процессоров, охватывающих диапазон скоростей вычислений от нескольких тысяч до 2 миллионов операций в 1 секунду. В процессоре реализуются операции с фиксированной и плавающей запятыми и операции над десятичными числами. Для данных и инструкций принято несколько форматов, в основе которых лежит байт и слово из 4 байт. Операции можно производить над половинными, целыми и двойными словами, а также над полями переменной длины. Система адресации в ЕС ЭВМ обеспечивает формирование прямого адреса для обращения к оперативному запоминающему устройству (ОЗУ) емкостью до 16 Мегабайт. Из памяти данные также можно выбирать разными форматами: полусловом, словом, двойным словом и полем переменной длины в пределах 1 — 256 байт. Для удобства составления программ с изменением адреса по двум параметрам предусмотрены инструкции с двойной модификацией адреса. Память всех машин имеет защиту памяти по записи и считыванию, организованную путем проверки принадлежности каждого из блоков по 2048 байт к одному из 16 возможных ключей защиты, которые можно менять с помощью программы.
Имеется ряд особенностей в структуре процессора, позволяющих строить многомашинные комплексы, взаимодействовать с внешними объектами и работать в реальном масштабе времени. Единообразие структуры (архитектуры) ЕС ЭВМ, в частности состава инструкций (команд) и системы кодирования данных, обеспечивает программную совместимость, что позволяет разрабатывать программы не зависящими от конкретной модели и, следовательно, иметь общую (для большинства машин) операционную систему и прикладные программы.
В состав внешних устройств ЕС ЭВМ входит комплект накопителей на магнитных лентах, дисках и барабанах, комплект перфокартного и перфолентного оборудования ввода-вывода, устройства построчной печати, пишущие машинки, экранные пульты и графопостроители разного типа. Предусмотрены и средства передачи данных с разной скоростью по телефонным и телеграфным линиям связи.
В качестве входных языков ЕС ЭВМ приняты автокод (язык ассемблера), АЛГОЛ, ФОРТРАН и КОБОЛ. Системы программирования снабжены средствами отладки и редактирования программ. Программное обеспечение включает также пакеты различных прикладных программ
Кластер представляет собой два или более компьютеров (часто называемых узлами), объединяемые при помощи сетевых технологий на базе шинной архитектуры или коммутатора и предстающие перед пользователями в качестве единого информационно-вычислительного ресурса. В качестве узлов кластера могут быть выбраны серверы, рабочие станции и даже обычные персональные компьютеры. Узел характеризуется тем, что на нем работает единственная копия операционной системы. Преимущество кластеризации для повышения работоспособности становится очевидным в случае сбоя какого-либо узла: при этом другой узел кластера может взять на себя нагрузку неисправного узла, и пользователи не заметят прерывания в доступе. Возможности масштабируемости кластеров позволяют многократно увеличивать производительность приложений для большего числа пользователей технологий (Fast/Gigabit Ethernet, Myrinet) на базе шинной архитектуры или коммутатора. Такие суперкомпьютерные системы являются самыми дешевыми, поскольку собираются на базе стандартных комплектующих элементов ("off the shelf"), процессоров, коммутаторов, дисков и внешних устройств.
Кластеризация может осуществляться на разных уровнях компьютерной системы, включая аппаратное обеспечение, операционные системы, программы-утилиты, системы управления и приложения. Чем больше уровней системы объединены кластерной технологией, тем выше надежность, масштабируемость и управляемость кластера.