Главная страница Случайная лекция Мы поможем в написании ваших работ! Порталы: БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика Мы поможем в написании ваших работ! |
Механизмы передачи данныхДля выполнения программы, формально описывающей алгоритм, кроме способа реализации последовательности выполнения команд необходимо также задать способ передачи исходных данных и промежуточных результатов между операторами. Если операнд представлен в виде литерала, то передачи информации между операторами не происходит, так как литерал становится известным в момент компиляции, и в каждую команду в процессе компиляции помещается отдельная его копия. Для передачи операндов в процессе выполнения программы используются два механизма: · вызов операндов по ссылке (по имени), при котором обращение к данным происходит путем ссылки на их адрес (в языках высокого уровня адресу соответствует имя); · вызов по значению (дублирование данных), при котором копии данных передаются операторам, использующим их для вычислений. Пусть в процессе выполнения программы, соответствующей информационному графу изображенному на рис.4.1, получен промежуточный результат R2, который в дальнейшем будет использован для выполнения последующих операций. При использовании механизма вызова операнда по ссылке операторы обмениваются информацией посредством общей памяти, которая в нашем случае представляет собой отдельную ячейку, хранящую значение R2. Таким образом, передача операндов между операторами осуществляется с использованием взаимных ссылок к одной области памяти, расстановка которых производится на этапе программирования и компиляции. Механизм ссылок просто реализуется, но ограничивает возможность параллельных вычислений из-за конфликтов, возникающих при одновременном обращении к разделяемой памяти нескольких операторов. В случае передачи промежуточного результата по значению, отдельные копии R2 в качестве входных операндов D7 и D8 непосредственно передаются во все операторы, использующие значение этого результата. Таким образом, происходит копирование значений результата и пересылка этих копий по адресам назначения, содержащимся либо в команде, породившей результат R2, либо в специальном операторе копирования. Во втором случае оператор передает полученный результат только оператору копирования, который рассылает копии по содержащимся в его списке адресам назначения. Рассылка операндов при реализации механизма вызова по значению осуществляется в виде сообщений, каждое из которых имеет явное или неявное указание начала и конца, адрес процесса получателя и собственно результат операции. Прием и передача сообщения каким-либо процессом знаменует собой некоторое событие, которое может служить для синхронизации параллельно протекающих процессов. В вычислительных системах, ориентированных на обмен сообщениями, не используется совместно используемая память, что приводит к упрощению синхронизации процессов и уменьшению числа ошибок при программировании, однако для реализации обмена сообщениями требуются специальные аппаратные или программные средства, что приводит к дополнительным затратам аппаратуры и времени. 9 Лекция №8
Дата добавления: 2014-11-24; просмотров: 265; Нарушение авторских прав Мы поможем в написании ваших работ! |