Мультипроцессорные компьютеры



Мы поможем в написании ваших работ!


Мы поможем в написании ваших работ!



Мы поможем в написании ваших работ!


ЗНАЕТЕ ЛИ ВЫ?

Мультипроцессорные компьютеры



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

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

Основное достоинство мультипроцессора — его высокая производительность, которая достигается за счет параллельной работы нескольких процессоров. Так как при наличии общей памяти взаимодействие процессоров происходит очень быст­ро, мультипроцессоры могут эффективно выполнять даже приложения с высокой степенью связи по данным.

Еще одним важным свойством мультипроцессорных систем является отказоус­тойчивость, то есть способность к продолжению работы при отказах некоторых элементов, например процессоров или блоков памяти. При этом производитель­ность, естественно, снижается, но не до нуля, как в обычных системах, в которых отсутствует избыточность.

Многомашинные системы

Многомашинная система — это вычислительный комплекс, включающий в себя не­сколько компьютеров (каждый из которых работает под управлением собственной операционной системы), а также программные и аппаратные средства связи ком­пьютеров, которые обеспечивают работу всех компьютеров комплекса как единого целого.

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

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

Вычислительные сети

В вычислительных сетях программные и аппаратные связи являются еще более слабыми, а автономность обрабатывающих блоков проявляется в наибольшей сте­пени — основными элементами сети являются стандартные компьютеры, не имею­щие ни общих блоков памяти, ни общих периферийных устройств. Связь между компьютерами осуществляется с помощью специальных периферийных устройств — сетевых адаптеров, соединенных относительно протяженными каналами связи. Каждый компьютер работает под управлением собственной операционной систе­мы, а какая-либо «общая» операционная система, распределяющая работу между компьютерами сети, отсутствует. Взаимодействие между компьютерами сети про­исходит за счет передачи сообщений через сетевые адаптеры и каналы связи. С помощью этих сообщений один компьютер обычно запрашивает доступ к ло­кальным ресурсам другого компьютера. Такими ресурсами могут быть как данные, хранящиеся на диске, так и разнообразные периферийные устройства — принтеры, модемы, факс-аппараты и т. д. Разделение локальных ресурсов каждого компьюте­ра между всеми пользователями сети — основная цель создания вычислительной сети.

Каким же образом сказывается на пользователе тот факт, что его компьютер подключен к сети? Прежде всего, он может пользоваться не только файлами, дис­ками, принтерами и другими ресурсами своего компьютера, но и аналогичными ресурсами других компьютеров, подключенных к той же сети. Правда, для этого недостаточно снабдить компьютеры сетевыми адаптерами и соединить их кабель­ной системой. Необходимы еще некоторые добавления к операционным системам этих компьютеров. На тех компьютерах, ресурсы которых должны быть доступны всем пользователям сети, необходимо добавить модули, которые постоянно будут находиться в режиме ожидания запросов, поступающих по сети от других компь­ютеров. Обычно такие модули называются программными серверами (sewer), так как их главная задача — обслуживать (serve) запросы на доступ к ресурсам своего компьютера. На компьютерах, пользователи которых хотят получать доступ к ре­сурсам других компьютеров, также нужно добавить к операционной системе неко­торые специальные программные модули, которые должны вырабатывать запросы на доступ к удаленным ресурсам и передавать их по сети на нужный компьютер. Такие модули обычно называют программными клиентами (client). Собственно же сетевые адаптеры и каналы связи решают в сети достаточно простую задачу — они передают сообщения с запросами и ответами от одного компьютера к другому, а основную работу по организации совместного использования ресурсов выполняют клиентские и серверные части операционных систем.

JIapa модулей «клиент - сервер» обеспечивает совместный доступ пользовате­лей к определенному типу ресурсов, например к файлам. В этом случае говорят, что пользователь имеет дело с файловой службой (service). Обычно сетевая опера­ционная система поддерживает несколько видов сетевых служб для своих пользова­телей - файловую службу, службу печати, службу электронной почты, службу Удаленного доступа и т. п.

