Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_po_infe.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
281.93 Кб
Скачать

39. Языки параллельного программирования.

1. Оccam

Язык Оccam был создан в 1982 году и предназначен для программирования транспьютеров – многопроцессорных систем распределенной обработки данных. Он описывает взаимодействие параллельных процессов в виде каналов – способов передачи информации от одного процесса к другому. Отметим особенность синтаксиса языка Оccam – в нем последовательный и параллельный порядки выполнение операторов равноправны, и их необходимо явно указывать ключевыми словами PAR и SEQ.

2. Linda

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

40. Неимперативные языки.

1. Функциональные языки

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

Из языков с энергичной семантикой упомянем ML и два его современных диалекта — Standard ML (SML) и CaML. Последний имеет объектно-ориентированного потомка – ObjectiveCaML (O’CaML).

Среди языков с ленивой семантикой наиболее распространены два: Haskell и его более простой диалект Clean.

2. Языки логического программирования

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

Родоначальником большинства языков логического программирования является язык Prolog (1971). У него есть ряд потомков – Parlog (1983, ориентирован на параллельные вычисления), DeltaProlog и др. Логическое программирование, как и функциональное, – это отдельная область программирования.

Языки развиваются в сторону все большей и большей абстракции. И это сопровождается падением эффективности. Повышение уровня абстракции влечет за собой повышение уровня надежности программирования. С низкой эффективностью можно бороться путем создания более быстрых компьютеров. Если требования к памяти слишком высоки, можно увеличить ее объем. Это требует времени и средств. А вот с ошибками в программах можно бороться только одним способом: их надо исправлять или не совершать. Или максимально затруднить их совершение. Именно на это направлены все исследования в области языков программирования.

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

41. Актуальность проблемы защиты информации.

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

  • физические (препятствие);

  • законодательные;

  • управление доступом;

  • криптографическое закрытие.

Наиболее эффективными являются криптографические способы защиты информации.

Криптография в переводе с древнегреческого означает "тайнопись". Это последовательность символов (открытый текст) подвергается некоторому преобразованию (в котором используется ключ), и в результате получается закрытый текст, непонятный тому, кто не знает алгоритма шифрования и ключа.

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

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

  • резкое увеличение объемов информации, накапливаемой, хранимой и обрабатываемой с помощью ЭBM и других средств автоматизации;

  • сосредоточение в единых базах данных информации различного назначения и различной принадлежности;

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

  • усложнение режимов функционирования технических средств вычислительных систем: широкое внедрение мультипрограммного режима, а также режима разделения времени;

  • автоматизация межмашинного обмена информацией, в том числе и на больших расстояниях.

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

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

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

Выделяются три аспекта уязвимости информации:

1) подверженность физическому уничтожению или искажению,

2) возможность несанкционированной (случайной или злоумышленной) модификации;

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

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

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

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