Cтраница 1
Параллельное исполнение нескольких программ организуется путем периодического поочередного предоставления каждой программе небольшого интервала ( кванта) процессорного времени. Если по истечении кванта выполнение программы не заканчивается или до этого потребовалось выполнить операцию ввода - вывода, исполнение программы прерывается до следующего кванта. Такое циклическое обслуживание продолжается до полного завершения программы. Несмотря на то, что программы, по существу, исполняются поочередно, при высокой частоте повторения цикла обслуживания у всех пользователей, работающих за индивидуальными пультами, подключенными к ЭВМ, создается полная иллюзия непрерывного исполнения их программ. [1]
Процесс параллельного исполнения корректируется директивами дополнений, управляющими раздачей данных, синхронизацией подпроцессов и обработкой данных по выходу из блока разделения заданий. [2]
Модель параллельного исполнения из разд. Модель, обсуждаемая в разд. [3]
Это могут быть последовательное или параллельное исполнение; исполнение при выполнении некоторого условия; альтернативное исполнение нескольких ветвей; исполнение при завершении некоторого события, которое может быть как внешним по отношению к программной системе, так и определяться вычисляемыми значениями данных. Перечисленный набор не является полным и свидетельствует о многообразии типов связей по управлению. Ясно, что при описании связи должен быть указан ее тип, все атрибуты и возможные параметры, свойственные связям этого типа. [4]
Исследуются свойства расписаний, предусматривающих параллельное исполнение транзакций, и прилагаются необходимые для этого алгоритмы. [5]
Для анализа влияния конфликтов МПК, осуществляющий параллельное исполнение комплекса программ, связанных друг с другом по управлению и информации, представляется замкнутыми системами массового обслуживания. Источниками заявок служат процессоры, формирующие обращения к ОП при исполнении соответствующих команд в программах, а обслуживающими приборами являются п блоков ОП. Каждая система характеризуется суммарным потоком заявок от процессоров к блоку ОП, который складывается из / индивидуальных потоков. Возникновение очередей в ОП из-за ограниченности ее пропускной способности приводит к снижению производительности МПК. [6]
По правилам ОрепМР в программе должна быть выделена область параллельного исполнения ( блок параллелизации) - одна или несколько. Для исполнения операторов блока параллелизации создается группа подпроцессов ( или нитей, или потоков исполнения), число которых назначается до начала блока или в директиве, открывающей блок. Поток исполнения, создавший группу, становится ведущим подпроцессом ( или мастером) группы. Внутри области параллельного исполнения число подпроцессов сохраняется неизменным. По выходу из блока параллелизации все подпроцессы группы, за исключением мастера, закрываются. Директивами ОрепМР в блоке параллелизации могут быть выделены блоки операторов, исполнение которых может быть поручено одному из подпроцессов группы. Например, оператор цикла может быть разделен на части так, чтобы каждая из них выполнялась отдельным подпроцессом. Независимые не итеративные блоки операторов также могут быть поручены различным подпроцессам. Операторы, параллельное выполнение которых невозможно или нежелательно, могут исполняться либо одним из подпроцессов группы, либо подпроцессом-мастером. Все директивы, управляющие исполнением, применимы только к блокам замкнутого кода. Области параллельного исполнения могут вкладываться друг в друга. В этом случае каждый подпроцесс из группы исполнения создает свою группу, в которой становится мастером. [7]
![]() |
Варианты расписания. [8] |
Как было показано выше, произвольные транзакции при их параллельном исполнении могут приводить к бесконечному ожиданию, тупиковым ситуациям и несериализуемому расписанию. Для исключения подобных ситуаций в нашем распоряжении имеются два инструмента. Первый из них - планировщик - часть системы базы данных, которая служит арбитром между конфликтующими запросами. Ранее уже обсуждалось, например, каким образом планировщик, основанный на стратегии первым вошел - первым обслуживается, может исключить бесконечное ожидание. Планировщик может также справляться с тупиками и несериализуемостью при помощи рестарта одной или более транзакций, предварительно аннулировав все выполненные ими действия. Рестарты транзакций рассматриваются в разд. [9]
OMP DYNAMIC - управляет разрешением динамического изменения числа подпроцессов в группах параллельного исполнения. [10]
Тем не менее, чтобы обеспечить преимущества, достигаемые за счет применения схем параллельного исполнения, недостаточно лишь создать новые вычислительные машины. Мы можем, в конце концов, уже сейчас реализовать их, просто соединив параллельно несколько фон-неймановских компьютеров. Причина, по которой такой подход оказывается не в состоянии дать желаемого уровня производительности, заключается в характере каждой отдельной фон-неймановской машины. Этот вид машин предполагает выполнение детерминированной, директивно управляемой последовательности присваиваний в первую очередь над скалярными числовыми данными; он предлагает в принципе неблагоприятную среду для реализации недетерминированных, управляемых логическим выводом или данными одновременных вычислений, и в особенности эта среда непригодна для обработки структурированных данных нечисловой природы. Чтобы избавиться от этих ограничений, требуется отказаться не только от машин фон Неймана, но также и от базирующихся на них языков программирования. Именно поэтому в настоящее время столь много внимания фокусируется на декларативных языках, возможности которых совместимы с широким диапазоном новых схем вычислений и архитектур вычислительных машин. Эти языки непосредственно способствуют прогрессу нового поколения вычислительной техники благодаря тому, что делают его использование осуществимым. [11]
При выполнении логических операций обычно используются другие способы контроля, заключающиеся в повторном выполнении операции или параллельном исполнении других логических операций. Специальная схемная организация контроля применяется для обнаружения одиночных ошибок в устройствах управления. [12]
Выбор больших элементов сокращает накладные расходы системы по поддержанию блокировок, тогда как выбор малых элементов дает возможность параллельного исполнения многих транзакций. Рискуя упрощенно истолковать выводы, полученные в ряде аналитических работ, упомянутых в библиографии, предположим, что правильный выбор размера элементов сделан в том случае, когда средняя транзакция требует доступа к малому числу элементов. Так, если типичная транзакция ( в реляционной системе) читает или модифицирует один кортеж, который она находит с помощью индекса, то целесообразно трактовать кортежи как элементы. Если же типичная транзакция производит соединение двух или более отношений и тем самым требует доступа ко всем кортежам этих отношений, более уместно, по-видимому, в качестве элементов выбрать отношения. [13]
Следует отметить, что использование методологии сетевого планирования в чистом виде для пооперационного расписания работ в условиях, когда осуществляется параллельное исполнение нескольких по степени важности и срочности объектов производства, невозможно. Причина одна - отсутствие гарантий, то, что критические пути сетевых графиков но належатся друг на друга. В предполагаемой методике построения графиков запуска-выпуска все виды работ проектируются с резервом времени. Однако, как показали экспериментальные расчеты, и при этом на отдельных рабочих местах ( если нормативы про-леживания приняты достаточно жесткими), на некоторых ветвях каждого из графиков будет несколько локальных критических путей. [14]
Сегментация для систем с небольшим числом процессоров в основном развивается в направлении ввода в языки программирования операторов, явно указывающих возможность параллельного исполнения участков программы. [15]