ПРИМЕЧАНИЕ В технической литературе англоязычный термин «service» обычно переводится как «служба», «сервис» или «услуга». Часто эти термины используются как синонимы. В то же время некоторые специалисты различают термин «служба», с одной стороны, и термины «сервис» и «услуга», с другой. Под «службой» понимается сетевой компонент, который реализует некоторый набор услуг, а «сервисом» называют описание того набора услуг, который предоставляется данной службой. Таким образом, сервис — это интерфейс между потребителем услуг и поставщиком услуг (службой). Далее будет использоваться термин «служба» во всех случаях, когда различие в значении этих терминов не носит принципиального характера

Термины «клиент» и «сервер» используются не только для обозначения про­граммных модулей, но и компьютеров, подключенных к сети. Если компьютер предоставляет свои ресурсы другим компьютерам сети, то он называется сервером, а если он их потребляет — клиентом. Иногда один и тот же компьютер может одновременно играть роли и сервера, и клиента.

Распределенные программы

 
 

Сетевые службы всегда представляют собой распределенные программы. Распре­деленная программа — это программа, которая состоит из нескольких взаимодей­ствующих частей (в приведенном на рис. 1.5 примере — из двух), причем каждая часть, как правило, выполняется на отдельном компьютере сети.

 

Рис. 1.5. Взаимодействие частей распределенного приложения

До сих пор речь шла о системных распределенных программах. Однако в сети могут выполняться и распределенные пользовательские программы — приложе­ния. Распределенное приложение также состоит из нескольких частей, каждая из которых выполняет какую-то определенную законченную работу по решению при­кладной задачи. Например, одна часть приложения, выполняющаяся на компьюте­ре пользователя, может поддерживать специализированный графический интерфейс, вторая — работать на мощном выделенном компьютере и заниматься статистичес­кой обработкой введенных пользователем данных, а третья — заносить полученные, результаты в базу данных на компьютере с установленной стандартной СУБД. Распределенные приложения в полной мере используют потенциальные возмож­ности распределенной обработки, предоставляемые вычислительной сетью, и по­этому часто называются сетевыми приложениями.

Следует подчеркнуть, что не всякое приложение, выполняемое в сети, является сетевым. Существует большое количество популярных приложений, которые не являются распределенными и целиком выполняются на одном компьютере сети. Тем не менее и такие приложения могут использовать преимущества сети за счет встроенных в операционную систему сетевых служб. Значительная часть истории локальных сетей связана как раз с использованием таких нераспределенных при-, ложений. Рассмотрим, например, как происходила работа пользователя с извест­ной в свое время СУБД dBase. Обычно файлы базы данных, с которыми работали все пользователи сети, располагались на файловом сервере. Сама же СУБД храни­лась на каждом клиентском компьютере в виде единого программного модуля.

Программа dBase была рассчитана на обработку только локальных данных, то есть данных, расположенных на том же компьютере, что и сама программа. Пользова­тель запускал dBase на своем компьютере, и она искала данные на локальном дис­ке, совершенно не принимая во внимание существование сети. Чтобы обрабатывать с помощью dBase данные на удаленном компьютере, пользователь обращался к услугам файловой службы, которая доставляла данные с сервера на клиентский компьютер и создавала для СУБД эффект их локального хранения.

Большинство приложений, используемых в локальных сетях в середине 80-х годов, являлись обычными, нераспределенными приложениями. И это понятно — они были написаны для автономных компьютеров, а потом просто были перене­сены в сетевую среду. Создание же распределенных приложений, хотя и сулило много преимуществ (уменьшение сетевого трафика, специализация компьютеров), оказалось делом совсем не простым. Нужно было решать множество дополнитель­ных проблем — на сколько частей разбить приложение, какие функции возложить на каждую часть, как организовать взаимодействие этих частей, чтобы в случае сбоев и отказов оставшиеся части корректно завершали работу, и т. д., и т. п. Поэто­му до сих пор только небольшая часть приложений является распределенными, хотя очевидно, что именно за этим классом приложений будущее, так как они в полной мере могут использовать потенциальные возможности сетей по распарал­леливанию вычислений.



Последнее изменение этой страницы: 2016-06-29; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.236.253.192 (0.015 с.)