ЖУРНАЛ «СТА» №3/2004
смогло бы адаптироваться к числу имеющихся «по факту» хостов в сис- теме. К АК ЭТО ВЫГЛЯДИТ Кратко рассмотрим результаты вы- полнения программ. На рис. 4 показаны результаты вы- полнения последовательности коди- рования и сравнительного восстанов- ления задачами, работающими на од- ном и двух процессорах соответст- венно, для случая кодирования клю- чом длиной 2 байта. Время выполне- ния задач на двух процессорах со- ставляет примерно 70% от времени выполнения на одном процессоре. Первоначально можно было предпо- ложить, что это соотношение соста- вит 50%, однако оно оказывается больше изза неизбежных в первом случае потерь времени на операции обмена. На рис. 5 показаны результаты вы- полнения этих же задач при прочих равных условиях, но для ключа длиной 3 байта. Время двухпроцессорной об- работки составляет здесь уже 62% от времени обработки однопроцессор- ной – сказывается тот фактор, что за счёт большей продолжительности ос- новных операций уменьшается отно- сительная доля начальных подготови- тельных операций. С увеличением длины ключа время выполнения задачи растёт по экспо- ненциальному закону. З АМЕЧАНИЯ В ЗАКЛЮЧЕНИЕ Основная цель проделанной рабо- ты — показать практический способ организации многопроцессорной об- работки, которая использует уни- кальные свойства операционных систем, построенных на базе микро- ядра с обменом сообщениями. Кроме того, важно было на примере реаль- ного проекта продемонстрировать, какими минимальными трудозатра- тами это обеспечивается. Причём в представленном проекте кластер- ная обработка реализовывалась, не выходя за пределы архитектуры уни- версальных компьютеров общего на- значения. Кластерная обработка реализуема и в иных ОС (Windows, Linux, Sun Solaris и др.). Для этого существуют программные пакеты общего приме- нения (например, интерфейс MPICH 1.2). При этом транспортными меха- низмами выступают общеизвестные сетевые протоколы: TCP/IP, NetBEUI и др. В представленном проекте показано применение спе- циализированного сетевого протоко- ла обмена сообщениями QNET. Уже существенно позже написания ос- новного текста данной статьи выяви- лась принципиальная особенность использования этого протокола, ко- торая крайне важна для систем ре- ального времени. Речь идёт о насле- довании приоритетов и инверсии приоритетов. Детальное рассмотре- ние проблемы можно найти в моей статье «Инверсия приоритетов и ре- альное время» [1]. Дело в том, что в многомашинных архитектурах, связанных на основе стандартных транспортных протоко- лов (TCP/IP), каждый процессса- теллит на удалённом хосте выполня- ется на своём уровне приоритета, за- данном при его запуске. А это зна- чит, что нет никакого механизма, препятствующего возникновению инверсии приоритетов на хосте, в результате чего может нарушиться строгая последовательность диспет- черизации процессов. В системах для ответственных применений это может иметь критические последст- вия. В описываемой же системе на основе сообщений QNET сохраняет- ся свойственное QNX наследование приоритетов, даже если процессы клиента и сервера физически разде- лены между хостами. В результате вся сеть процессов, выполняющихся в составе кластерной задачи, ведёт себя как единое целое («дышит»), повышая или понижая свои приори- теты синхронно с приоритетом за- прашивающей задачи (в описанном проекте это master , но и этот процесс может работать, обслуживая запросы более высокого уровня, например GUIмодуля). Как следствие, даже в многомашинной системе не возни- кают условия для инверсии приори- тетов, что обеспечивает высокую надёжность функционирования всей системы. Конечно, можно реализовать некую подобную систему наследования при- оритетов и в «прикладном» сетевом слое над транспортным механизмом TCP/IP, передавая информацию о приоритете выполнения запроса в его теле. Однако такая реализация сама по себе сложна и громоздка не менее чем реализация собственно кла- стерного взаимодействия. В описан- ном же проекте это является встроен- ным исходным свойством механизмов QNET. ● Л ИТЕРАТУРА 1. Практика работы с QNX/ Д. Алексеев, Е. Видревич, А. Волков и др. М.: Ком- Бук, 2004. Автор — сотрудник ООО «Лот» E-mail: olej@front.ru 62 СТА 3/2004 П Р О Г РАММНО Е ОБ Е С П Е Ч Е НИ Е / СИС Т ЕМЫ Р Е АЛ Ь НО ГО В Р ЕМЕ НИ www.cta.ru Рис. 4. Результаты выполнения задач на одном и двух процессорах соответственно, для случая кодирования ключом длиной 2 байта Рис. 5. Результаты выполнения задач на одном и двух процессорах соответственно, для случая кодирования ключом длиной 3 байта
Made with FlippingBook
RkJQdWJsaXNoZXIy MTQ4NjUy