Процесс соединения или переключения вычислительных систем в том числе компьютеров
Частью программного обеспечения, наиболее тесно взаимодействующей с аппаратной частью компьютера, является системное программное обеспечение и, прежде всего операционная система.
Операционная система играет роль посредника между пользователем, программами и оборудованием компьютера. Она обеспечивает возможность запуска программ, поддерживает работоспособность устройств, предоставляет средства проверки и настройки различных компонентов. Чем гибче и многофункциональнее операционная система, тем больше возможностей она предоставляет, тем удобнее работать с компьютером.
Операционная система (ОС) – это комплекс (набор) программ, который обеспечивает взаимодействие всех устройств ЭВМ и позволяет пользователю осуществлять общее управление ЭВМ.
Главное назначение ОС – управление ресурсами, а главные ресурсы, которыми она управляет, – это аппаратура компьютера. ОС управляет вычислительным процессом и информационным обменом между процессором, памятью, внешними устройствами.
Поскольку все устройства компьютера работают одновременно, ОС обеспечивает разделение ресурсов, предотвращая тем самым опасность возникновения конфликтных ситуаций между компонентами вычислительной системы, способных привести к сбою в работе, потере или искажении информации.
ОС реализует много различных функций, в том числе:
- создает рабочую среду и поддерживает пользовательский интерфейс;
- обеспечивает выполнение команд пользователя и программных инструкций;
- управляет аппаратными средствами компьютера;
- обеспечивает разделение аппаратных ресурсов между программами;
- планирует доступ пользователей к общим ресурсам;
- обеспечивает выполнение операций ввода–вывода, хранения информации и управление файловой системой;
- осуществляет восстановление информации в случае аппаратных сбоев и программных ошибок.
Развитие операционных систем всегда следовало за развитием аппаратуры.
Операционная система - это комплекс взаимосвязанных системных программ, назначение которого - организовать взаимодействие пользователя с компьютером и выполнение всех других программ.
Операционная система выполняет роль связующего звена между аппаратурой компьютера, с одной стороны, и выполняемыми программами, а также пользователем, с другой стороны.
Операционную систему составляют:
- набор утилит, необходимых для эксплуатации операционной системы.
Операционная система обычно хранится во внешней памяти компьютера - на диске. При включении компьютера она считывается с дисковой памяти и размещается в ОЗУ. Этот процесс называется загрузкой операционной системы.
В функции операционной системы входит:
- осуществление диалога с пользователем;
- ввод-вывод и управление данными;
- планирование и организация процесса обработки программ;
- распределение ресурсов (оперативной памяти и кэша, процессора, внешних устройств);
- запуск программ на выполнение;
- всевозможные вспомогательные операции обслуживания;
- передача информации между различными внутренними устройствами;
- программная поддержка работы периферийных устройств (дисплея, клавиатуры, принтера и др.).
Операционную систему можно назвать программным продолжением устройства управления компьютера. Операционная система скрывает от пользователя сложные ненужные подробности взаимодействия с аппаратурой, образуя прослойку между ними. В результате этого люди освобождаются от очень трудоёмкой работы по организации взаимодействия с аппаратурой компьютера.
Требования к современным операционным системам:
- совместимость – ОС должна включать средства для выполнения приложений, подготовленных для других ОС;
- переносимость – обеспечение возможности переноса ОС с одной аппаратной платформы на другую;
- надежность и отказоустойчивость – предполагает защиту ОС от внутренних и внешних ошибок, сбоев отказов;
- безопасность – ОС должна содержать средства защиты ресурсов одних пользователей от других;
- расширяемость – ОС должна обеспечивать удобство внесения последующих изменений и дополнений;
- производительность – система должна обладать достаточным быстродействием.
Классификация ОС
По числу одновременно выполняемых задач выделяют ОС:
- однозадачные (MS DOS, ранние версии PS DOS);
Многозадачность бывает:
- невытесняющая (Net Ware, Windows 95/98), когда активный процесс по окончании сам передает управление ОС для выбора из очереди другого процесса;
- вытесняющая (Windows NT, OS/2, UNIX) - решение о переключении процессора с одного процесса на другой принимает ОС.
По числу одновременно работающих пользователей ОС делят:
- однопользовательские (MS DOS, Windows 3х, ранние версии OS/2)
- многопользовательские (UNIX, Windows 2000, NT, XP, Vista). В многопользовательских системах присутствуют средства защиты информации пользователей от несанкционированного доступа.
В настоящий момент около 90% компьютеров используют ОС Windows.
Различают четыре основных класса операционных систем:
1. Однопользовательские однозадачные, которые поддерживают одну клавиатуру и могут работать только с одной (в данный момент) задачей;
2. Однопользовательские однозадачные с фоновой печатью, которые позволяют помимо основной задачи запускать одну дополнительную задачу, ориентированную, как правило, на вывод информации на печать. Это ускоряет работу при выдаче больших объёмов информации на печать;
3. Однопользовательские многозадачные, которые обеспечивают одному пользователю параллельную обработку нескольких задач. Например, к одному компьютеру можно подключить несколько принтеров, каждый из которых будет работать на "свою" задачу;
4. Многопользовательские многозадачные, позволяющие на одном компьютере запускать несколько задач нескольким пользователям. Эти ОС очень сложны и требуют значительных машинных ресурсов.
Операционная система для персонального компьютера, ориентированного на профессиональное применение, должна содержать следующие основные компоненты:
- программы управления вводом/выводом;
- программы, управляющие файловой системой и планирующие задания для компьютера;
- процессор командного языка, который принимает, анализирует и выполняет команды, адресованные операционной системе.
Каждая операционная система имеет свой командный язык, который позволяет пользователю выполнять те или иные действия:
- обращаться к каталогу;
- выполнять разметку внешних носителей;
Анализ и исполнение команд пользователя, включая загрузку готовых программ из файлов в оперативную память и их запуск, осуществляет командный процессор операционной системы.
Для управления внешними устройствами компьютера используются специальные системные программы — драйверы. Драйверы стандартных устройств образуют в совокупности базовую систему ввода-вывода (BIOS), которая обычно заносится в постоянное ЗУ компьютера.
Операционная система: назначение и состав
На IBM-совместимых персональных компьютерах используются операционные системы корпорации Microsoft Windows 9х/МЕ, свободно распространяемая операционная система Linux. На персональных компьютерах фирмы Apple используются различные версии операционной системы Mac OS. На рабочих станциях и серверах наибольшее распространение получили операционные системы Windows NT/2000/XP и UNIX.
Операционные системы разные, но их назначение и функции одинаковые. Операционная система является базовой и необходимой составляющей программного обеспечения компьютера, без нее компьютер не может работать в принципе.
Операционная система обеспечивает совместное функционирование всех устройств компьютера и предоставляет пользователю доступ к его ресурсам.
Современные операционные системы имеют сложную структуру, каждый элемент которой выполняет определенные функции по управлению компьютером.
Управление файловой системой. Процесс работы компьютера в определенном смысле сводится к обмену файлами между устройствами. В операционной системе имеются программные модули, управляющие файловой системой.
Командный процессор. В состав операционной системы входит специальная программа - командный процессор, - которая запрашивает у пользователя команды и выполняет их.
Пользователь может дать команду запуска программы, выполнения какой-либо операции над файлами (копирование, удаление, переименование), вывода документа на печать и так далее. Операционная система должна эту команду выполнить.
Драйверы устройств. К магистрали компьютера подключаются различные устройства (дисководы, монитор, клавиатура, мышь, принтер и др.). Каждое устройство выполняет определенную функцию (ввод информации, хранение информации, вывод информации), при этом техническая реализация устройств существенно различается.
В состав операционной системы входят драйверы устройств, специальные программы, которые обеспечивают управление работой устройств и согласование информационного обмена с другими устройствами, а также позволяют производить настройку некоторых параметров устройств. Каждому устройству соответствует свой драйвер.
Технология "Plug and Play" (подключи и играй) позволяет автоматизировать подключение к компьютеру новых устройств и обеспечивает их конфигурирование. В процессе установки Windows определяет тип и конкретную модель установленного устройства и подключает необходимый для его функционирования драйвер. При включении компьютера производится загрузка драйверов в оперативную память.
Пользователь имеет возможность вручную установить или переустановить драйверы.
Графический интерфейс. Для упрощения работы пользователя в состав современных операционных систем, и в частности в состав Windows, входят программные модули, создающие графический пользовательский интерфейс. В операционных системах с графическим интерфейсом пользователь может вводить команды с помощью мыши, тогда как в режиме командной строки необходимо вводить команды с помощью клавиатуры.
Сервисные программы. В состав операционной системы входят также сервисные программы, или утилиты. Такие программы позволяют обслуживать диски (проверять, сжимать, дефрагментировать и так далее), выполнять операции с файлами (архивировать и так далее), работать в компьютерных сетях и так далее.
Справочная система. Для удобства пользователя в состав операционной системы обычно входит также справочная система. Справочная система позволяет оперативно получить необходимую информацию как о функционировании операционной системы в целом, так и о работе ее отдельных модулей.
Словарь кроссвордиста абразия
абстракция
авария
автогамия
автоклав
Плотно закрывающийся сосуд для проведения физико-химических процесс ов при нагреве и повышенном давлении
автоматизация
Технические и другие мероприятия, дающие возможность вести производственные процесс ы без непосредственного участия человека.
Применение технических средств, экономико-математических методов и систем управления, освобождающих человека частично или полностью от непосредственного участия в процесс ах получения, преобразования, передачи и использования энергии, материалов или информации
автоматика
Совокупность методов и средств, исключающих участие человека при осуществлении каких-либо процесс ов.
авторадиографирование
автотипия
агенезия
Врождённое отсутствие какой-либо части тела вследствие нарушения процесс а закладки и развития тканей органа.
Агломерация
Параллельной машиной называют, грубо говоря, набор процессоров, памяти и некоторые методы коммуникации между ними. Это может быть двухядерный процессор в вашем (уже не новом) ноутбуке, многопроцессорный сервер или, например, кластер (суперкомпьютер). Вы можете ничего не знать о таких компьютерах, но вы точно знаете, зачем их строят: скорость, скорость и еще раз скорость. Однако скорость — не единственное преимущество.
После выполнения не самой тривиальной задачи по созданию такого аппарата, дизайнерам и разработчикам приходится еще думать о том, его заставить работать. Ведь приемы и алгоритмы, применяемые для старых, однопроцессорных однопотоковых машин, как правило, не подходят.
Что самое удивительное, в университетах пока не спешат переводить программы обучения в русло параллельных вычислений! При этом сегодня нужно постараться, чтобы найти компьютер с одним ядром. В моем родном Carleton University курсы по параллельным вычислениям не входят в обязательную программу Bachelor of Computer Science, и доступны лишь для тех, кто прошел основные курсы первых трех лет. На том же уровне находятся курсы по распределенным вычислениям, и некоторых могут сбить с толку.
В чем разница? В параллельных вычислениях участвует оборудование, находящееся, как правило, в одном физическом месте, они тесно соединены между собой и все параметры их работы известны программисту. В распределенных вычислениях нет тесной постоянной связи между узлами, соответственно названию, они распределены по некоторой территории и параметры работы этой системы динамичны и не всегда известны.
Классические алгоритмы, которым обучают последние пол века, уже не подойдут для параллельных систем. Как можно догадаться, алгоритм для параллельной машины называют параллельным алгоритмом. Он зачастую сильно зависит от архитектуры конкретной машины и не так универсален, как его классический предок.
Вы можете спросить: а зачем нужно было придумывать новую структуру, потом корпеть над новыми алгоритмами, и нельзя ли было продолжать ускорять обычные компьютеры? Во-первых, пока нет возможности сделать один супер-быстрый процессор, который можно было бы сравнить с современными параллельными супер-компьютерами; а если и есть, то ресурсов на это уйдет уйма. К тому же, многие задачи хорошо решаются паралелльными машинами в первую очередь благодаря такой структуре! Расчет сложных хаотических систем вроде погоды, симуляции взаимодействий элементарных частиц в физике, моделирование на нано-уровне (да, да, нанотехнологии!), data mining (про который у нас на сайте есть блог), криптография… список можно долго продолжать.
Для программиста, как конечного “пользователя” параллельной машины, возможны два варианта: параллельность ему может быть “видна”, а может и нет. В первом случае программист пишет программы с расчетом на архитектуру компьютера, берет в расчет параметры этой конкретной машины. Во втором программист может и не знать, что перед ним не-классический компьютер, а все его классические методы умудряются работать благодаря продуманности самой системы.
Вот пример многоядерного процессора — любимый многими SUN UltraSPARC T1/T2:
8 ядер, каждое поддерживает 4 (у Т1) или 8 (у Т2) аппаратных потоков (thread), что простым умножением дает нам 32/64 (соответственно) потоков в процессоре. Теоретически это означает, что такой процессор может выполнять 32/64 задачи однопотокового процессора за то же время. Но, конечно же, много ресурсов тратится на переключение между потоками и прочую “внутреннюю кухню”.
А вот, например, знаменитые крутейшие графические юниты вроде nVidia GeForce 9600 GT, на борту которого 64 ядра.
Последние GPU имеют до тысячи ядер! О том, почему у графических юнитов так много ядер мы поговорим чуть позже. А сейчас посмотрите лучше на пример иерархии параллельности в суперкомпьютерах:
Понятно, что набрать кучу мощных компьютеров — не проблема. Проблема заставить их работать вместе, то есть соединить в быструю сеть. Часто в таких кластерах используют высокоскоростной свитч и все компьютеры просто соединяются в быструю локальную сеть. Вот такой, например, стоит в нашем университете:
256 ядер: 64 юнита, в каждом 4 ядра по 2.2 Ггц и по 8 гигабайт ОЗУ. Для соединения используется свитч Foundry SuperX и гигабитная сеть. ОС — Linux Rocks. Самым дорогим элементом часто является именно свитч: попробуйте найти быстрый свитч на 64 порта! Это пример одной из самых больших проблем параллельных компьютеров: скорость обмена информацией. Процессоры стали очень быстрыми, а память и шины все еще медленные. Не говоря уже о жестких дисках — по сравнению с процессорами они выглядят как орудия каменного века!
Классификация
Давайте наконец разберемся в типах паралельных машин. Они различаются по типу памяти — общая (shared) или распределенная (distributed), и по типу управления — SIMD и MIMD. Получается, четыре типа параллельных машин.
Общая память
Классический компьютер выглядит так:
И самый очевидный способ расширить эту схему с учетом нескольких процессоров таков:
Вместо одного процессора — несколько, памяти соответственно больше, но в целом — та же схема. Получается, все процессоры делят общую память и если процессору 2 нужна какая-то информация, над которой работает процессор 3, то он получит ее из общей памяти с той же скоростью.
Вот как выглядит построенный по такой схеме Quad Pentium:
Распределенная память
Как вы наверное и сами догадались, в этом случае у каждого процессора “своя” память (напомню, что речь идет не о внутренней памяти процессора).
Примером может служить описанный выше кластер: он по сути является кучей отдельных компьютеров, каждый из которых имеет свою память. В таком случае если процессору (или компьютеру) 2 нужна информация от компьютера 3, то это займет уже больше времени: нужно будет запросить информацию и передать ее (в случае кластера — по локальной сети). Топология сети будет влиять на скорость обмена информацией, поэтому были разработаны разные типы структур.
Самый простой вариант, который приходит на ум, это простой двумерный массив (mesh):
Похожей структурой обладает IBM Blue Gene, потомок знаменитого IBM Deep Blue, обыгравшего человека в шахматы. Похожей, потому что на самом деле Blue Gene это не куб, а тор — крайние элементы соединены:
Кстати, его назвали Gene, потому что он активно применяется в генетических исследованиях.
Другая интересная структура, которая должна была придти кому-то в голову, это любимое всеми дерево:
Так как глубина (или высота) бинарного дерева это logn, передача информации от двух наиболее удаленных узлов будет проходить расстояние 2*logn, что очень хорошо, но такая структура все равно используется не часто. Во-первых, чтобы разделить такую сеть на две изолированные подсети достаточно разрезать один провод (помните проблему min-cut?) В случае двумерного массива нужно разрезать sqrt(n) проводов! У куба посчитайте сами. А во-вторых, через корневой узел проходит слишком много трафика!
В 80е были популярны четырехмерные гиперкубы:
Это два трехмерных куба с соединенными соответственными вершинами. Строили кубы и еще большей размерности, однако сейчас почти не используются, в том числе и потому что это огромное количество проводов!
Вообще, дизайн сети для решения какой-то задачи — тема интересная. Вот, например, так называемая Omega Network:
С памятью разобрались, теперь об управлении.
SIMD vs. MIMD
SIMD — Singe Instruction stream, Multiple Data stream. Управляющий узел один, он отправляет инструкции всем остальным процессорам. Каждый процессор имеет свой набор данных для работы.
MIMD — Multiple Instruction stream, Multiple Data Stream. Каждый процессор имеет свой собственный управляющий юнит, каждый процессор может выполнять разные инструкции.
SIMD-системы обычно используются для конкретных задач, требующих, как правило, не столько гибкости и универсальности вычислительной машины, сколько самой вычислительной силы. Обработка медиа, научные исследования (те же симуляции и моделирование), или, например, трансформации Фурье гигантских матриц. Поэтому в графических юнитах такое бешенное количество ядер: это SIMD-системы, и по-настоящему “умный” процессор (такой, как в вашем компьютере) там как правило один: он управляет кучей простых и не-универсальных ядер.
Так как “управляющий” процессор отправляет одни и те же инструкции всем “рабочим” процессорам, программирование таких систем требует некоторой сноровки. Вот простой пример:
if (B == 0)
then C = A
else C = A/B
Начальное состоянии памяти процессоров такое:
Первая строчка выполнилась, данные считались, теперь запускается вторая строка: then
При этом второй и третий процессоры ничего не делают, потому что переменная B у них не подходит под условие. Соответственно, далее выполняется третья строка, и на этот раз “отдыхают” другие два процессора:
Примеры SIMD-машин это старые ILLiac IV, MPP, DAP, Connection Machine CM-1/2, современные векторные юниты, специфичные сопроцессоры и графические юниты вроде nVidia GPU.
MIMD-машины обладают более широким функционалом, поэтому в наших пользовательских компьютерах используются именно они. Если у вас хотя бы двухядерный процессор в лаптопе — вы счастливый обладатель MIMD-машины с общей памятью! MIMD распределенной памятью это суперкомпьютеры вроде IBM Blue Gene, о которых мы говорили выше, или кластеры.
Вот итог всей классификации:
На этом введение в тему можно считать завершенным. В следующий раз мы поговорим о том, как расчитываются скорости параллельных машин, напишем свою первую параллельную программу с использованием рекурсии, запустим ее в небольшом кластере и научимся анализировать ее скорость и ресурсоемкость.
Словарь кроссвордиста абразия
абстракция
авария
автогамия
автоклав
Плотно закрывающийся сосуд для проведения физико-химических процес сов при нагреве и повышенном давлении
автоматизация
Технические и другие мероприятия, дающие возможность вести производственные процес сы без непосредственного участия человека.
Применение технических средств, экономико-математических методов и систем управления, освобождающих человека частично или полностью от непосредственного участия в процес сах получения, преобразования, передачи и использования энергии, материалов или информации
автоматика
Совокупность методов и средств, исключающих участие человека при осуществлении каких-либо процес сов.
авторадиографирование
автотипия
агенезия
Врождённое отсутствие какой-либо части тела вследствие нарушения процес са закладки и развития тканей органа.
Агломерация
Вычислительные сети (ВС) появились давно. Еще на заре появления компьютеров существовали огромные системы, известные как системы разделения времени. Они позволяли использовать центральную ЭВМ с помощью удаленных терминалов. Такой терминал состоял из дисплея и клавиатуры. Внешне выглядел как обычный персональный компьютер, но не имел собственного процессорного блока. Пользуясь такими терминалами, сотни, а иногда тысячи сотрудников имели доступ к центральной ЭВМ.
Такой режим обеспечивался благодаря тому, что система разделения времени разбивала время работы центральной ЭВМ на короткие интервалы времени, распределяя их между пользователями. При этом создавалась иллюзия одновременного использования центральной ЭВМ многими сотрудниками.
В 70-х годах большие ЭВМ уступили место миникомпьютерным системам, использующим тот же режим разделения времени. Но технология развивалась, и с конца 70-х годов на рабочих местах появились персональные компьютеры. Однако, автономно работающие персональные компьютеры не дают непосредственного доступа к данным всей организации и не позволяют совместно использовать программы и оборудование.
С этого момента начинается современное развитие компьютерных сетей.
Вычислительной сетью называется система, состоящая из двух или более удаленных ЭВМ, соединенных с помощью специальной аппаратуры и взаимодействующих между собой по каналам передачи данных.
Самая простая сеть (network) состоит из нескольких персональных компьютеров, соединенных между собой сетевым кабелем (рисунок 1). При этом в каждом компьютере устанавливается специальная плата сетевого адаптера (NIC), осуществляющая связь между системной шиной компьютера и сетевым кабелем /1/.
Кроме этого, все компьютерные сети работают под управлением специальной сетевой операционной системы (NOS – Network Operation Sistem). Основное назначение компьютерных сетей – совместное использование ресурсов и осуществление интерактивной связи как внутри одной фирмы, так и за ее пределами (рисунок 2).
Рисунок 2 - Назначение вычислительной сети
Ресурсы – представляют собой данные (в том числе корпоративные базы данных и знаний), приложения (в том числе различные сетевые программы), а также периферийные устройства, такие как принтер, сканер, модем и т. д.
До объединения персонального компьютера в сеть каждый пользователь должен был иметь свой принтер, плоттер и другие периферийные устройства, а также на каждом из компьютеров должны были быть установлены одни и те же программные средства, используемые группой пользователей.
Другой привлекательной стороной сети является наличие программ электронной почты и планирования рабочего дня. Благодаря им сотрудники эффективно взаимодействуют между собой и партнерами по бизнесу, а планирование и корректировка деятельности всей компании осуществляется значительно проще. Использование компьютерных сетей позволяет:
а) повысить эффективность работы персонала фирмы;
б) снизить затраты за счет совместного использования данных, дорогостоящих периферийных устройств и программных средств (приложений).
Основными характеристиками вычислительной сети являются:
− операционные возможности сети;
Операционные возможности сети характеризуются такими условиями, как:
− предоставление доступа к прикладным программным средствам, БД,
− удаленный ввод заданий;
− передача файлов между узлами сети;
− доступы к удаленным файлам;
− выдача справок об информационных и программных ресурсах;
− распределенная обработка данных на нескольких ЭВМ и т. д.
Временные характеристики сети определяют продолжительность обслуживания запросов пользователей:
− среднее время доступа, которое зависит от размеров сети, удаленности пользователей, загрузки и пропускной способности каналов связи и т. д.;
− среднее время обслуживания.
Надежностные характеризуют надежность, как отдельных элементов сети, так и сеть в целом.
Связано это с тем, что данные обычно содержатся в больших по размерам файлах, и если передающий компьютер пошлет его целиком, то он надолго заполнит канал связи и «свяжет» работу всей сети, то есть будет препятствовать взаимодействию других участников сети. Кроме этого, возникновение ошибок при передаче крупных блоков вызовет большие затраты времени, чем на его повторную передачу.
Пакет – основная единица информации в компьютерных сетях. При разбиении данных на пакеты скорость их передачи возрастает на столько, что каждый компьютер сети получает возможность принимать и передавать данные практически одновременно с остальными ПК /2/.
При разбиении данных на пакеты сетевая операционная система к собственно передаваемым данным добавляет специальную добавляющую информацию:
- трейлер, в котором содержится информация для проверки безошибочности в передаче пакета. При обнаружении ошибки передача пакета должна повториться.
Способы организации передачи данных между персональными компьютерами.Передача данных между компьютерами и прочими устройствами происходит параллельно или последовательно.
Так большинство персональных компьютеров пользуется параллельным портом для работы с принтером. Термин «параллельно» означает, что данные передаются одновременно по нескольким проводам.
Чтобы послать байт данных по параллельному соединению, компьютер одновременно устанавливает весь байт на восьми проводах. Схему параллельного соединения можно иллюстрировать на рисунке 4.
Рисунок 4 – Параллельное соединение
Как видно из рисунка, параллельное соединение по восьми проводам позволяет передать байт данных одновременно.
Напротив, последовательное соединение подразумевает передачу данных по очереди, бит за битом. В сетях чаще всего используется именно такой способ работы, когда биты выстраиваются друг за другом и последовательно передаются (и принимаются тоже), что иллюстрирует рисунок 5.
Рисунок 5 – Последовательное соединение
Рисунок 6 – Методы сетевых соединений
При соединении по сетевым каналам используют три различных метода. Соединение бывает: симплексное, полудуплексное и дуплексное.
О симплексном соединении говорят, когда данные перемещаются только в одном направлении (рисунок 6). Полудуплексное соединение позволяет данным перемещаться в обоих направлениях, но в разное время.
И, наконец, дуплексное соединение позволяет данным перемещаться в обоих направлениях одновременно.
1.2 Архитектура "клиент-сервер"
Сеть ЭВМ(компьютерная сеть, или вычислительная сеть - ВС) - это совокупность компьютеров и терминалов, соединенных с помощью каналов связи в единую систему, удовлетворяющую требованиям распределенной обработки данных, совместного использования общих информационных и вычислительных ресурсов.
Часто возникает путаница между распределенными системами и сетями ЭВМ. Работая с распределенной системой, пользователь может не иметь ни малейшего представления на каких процессорах, где, с использованием конкретно каких физических ресурсов будет исполняться его программа. В сети, поскольку все машины там автономны, пользователь должен делать все явно. Основное различие между этими системами лежит в организации их программного обеспечения. И там и там происходит передача информации. В сети - пользователь, в распределенной системе - система.
Распределенные вычисления в компьютерных сетях основаны на архитектуре "клиент-сервер", ставшей доминирующим способом обработки данных. Термины "клиент" и "сервер" обозначают роли, которые играют различные компоненты в распределенной среде вычислений. Компоненты "клиент" и "сервер" не обязательно должны работать на разных машинах, хотя обычно это так и есть - клиент-приложение находится на рабочей станции пользователя, а сервер - на специальной выделенной машине.
Наиболее распространены следующие виды серверов: файл-серверы, серверы баз данных, серверы печати, серверы электронной почты, Web-сервер и другие. В последнее время интенсивно внедряются многофункциональные серверы приложений.
Клиент формирует запрос на сервер для выполнения соответствующих функций. Например, файл-сервер обеспечивает хранение данных общего поль-зования, организует доступ к ним и передает данные клиенту. Обработка данных распределяется в том или ином соотношении между сервером и клиентом. В последнее время долю обработки, приходящуюся на клиента, стали называть "толщиной" клиента.
Развитие архитектуры "клиент-сервер" происходит по спирали и в настоящее время намечается тенденция централизации вычислений, то есть замены "толстых" клиентов - рабочих станций на основе высокопроизводительных ПЭВМ, оснащенных мощным программным обеспечением для поддержки прикладных программ, мультимедийных средств, навигационного и графического интерфейса - "тонкими" клиентами. Характерный пример "тонкого" клиента - архитектура Sun Ray Hot Desk, предложенная компанией Sun Microsystems.
Рисунок 7 - Ранжирование клиентов по "толщине"
Архитектура Sun Ray Hot Desk предполагает использование настольных систем типа графических терминалов Sun Ray 1, имеющих минимум программных и аппаратных средств, но обладающих широкими возможностями работы с приложениями в соответствии с основной идеей "тонких" клиентов - вынести на сервер все, вплоть до виртуальных драйверов устройств, включая драйвер монитора. Историческими предшественниками "тонких" клиентов были алфавитно-цифровые терминалы, подключавшиеся к главным ЭВМ, или мэйнфреймам (mainframe) через специализированные интерфейсы или универсальные последовательные порты.
Мэйнфреймы - классический пример централизации вычислений, поскольку в едином комплексе были сконцентрированы все вычислительные ресурсы, хранение и обработка огромных массивов данных. Основные достоинства централизованной архитектуры - простота администрирования и защиты информации. Все терминалы были однотипными - следовательно, устройства на рабочих местах пользователей вели себя предсказуемо и в любой момент могли бы быть заменены, затраты на обслуживание терминалов и линий связи также легко прогнозировались.
Революция, вызванная появлением персональных компьютеров, сделала возможным иметь вычислительные и информационные ресурсы на рабочем столе пользователя и управлять ими по собственному разумению с помощью цветного оконного графического интерфейса.
Увеличение производительности ПК позволило перенести части системы (интерфейс с пользователем, прикладную логику) для выполнения на персональном компьютере, непосредственно на рабочем месте, а функции обработки данных оставить на центральном компьютере.
Система стала распределенной - одна часть функций выполняется на центральном компьютере, другая - на персональном, который связан с центральным посредством коммуникационной сети. Таким образом, появилась клиент-серверная модель взаимодействия компьютеров и программ в сети и на этой основе стали развиваться средства разработки приложений для реализации информационных систем.
Однако двухуровневая архитектура "клиент-сервер" (рисунок 7) имеет такие существенные недостатки, как сложность администрирования и низкая информационная безопасность, особенно заметные при сравнении ее с централизованной архитектурой мэйнфреймов (таблица 1).
Таблица 1 - Сравнение централизованной архитектуры мэйнфреймов и двухуровневой архитектуры «клиент-сервер».
Краткая характеристика некоторых операционных систем
ОС Linux – сетевая ОС, ядро которой разработано на базе ОС Unix. Linux распространяется в исходных кодах и применяется для создания серверов в вычислительных сетях и в Интернете.
ОС Unix – многопользовательская, многозадачная ОС, включает достаточно мощные средства защиты программ и файлов различных пользователей. ОС Unix является машинонезависимой, что обеспечивает высокую мобильность ОС и легкую переносимость прикладных программ на компьютеры различной архитектуры.
Важной особенностью и обширным набор сервисных программ, которые позволяют создать благоприятную операционную обстановку для пользователей – программистов (т.е. система особенно эффективна для специалистов – прикладных программистов).
Читайте также: