Основы вычислительных систем Курс лекций начало

 

1.4. Особенности организации вычислительных процессов

 

Хотя и ММВК и МПВК относятся к комплексам с множественным потоком команд и множественным потоком данных, организация процессов обработки в них существенно различна.

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

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

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

Как правило, ОС в ММВК сравнительно мало отличаются от ОС одиночных ЭВМ, работающих в мультипрограммном режиме обработки информации: просто ОС одиночной ЭВМ дополняется компонентами, обеспечивающими выполнение функций, связанных с комплектованием. Обычно ОС в ММВК содержат следующие дополнительные программные модули: 1) обеспечения обмена информацией между ЭВМ; 2) взаимного контроля состояния ЭВМ; 3) проведения регламентных работ; 4) взаимодействия ВК с оператором.

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

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

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

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

Хотя в некоторых случаях все эти программы могут быть достаточно сложными, однако их общий объем сравнительно невелик – редко превышает 10% объема ОС.

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

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

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

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

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

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

В настоящее время известны три типа организации вычислительного процесса в МПВК и соответственно три типа функционирования ОС: 1) ведущий – ведомый; 2) раздельное выполнение заданий в каждом процессоре; 3) симметричная, или однородная, обработка информации всеми процессорами.

Организация работы МПВК по принципу «ведущий – ведомый» является наиболее простой. Один из процессоров управляет работой всех остальных, т. е. берет на себя функции распределения задач и ресурсов, организует необходимую передачу информации, производит переназначение задач в случае выхода из строя какого-либо процессора, отключение неисправных устройств и т. д. Остальные процессоры выполняют только функции непосредственной обработки: являются исполнительными процессорами.

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

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

Иногда, учитывая специфичность выполняемых ведущим процессором функций, его делают специализированным, настроенным на выполнение узкого круга операций, добиваясь за счет этого высокой производительности. Однако такое решение имеет тот недостаток, что при отказе ведущего процессора из строя выходит комплекс. К недостаткам организации по типу «ведущий – ведомый» следует отнести малую ее гибкость. При большом потоке коротких задач ведущий процессор может не справляться с распределением задач между исполнительными процессорами, что неизбежно приводит к простоям некоторых из них. По той же причине не очень эффективно работает комплекс при решении на нескольких процессорах одной задачи: в этом случае на ведущий процессор ложится большая работа по синхронизации процесса решения частей задачи. Многопроцессорный ВК с организацией по принципу «ведущий – ведомый» в наибольшей степени подходит для создания специализированных систем, в которых недостатки такой организации могут быть заранее учтены и их влияние сведено к минимуму. Но еще раз подчеркнем, что недостатки в значительной степени искупаются простотой операционной системы.

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

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

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

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

В чем же сложность ОС многопроцессорных комплексов? На первый взгляд кажется, что ОС МПВК мало чем отличается от ОС мультипрограммной однопроцессорной ЭВМ: та же структура, тот же состав – планировщик, диспетчер, супервизор ввода – вывода и т. д. Однако детальное рассмотрение показывает, что по существу различие весьма глубокое. Чем же это объяснить? Прежде всего, не надо забывать, что в однопроцессорной ЭВМ при мультипрограммной обработке имеет место лишь совмещение во времени этапов решения задачи. Параллельная работа разных устройств позволяет одновременно вести обработку информации по нескольким программам; но при этом собственно обработка в процессоре производится в каждый данный момент времени только по одной программе. Таким образом, работа по нескольким программам осуществляется лишь за счет совмещения во времени работы процессора по одной программе с работой устройств ввода–вывода по другим программам.

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

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

Рассмотрим некоторые особенности ОС МПВК, которые отличают ее от ОС однопроцессорной системы.

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

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

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

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

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

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

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

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

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

Машиностроительное черчение, инженерная графика, начертательная геометрия. Выполнение контрольной