Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры к ГОСАМ (все билеты).doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.56 Mб
Скачать

Билет 1

Вопрос 1. Математические основы функционального программирования: лямбда-исчисление А.Черча и теория рекурсивных функций: основные понятия и положения. Программирование в функциональных обозначениях. Строго функциональный язык. Соответствие между функциональными и императивными программами.

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

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

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

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

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

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

Многие современные языки ФП являются строго типизированными. Строгая типизация обеспечивает большую безопасность. Многие ошибки могут быть исправлены на стадии компиляции. Строгая типизация позволяет генерировать более эффективный код. Наряду с этим существуют функциональные языки с динамической типизацией.

Вопрос 2. Спецификация, представление, реализация абстрактных типов данных.

Тип данных определяет:

  1. Формат представления в памяти компьютера

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

  3. Множество допустимых операций, применимых к этому типу.

Структура данных характеризуется следующими свойствами:

  1. Множеством допустимых значений. Если тип данных предполагает только определенный тип, то структура может совмещать несколько.

  2. Характер отношений между данными. В одномерном массиве один элемент следует за другим. В графе возможны отношения: «один к одному», «один ко многим» (деревья), «многие ко многим»

  3. Возможные операции над данными

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

  1. Графическое (дерево, массив, граф)

  2. Логическое (в языках с помощью декларативных операторов, struct)

  3. Физическое (в виде 0 и 1)

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

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

Оперативные структуры можно классифицировать по нескольким признакам.

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

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

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

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

Вопрос 3. Многомашинные вс. Реализация на основе ес эвм. Кластерные вс.

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

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

По характеру связей между ЭВМ комплексы можно разделить на три типа: косвенно-, или слабосвязанные; прямосвязанные; сателлитные.

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

В прямосвязанных системах существуют три вида связей: общее ОЗУ (ООЗУ); прямое управление, иначе связь процессор (П) – процессор; адаптер канал – канал (АКК).

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

Для комплексов с сателлитными ЭВМ характерным является не способ связи, а принципы взаимодействии ЭВМ. Структура связей в сателлитных системах не отличается от связей в обычных МВС: чаще всего связь между ЭВМ осуществляется через АКК. Особенностью же этих комплексов является то, что в них, во-первых, ЭВМ существенно различаются по своим характеристикам, а во-вторых, имеет место определенная соподчиненность машин и различие функций, выполняемых каждой ЭВМ. Одна из ЭВМ, основная, является, как правило, высокопроизводительной и предназначается для основной обработки информации. Вторая, существенно меньшая по производительности, называется сателлитной или вспомогательной ЭВМ. Ее назначение – организация обмена информацией основной ЭВМ с периферийными устройствами, ВЗУ, удаленными абонентами, подключенными через аппаратуру передачи данных к основной ЭВМ. Кроме того, сателлитная ЭВМ может производить предварительную сортировку информации, преобразование ее в форму, удобную для обработки на основной ЭВМ, приведение выходной информации к виду, удобному для пользователя, и др. Сателлитная ЭВМ, таким образом, избавляет основную высокопроизводительную ЭВМ от выполнения многочисленных действий, которые не требуют ни большой разрядности, ни сложных операций, т. е. операций, для которых большая, мощная ЭВМ не нужна. Более того, с учетом характера выполняемых сателлитной машиной операций она может быть ориентирована на выполнение именно такого класса операций и обеспечивать даже большую производительность, чем основная ЭВМ.

ЕДИНАЯ СИСТЕМА ЭЛЕКТРОННЫХ ВЫЧИСЛИТЕЛЬНЫХ МАШИН (ЕС ЭВМ) - семейство цифровых вычислительных машин, обладающих широким диапазоном производительности и характеризующихся программной совместимостью машин семейства снизу вверх (т. е. программы, составленные для машин с меньшей производительностью, могут выполняться на машинах с большей производительностью). По конструктивно технологическому исполнению, логической структуре, номенклатуре устройств ввода-вывода и уровню программного обеспечения ЕС ЭВМ относится к 3-му поколению вычислительных машин. ЕС ЭВМ создал коллектив специалистов научно-исследовательских учреждений и предприятий стран-участниц СЭВ - Болгарии, Венгрии, ГДР, Польши, СССР и Чехословакии. Промышленный выпуск первых машин “ЕС-1020” и “ЕС-1030” начат в 1972.

Ядром Единой системы являются 7 процессоров, охватывающих диапазон скоростей вычислений от нескольких тысяч до 2 миллионов операций в 1 секунду. В процессоре реализуются операции с фиксированной и плавающей запятыми и операции над десятичными числами. Для данных и инструкций принято несколько форматов, в основе которых лежит байт и слово из 4 байт. Операции можно производить над половинными, целыми и двойными словами, а также над полями переменной длины. Система адресации в ЕС ЭВМ обеспечивает формирование прямого адреса для обращения к оперативному запоминающему устройству (ОЗУ) емкостью до 16 Мегабайт. Из памяти данные также можно выбирать разными форматами: полусловом, словом, двойным словом и полем переменной длины в пределах 1 — 256 байт. Для удобства составления программ с изменением адреса по двум параметрам предусмотрены инструкции с двойной модификацией адреса. Память всех машин имеет защиту памяти по записи и считыванию, организованную путем проверки принадлежности каждого из блоков по 2048 байт к одному из 16 возможных ключей защиты, которые можно менять с помощью программы.

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

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

В качестве входных языков ЕС ЭВМ приняты автокод (язык ассемблера), АЛГОЛ, ФОРТРАН и КОБОЛ. Системы программирования снабжены средствами отладки и редактирования программ. Программное обеспечение включает также пакеты различных прикладных программ

Кластер представляет собой два или более компьютеров (часто называемых узлами), объединяемые при помощи сетевых технологий на базе шинной архитектуры или коммутатора и предстающие перед пользователями в качестве единого информационно-вычислительного ресурса. В качестве узлов кластера могут быть выбраны серверы, рабочие станции и даже обычные персональные компьютеры. Узел характеризуется тем, что на нем работает единственная копия операционной системы. Преимущество кластеризации для повышения работоспособности становится очевидным в случае сбоя какого-либо узла: при этом другой узел кластера может взять на себя нагрузку неисправного узла, и пользователи не заметят прерывания в доступе. Возможности масштабируемости кластеров позволяют многократно увеличивать производительность приложений для большего числа пользователей технологий (Fast/Gigabit Ethernet, Myrinet) на базе шинной архитектуры или коммутатора. Такие суперкомпьютерные системы являются самыми дешевыми, поскольку собираются на базе стандартных комплектующих элементов ("off the shelf"), процессоров, коммутаторов, дисков и внешних устройств.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]