На сегодняшний день создано достаточно много языков параллельного программирования, однако трудно сказать, какой из них наиболее приемлем для использования.
Все зависит от решаемой задачи, возможностей компьютера, целей, которые ставятся
при этом, и ряда других факторов. Ниже в качестве примеров ЯПП мы рассмотрим некоторые
модельные языки, заложенные идеи в которых используют в большинстве современных
языков параллельного программирования. P-язык В качестве
языка параллельного программирования был разработан так называемый К-язык.
Для многотранспьютерных систем английскими учеными был создан специальный язык
параллельного программирования OCCAM, детальное
описание которого было дано в 1984 г. в книге "INMOS Limitid Occam Programming
Manual". Задача распараллеливания.В любом полном
рассмотрении вопросов параллельного программирования должны быть представлены
способы получения параллельной программы из обычной алгоритмической записи, которая
несет в себе след чисто последовательной логики рассуждений, так как любые вычисления,
проводимые вручную и автоматически, выполнялись последовательно. Распараллеливание
программ можно осуществлять как на уровне отдельных задач, так и на уровне
отдельных процедур, операторов, операций и микроопераций. Целесообразность преобразования
на указанных уровнях должна решаться в каждом отдельном случае в зависимости от
структуры ВС, типа программы и цели, которая ставится при ее решении. Итак, ставится
задача – преобразовать алгоритм решения задачи,
заданный последовательной программой, для параллельной его реализации на многопроцессорной
вычислительной системе. Для повышения надежности и
уменьшения времени обработки данных создают многопроцессорные вычислительные системы.
В ранних МВС все подключаемые дополнительные процессоры имели жестко закрепленные
функции, как правило, функции каналов ввода-вывода
Объединение
на уровне планирования заданий Этот способ – дальнейшее развитие объединения
самостоятельных ВС, создание так называемых слабосвязанных систем. Каждый процессор
по-прежнему входит в свою подсистему, выполнение также полностью происходит на
одной подсистеме, однако подсистема для выполнения задания выбирается в соответствии
с принятой дисциплиной. Объединение равноправных процессоров
Объединение процессоров в МВС по принципу "главный–подчиненный"
иногда перегружает главный процессор, за счет чего возникает недоиспользование
многих ресурсов. В связи с этим предпочтительнее объединение процессоров в ВС
как равноправных. В последние годы в связи с увеличением объема информации необычайно
остро встает проблема надежного хранения, передачи
и обработки информации. Совокупность всех комбинаций из определенного количества
символов, которые избраны для представления информации, называют
кодом. Каждую такую комбинацию символов будем называть кодовой комбинацией.
Общее количество кодовых комбинаций может быть меньше или равно числу всевозможных
комбинаций из заданного количества символов. Наиболее известные из самоконтролирующихся
и самокорректирующихся кодов – коды Хемминга. Построены
они применительно к двоичной системе счисления. Код
с проверкой на четность образуется добавлением к группе информационных двоичных
знаков одного контрольного. Значение его выбирается таким образом, чтобы общее
число единиц в слове было четным или нечетным. Иногда мы замечаем, что не
хватает места на жестком диске. И хотя на страницах компьютерных журналов
можно встретить массу всевозможных вариантов решения этой проблемы: быстродействующие
дисковые накопители большой емкости, сохранение данных на магнитной ленте, оптические
накопители с возможностью перезаписи или с однократной записью (WORM) и другие
способы хранения сотен мегабайт информации – всего этого может оказаться недостаточно,
если вы работаете со сканером. Алгоритм кодирования
Хаффмана. В основе алгоритма лежит простой принцип: символы заменяются
кодовыми последовательностями различной длины. Работа телефакса полностью основана
на сжатии информации. Если бы образ вашего листа
бумаги размером 297 х 210 мм, снятый с разрешением 8 точка/мм, не был сжат,
он занял бы 4 Мб памяти, и для его передачи со скоростью 9600 бит/с потребовался
бы почти час. На самом деле это занимает значительно меньше времени. Какие же
приемы сжатия используют в факсах. Хотя алгоритмы
сжатия, применяемые в телефаксах, непригодны для цветных и полутоновых изображений,
они, очевидно, могут быть полезны для сжатия деловых
документов, содержащих только текст и штриховые рисунки. Поэтому неудивительно,
что многие фирмы использовали алгоритмы сжатия, подобные применяемым в телефаксах,
для обработки деловой документации. Если вы постоянно работаете с
полутоновыми или цветными изображениями, алгоритмы сжатия информации группы
IV вам не подойдут. Наряду с пакетами Colorsgueeze фирмы Kodak и PicturePress
фирмы Storm Technology рассмотрим программу SuperSgueeze, предназначенную для
сжатия неподвижных изображений, фирмы Super Mac Technology. Программно-аппаратные
средства сжатия данных предназначены не только для
конечных пользователей, но и для разработчиков, желающих расширить области применения
сжатия данных. Программные механизмы защиты строятся,
как правило, на принципе проверки определенных параметров машины на предмет совпадения
некоторых данных, хранящихся в памяти компьютера, жестком диске, ключевой дискете.
Еще одним интересным и эффективным способом защиты программ
от несанкционированного копирования (НСК) является использование аномальных
явлений, с которыми приходится сталкиваться при программировании микропроцессора.
Информацию о них чаще всего можно получить лишь экспериментальным путем. Остановимся
на существенных недостатках известных программных механизмов
защиты от НСК и укажем основные пути и способы увеличения их эффективности
и надежности Наиболее распространенные методы скрытия исходного текста программы
от стандартных средств дизассемблирования – шифрование
и архивация. Непосредственное дизассемблирование защищенных таким способом
программ, как правило, не дает нужных результатов. В последнее время в связи с
широким распространением локальных и глобальных компьютерных сетей необычайно
остро встала проблема защиты информации при передаче
или хранении в сети. Дело в том, что разработанные программы и подготовленные
данные для отдельного компьютера и предназначенные для локального использования,
практически не содержали средств защиты Проблема обеспечения достоверности функционирования
ВС имеет много общего с проблемой достоверности передачи
дискретной информации по каналам связи (КС). Систематические
ошибки. Они появляются, как правило, в результате
отказов одного или нескольких схемных элементов, входящих в цепи передачи информации
или в устройства, с помощью которых выполняются арифметические и логические операции.
Автоматический контроль функционирования ЭВМ предполагает
получение каким-либо способом информации об ошибках. Причем для исправления ошибок
требуется более полная информация. Программные методы базируется на использовании
специальных методов и пакетов контролирующих программ. Различают тестовый и программно-логический
контроль. Тестовый контроль осуществляется в ЭВМ периодически с помощью программ-тестов.
Адресное кодирование. Вцелях повышения
быстродействия компьютера используется модификация команд. Она состоит в изменении
адресной части базовой команды. Ветви решений, полученные
после формирования параллельной программы, или исходный набор задач для обработки
на компьютере в случае многопроцессорных систем или компьютерных сетей должны
быть распределены по процессорам (или компьютерам) для выполнения. Сформированное
множество процессов необходимо распределить по процессорам для выполнения.
Неизвестен эффективный способ априорного определения числа процессоров, для которого
может быть получено наилучшее среди всех возможных распределение. Все задания
(процессы), находящиеся в системе с мультипрограммированием, конкурируют
из-за процессорного времени. Кроме процессов пользователя, имеются и системные
процессы, для выполнения которых нужно процессорное время. Планирование по
наивысшему приоритету Метод круговорота (карусель)
Основной алгоритм FB (feedback) очередей с обратной
связью использует n очередей, каждая из которых обслуживается в порядке поступления.
Новый процесс поступает в первую очередь, затем после получения кванта времени
он переходит в очередь со следующим номером и так далее после очередного кванта
времени Многоуровневое планирование В
основе этого метода лежит следующий принцип – операции, которые встречаются часто,
должны требовать меньше времени, чем те, которые встречаются редко. С этой целью
все операции в зависимости от частоты выполнения разбиваются на уровни. Часто
используется трехуровневая система планирования: диспетчер, краткосрочный планировщик
и долгосрочный планировщик.