logo
Компьютерные коммуникации и сети

Компьютерные сети - частный случай распределенных вычислительных систем

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

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

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

Рис. 2.7 Схема мультипроцессорной системы

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

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

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

Кластеры

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

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

Кластеры применяют для повышения надежности и производительности вычислительной системы. Надежность повышается за счет того, что при отказе одного из узлов кластера вычислительная нагрузка (или часть ее) переносится на другой узел. Для выполнения этой операции в кластере используется два типа связей между узлами: межпроцессорные связи и связи за счет разделяемых дисков.

Рис. 2.8 Схема кластера

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

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

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

Совместный доступ к дискам также может осуществляться различными способами. Наиболее популярными вариантами является применение интерфейса SCSI и технологии Fibre Channel, тенденция перехода на стандартные технологии локальных сетей в этой области пока выражена не так отчетливо, как в области межпроцессорных связей, но она тоже имеется.

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

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

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

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

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

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

Хронологическая последовательность важнейших событий в истории развития компьютерных сетей

Первые ламповые компьютеры

Начало 40-х

Первые компьютеры на полупроводниковых схемах (транзисторах)

Середина 50-х

Первые компьютеры на интегральных схемах. Первые мультипрограммные ОС

Середина 60-х

Первые глобальные связи компьютеров

Конец 60-х

Начало передач по телефонным сетям голоса в цифровой форме

Конец 60-х

Появление больших интегральных схем. Первые мини-компьютеры

Начало 70-х

Первые нестандартные локальные сети

Начало 70-х

Создание сетевой архитектуры IBM SNA

1974

Создание технологии Х.25

1974

Появление персональных компьютеров

Начало 80-х

Создание Internet в современном виде. Установка на всех узлах стека TCP/IP

Начало 80-х

Появление стандартных технологий локальных сетей

Ethernet – 1980

Token Ring – 1985

FDDI – 1989

Начало коммерческого использования Internet

Конец 80-х

Изобретение Web

1991