- •Ос как система управления ресурсами
- •Второй период (1955 - 1965)
- •Третий период (1965 - 1980)
- •Четвертый период (1980 - настоящее время)
- •Особенности аппаратных платформ
- •Особенности областей использования
- •Особенности методов построения
- •Одноранговые сетевые ос и ос с выделенными серверами
- •Ос для рабочих групп и ос для сетей масштаба предприятия
- •Состояние процессов
- •Контекст и дескриптор процесса
- •Алгоритмы планирования процессов
- •Вытесняющие и невытесняющие алгоритмы планирования
- •Критическая секция
- •V(s) : переменная s увеличивается на 1 одним неделимым действием; выборка, инкремент и запоминание не могут быть прерваны, и к s нет доступа другим процессам во время выполнения этой операции.
- •Управление памятью
- •Типы адресов
- •Распределение памяти разделами переменной величины
- •Перемещаемые разделы
- •Страничное распределение
- •Сегментное распределение
- •Странично-сегментное распределение
- •Свопинг
- •Иерархия запоминающих устройств. Принцип кэширования данных
- •Средства аппаратной поддержки управления памятью и многозадачной среды в микропроцессорах Intel 80386, 80486 и Pentium
- •Средства поддержки сегментации памяти
- •Сегментно-страничный механизм
- •Средства вызова подпрограмм и задач
- •Организация программного обеспечения ввода-вывода
- •Обработка прерываний
- •Драйверы устройств
- •Независимый от устройств слой операционной системы
- •Пользовательский слой программного обеспечения
- •Файловая система
- •Имена файлов
- •Типы файлов
- •Логическая организация файла
- •Физическая организация и адрес файла
- •Права доступа к файлу
- •Кэширование диска
- •Общая модель файловой системы
- •Отображаемые в память файлы
- •Современные архитектуры файловых систем
- •Способы адресации
- •Блокирующие и неблокирующие примитивы
- •Буферизуемые и небуферизуемые примитивы
- •Надежные и ненадежные примитивы
- •Базовые операции rpc
- •Этапы выполнения rpc
- •Динамическое связывание
- •Семантика rpc в случае отказов
- •Синхронизация в распределенных системах
- •Алгоритм синхронизации логических часов
- •Алгоритмы взаимного исключения
- •Централизованный алгоритм
- •Распределенный алгоритм
- •Алгоритм Token Ring
- •Неделимые транзакции
- •Различные способы организации вычислительного процесса с использованием нитей
- •Вопросы реализации нитей
- •Нити и rpc
- •Распределенные файловые системы
- •Интерфейс файлового сервиса
- •Интерфейс сервиса каталогов
- •Семантика разделения файлов
- •Вопросы разработки структуры файловой системы
- •Кэширование
- •Репликация
- •Гетерогенность
- •Основные подходы к реализации взаимодействия сетей
- •Мультиплексирование стеков протоколов
- •Использование магистрального протокола
- •Вопросы реализации
- •Сравнение вариантов организации взаимодействия сетей
Мультиплексирование стеков протоколов
Вторым использующимся в настоящее время на практике подходом является использование в рабочих станциях технологии мультиплексирования различных стеков протоколов.
Рис. 3.15. Мультиплексирование стеков
При мультиплексировании стеков протоколов на один из двух взаимодействующих компьютеров с различными стеками протоколов помещается коммуникационный стек другого компьютера. На рисунке 3.15 приведен пример взаимодействия клиентского компьютера сети 1 с сервером своей сети и сервером сети 2, работающей со стеком протоколов, полностью отличающимся от стека сети 1. В клиентском компьютере реализованы оба стека. Для того, чтобы запрос от прикладного процесса был правильно обработан и направлен через соответствующий стек, в компьютер необходимо добавить специальный программный элемент - мультиплексор протоколов. Мультиплексор должен уметь определять, к какой сети направляется запрос клиента. Для этого может использоваться служба имен сети, в которой отмечается принадлежность того или иного ресурса определенной сети с соответствующим стеком протоколов.
При использовании технологии мультиплексирования структура коммуникационных средств операционной системы может быть и более сложной. В общем случае на каждом уровне вместо одного протокола появляется целый набор протоколов, а мультиплексоров может быть несколько, выполняющих коммутацию между протоколами разных уровней (рисунок 3.16). Например, рабочая станция может получить доступ к сетям с протоколами NetBIOS, IP, IPX через один сетевой адаптер. Аналогично, сервер, поддерживающий прикладные протоколы NCP, SMB и NFS может без проблем выполнять запросы рабочих станций сетей NetWare, Windows NT и Sun одновременно.
Рис. 3.16. Мультиплексирование протоколов
Предпосылкой для развития технологии мультиплексирования стеков протоколов стало строгое определения протоколов и интерфейсов различных уровней и их открытое описание, так, чтобы фирма при реализации "чужого" протокола или интерфейса могла быть уверена, что ее продукт будет правильно взаимодействовать с продуктами других фирм по данному протоколу.
Использование магистрального протокола
Хорошим решением был бы переход на единый стек протоколов, но вряд ли эта перспектива осуществится в ближайшем будущем. Попытка введения единого стека коммуникационных протоколов сделана в 1990 году правительством США, которое обнародовало программу GOSIP - Government OSI Profile, в соответствии с которой стек протоколов OSI должен стать общим знаменателем для всех сетей, устанавливаемых в правительственных организациях США. Но, понимая бесполезность силовых мер, программа GOSIP не ставит задачу немедленного перехода на стек OSI, а принуждает пока к использованию этого стека в качестве "второго языка" правительственных сетей, наряду с родным, первым.
Вопросы реализации
При объединении сетей различных типов в общем случае необходимо обеспечить двухстороннее взаимодействие сетей, то есть решить две задачи (рисунок 3.17):
1. Обеспечение доступа клиентам сети A к ресурсам и сервисам серверов сети B.
2. Обеспечение доступа клиентам сети B к ресурсам и сервисам сети A.
Рис. 3.17. Варианты сетевого взаимодействия
Эти задачи независимы и их можно решать отдельно. Прежде всего нужно понять, необходимо ли полное решение или достаточно и частичного, то есть нужно ли, чтобы пользователи, например, UNIX-машин имели доступ к ресурсам серверов сети NetWare, а пользователи персональных машин имели доступ к ресурсам UNIX-хостов, или же достаточно обеспечить доступ к ресурсам другой сети только одному виду пользователей.
Кроме того, каждую из этих задач можно в свою очередь разделить на части. В сети обычно имеются различные виды разделяемых ресурсов, и с каждым типом ресурсов могут предоставляться различные виды сервиса. Например, в UNIX-сетях файлы являются разделяемым ресурсом, и с ними связаны два вида сервиса - перемещение файлов между машинами по протоколу FTP и монтирование удаленной файловой системы по протоколу NFS. Поэтому при объединении сетей можно предложить пользователям набор средств, каждое из которых позволяет воспользоваться одним каким-либо сервисом чужой сети. Естественно, возможно объединение всех функций в рамках одного продукта.
При объединении сетей достаточно иметь средства взаимодействия сетей только в одной из сетей. Например, фирма Novell разработала ряд программных продуктов для связи с UNIX-сетями, которые достаточно включить в программное обеспечение сети NetWare, чтобы решить обе указанные задачи взаимодействия сетей. При этом серверной части UNIX клиент NetWare представляется UNIX-клиентом, а клиент UNIX обращается с файлами и принтерами, управляемыми сервером NetWare, как с UNIX-файлами и UNIX-принтерами. Возможен перенос средств взаимодействия сетей и на сторону UNIX-сети. Тогда аналогичные функции будут выполнять программные средства на UNIX-машине.
В то время, как расположение программных средств, реализующих шлюз, уже было определено - они должны располагаться на компьютере, занимающем промежуточное положение между двумя взаимодействующими машинами, вопрос о размещении дополнительных стеков протоколов остался открытым. Заметим также, что шлюз реализует взаимодействие "многие-ко-многим" (все клиенты могут обращаться ко всем серверам).
Рассмотрим все возможные варианты размещения программных средств, реализующих взаимодействие двух сетей, которые основаны на мультиплексировании протоколов. Введем некоторые обозначения: С - сервер, К - клиент, ( - дополнительный протокол или стек протоколов.
На рисунке 3.18 показаны оба возможных варианта однонаправленного взаимодействия А®В: а) путем добавления нового стека к клиентам сети А, либо б) путем присоединения "добавки" к серверам сети В.
В первом случае, когда средства мультиплексирования располагаются на клиентских частях, только клиенты, снабженные средствами мультиплексирования протоколов, могут обращаться к серверам сети В, при этом они могут обращаться ко всем серверам сети В. Во втором случае, когда набор стеков расположен на каком-либо сервере сети В, данный сервер может обслуживать всех клиентов сети А. Очевидно, что серверы сети В без средств мультиплексирования не могут быть использованы клиентами сети А.
Рис. 3.18. Варианты размещения программных средств (С - cервер, К - клиент, ( - средства сетевого взаимодействия)
Примером "добавки", модифицирующей клиентскую часть, может служить популярное программное средство фирмы Novell LAN Workplace, которое превращает клиента NetWare в клиента UNIX. Аналогичным примером для модификации сервера могут служить другие продукты фирмы Novell: NetWare for UNIX, который делает возможным использование услуг сервера UNIX клиентами NetWare, или Novell NetWare for VMS, который служит для тех же целей в сети VMS.
Взаимодействие А ( В реализуется симметрично.
Если же требуется реализовать взаимодействие в обе стороны одновременно, то для этого существует четыре возможных варианта, показанных на рисунке 3.19. Каждый вариант имеет свои особенности с точки зрения возможностей связи клиентов с серверами:
Средства обеспечения взаимодействия расположены только на клиентских частях обеих сетей. Для тех и только тех клиентов обеих сетей, которые оснащены "добавками", гарантируется возможность связи со всеми серверами из "чужой" сети.
Все средства обеспечения взаимодействия расположены на стороне сети А. Все клиенты сети В могут обращаться к серверам сети А (не ко всем, а только к тем, которые имеют сетевую "добавку"). Часть клиентов сети А, которые обозначены как К+(, могут обращаться ко всем серверам сети В.
Средства межсетевого взаимодействия расположены только на серверных частях обеих сетей. Всем клиентам обеих сетей гарантируется возможность работы с серверами "чужих" сетей, но не со всеми, а только с серверами, обладающими сетевыми средствами мультиплексирования протоколов.
Все средства межсетевого взаимодействия расположены на стороне В. Двусторонний характер взаимодействия обеспечивается модификацией и клиентских, и серверных частей сети В. Все клиенты сети А могут обращаться за сервисом к серверам сети В, обозначенным как С+(, а все серверы сети А могут обслуживать клиентов сети В, обозначенных как К+(.
Рис. 3.19. Варианты размещения программных средств при двустороннем взаимодействии (С - cервер, К - клиент, ( - средства сетевого взаимодействия)
Очевидно, что наличие программных продуктов для каждого из рассмотренных вариантов сильно зависит от конкретной пары операционных систем. Для некоторых пар может вовсе не найтись продуктов межсетевого взаимодействия, а для некоторых можно выбирать из нескольких вариантов. Рассмотрим в качестве примера набор программных продуктов, реализующих взаимодействие Windows NT и NetWare. В ОС Windows NT и в серверной части (Windows NT Server), и в клиентских частях (Windows NT Workstation) предусмотрены встроенные средства мультиплексирования нескольких протоколов, в том числе и стека IPX/SPX. Следовательно эта операционная система может поддерживать двустороннее взаимодействие (по варианту 2) с NetWare без каких-либо дополнительных программных средств. Аналогичным образом реализуется взаимодействие сетей Windows NT с UNIX-сетями.