- •Сетевые операционные системы
- •Глава 1. Эволюция операционных систем 22
- •Глава 2. Назначение и функции операционной системы 59
- •Глава 3. Архитектура операционной системы 95
- •Глава 4. Процессы и потоки 139
- •Глава 5. Управление памятью 260
- •Глава 6. Аппаратная поддержка мультипрограммирования на примере процессора Pentium 333
- •Глава 7. Ввод-вывод и файловая система 389
- •Глава 8. Дополнительные возможности файловых систем 512
- •Глава 9. Сеть как транспортная система 576
- •Глава 10. Концепции распределенной обработки в сетевых ос 686
- •Глава 11. Сетевые службы 736
- •Глава 12. Сетевая безопасность 855
- •Благодарности
- •Предисловие авторов ко второму изданию
- •Для кого эта книга
- •Структура книги
- •Глава 9 является компактным введением в сетевые технологии, о ее содержании уже рассказывалось при описании отличий второй редакции учебника.
- •От издательства
- •Глава 1. Эволюция операционных систем
- •Первые операционные системы
- •Мультипрограммные операционные системы для мэйнфреймов
- •Первые сетевые операционные системы
- •Операционные системы миникомпьютеров и первые локальные сети
- •Развитие операционных систем в 80-е годы
- •Развитие операционных систем в 90-е годы
- •Современный этап развития операционных систем персональных компьютеров
- •Надежность
- •Простота обслуживания
- •Пользовательский интерфейс
- •Средства информационной самоорганизации
- •Защита данных
- •Виртуальные распределенные вычислительные системы суперкомпьютеров
- •Задачи и упражнения
- •Глава 2. Назначение и функции операционной системы
- •Операционные системы для автономного компьютера
- •Ос как виртуальная машина
- •Ос как система управления ресурсами
- •Функциональные компоненты операционной системы автономного компьютера
- •Управление процессами
- •Управление памятью
- •Управление файлами и внешними устройствами
- •Защита данных и администрирование
- •Интерфейс прикладного программирования
- •Пользовательский интерфейс
- •Сетевые операционные системы
- •Функциональные компоненты сетевой ос
- •Сетевые службы и сетевые сервисы
- •Встроенные сетевые службы и сетевые оболочки
- •Одноранговые и серверные сетевые операционные системы
- •Ос в одноранговых сетях
- •Ос в сетях с выделенными серверами
- •Требования к современным операционным системам
- •Задачи и упражнения
- •Глава 3. Архитектура операционной системы
- •Ядро и вспомогательные модули ос
- •Ядро в привилегированном режиме
- •Многослойная структура ос
- •Аппаратная зависимость и переносимость ос
- •Типовые средства аппаратной поддержки ос
- •Машинно-зависимые компоненты ос
- •Переносимость операционной системы
- •Микроядерная архитектура Концепция
- •Преимущества и недостатки микроядерной архитектуры
- •Совместимость и множественные прикладные среды
- •Двоичная совместимость и совместимость исходных текстов
- •Трансляция библиотек
- •Способы реализации прикладных программных сред
- •Система виртуальных машин
- •Задачи и упражнения
- •Глава 4. Процессы и потоки
- •Мультипрограммирование
- •Мультипрограммирование в системах пакетной обработки
- •Мультипрограммирование в системах разделения времени
- •Мультипрограммирование в системах реального времени
- •Мультипроцессорная обработка
- •Планирование процессов и потоков
- •Понятия «процесс» и «поток»
- •Создание процессов и потоков
- •If(fork()) { действия родительского процесса }
- •Планирование и диспетчеризация потоков
- •Состояния потока
- •Вытесняющие и не вытесняющие алгоритмы планирования
- •Алгоритмы планирования, основанные на квантовании
- •Алгоритмы планирования, основанные на приоритетах
- •Смешанные алгоритмы планирования
- •Планирование в системах реального времени
- •Моменты перепланирования
- •Мультипрограммирование на основе прерываний Назначение и типы прерываний
- •Аппаратная поддержка прерываний
- •Программные прерывания
- •Диспетчеризация и приоритезация прерываний в ос
- •Функции централизованного диспетчера прерываний на примере ос семейства Windows nt
- •Процедуры обработки прерываний и текущий процесс
- •Системные вызовы
- •Синхронизация процессов и потоков Цели и средства синхронизации
- •Необходимость синхронизации и гонки
- •Критическая секция
- •Блокирующие переменные
- •Семафоры
- •Системные синхронизирующие объекты
- •Задачи и упражнения
- •Глава 1. Эволюция операционных систем 22
- •Глава 2. Назначение и функции операционной системы 59
- •Глава 3. Архитектура операционной системы 95
- •Глава 4. Процессы и потоки 139
- •Глава 5. Управление памятью 260
- •Глава 6. Аппаратная поддержка мультипрограммирования на примере процессора Pentium 333
- •Глава 7. Ввод-вывод и файловая система 389
- •Глава 8. Дополнительные возможности файловых систем 512
- •Глава 9. Сеть как транспортная система 576
- •Глава 10. Концепции распределенной обработки в сетевых ос 686
- •Глава 11. Сетевые службы 736
- •Глава 12. Сетевая безопасность 855
- •Глава 5. Управление памятью
- •Функции ос по управлению памятью
- •Типы адресов
- •Риc. 5.6. Общая и индивидуальные части виртуальных адресных пространств
- •Алгоритмы распределения памяти
- •Фиксированные разделы
- •Динамические разделы
- •Перемещаемые разделы
- •Виртуальная память
- •Страничное распределение
- •Оптимизация страничной виртуальной памяти
- •Двухуровневое страничное распределение памяти
- •Сегментно-страничное распределение
- •Разделяемые сегменты памяти
- •Кэширование данных. Универсальная концепция
- •Иерархия памяти
- •Принцип действия кэш-памяти
- •Проблема согласования данных
- •Отображение основной памяти на кэш
- •Схемы выполнения запросов в системах с кэш-памятью
- •Задачи и упражнения
- •Глава 6. Аппаратная поддержка мультипрограммирования на примере процессора Pentium
- •Регистры процессора
- •Привилегированные команды
- •Средства поддержки сегментации памяти
- •Виртуальное адресное пространство
- •Преобразование адресов
- •Защита данных при сегментной организации памяти
- •Сегментно-страничный механизм
- •Средства вызова процедур и задач
- •Вызов процедур
- •Вызов задач
- •Механизм прерываний
- •Кэширование в процессоре Pentium
- •Буфер ассоциативной трансляции
- •Кэш первого уровня
- •Совместная работа кэшей разного уровня
- •Задачи и упражнения
- •Глава 7. Ввод-вывод и файловая система
- •Задачи ос по управлению файлами и устройствами
- •Согласование скоростей обмена и кэширование данных
- •Разделение устройств и данных
- •Программный интерфейс к устройствам
- •Поддержка широкого спектра драйверов
- •Динамическая загрузка и выгрузка драйверов
- •Поддержка файловых систем
- •Синхронный и асинхронный режимы
- •Многослойная модель подсистемы ввода-вывода Общая схема
- •Менеджер ввода-вывода
- •Многоуровневые драйверы
- •Логическая организация файловой системы
- •Цели и задачи файловой системы
- •Типы файлов
- •Иерархическая структура файловой системы
- •Имена файлов
- •Монтирование
- •Атрибуты файлов
- •Логическая организация файла
- •Физическая организация файловой системы
- •Диски, разделы, секторы, кластеры
- •Физическая организация и адресация файла
- •Физическая организация fat
- •Физическая организация s5 и ufs
- •Физическая организация ntfs
- •Структура тома ntfs
- •Структура файлов ntfs
- •Каталоги ntfs
- •Файловые операции фс с запоминанием и без запоминания состояния операций
- •Открытие файла
- •Обмен данными с файлом
- •Блокировки файлов
- •Стандартные файлы ввода и вывода, перенаправление вывода
- •Контроль доступа к файлам Файл как разделяемый ресурс
- •Механизм контроля доступа
- •Контроль доступа в ос Unix
- •Контроль доступа в ос семейства Windows nt Общая характеристика
- •Разрешения на доступ к каталогам и файлам
- •Встроенные группы пользователей и их права
- •Задачи и упражнения
- •Глава 8. Дополнительные возможности файловых систем
- •Специальные файлы и аппаратные драйверы Специальные файлы как универсальный интерфейс
- •Структурирование аппаратных драйверов
- •Структура драйвера ос семейства Windows nt
- •Структура драйвера Unix
- •Блок-ориентированные драйверы
- •Байт-ориентированные драйверы
- •Отображаемые на память файлы
- •Дисковый кэш
- •Традиционный дисковый кэш
- •Дисковый кэш на основе виртуальной памяти
- •Отказоустойчивость файловых и дисковых систем
- •Восстанавливаемость файловых систем. Причины нарушения целостности файловых систем
- •Протоколирование транзакций
- •Восстанавливаемость файловой системы ntfs
- •Избыточные дисковые подсистемы raid
- •Обмен данными между Процессами и потоками
- •Конвейеры
- •Именованные конвейеры
- •Очереди сообщений
- •Разделяемая память
- •Задачи и упражнения
- •Глава 9. Сеть как транспортная система
- •Роль сетевых транспортных средств ос
- •Коммутация пакетов Пакеты
- •Буферы и очереди
- •Методы продвижения пакетов
- •Протокол и стек протоколов
- •Семиуровневая модель osi
- •Физический уровень
- •Канальный уровень
- •Сетевой уровень
- •Транспортный уровень
- •Сеансовый уровень
- •Уровень представления
- •Прикладной уровень
- •Стек tcp/ip Структура стека
- •Классы ip-адресов
- •Использование масок
- •Частные и публичные iр-адреса
- •Символьные имена и dns
- •Протокол dhcp
- •Ручное конфигурирование таблиц
- •Протоколы маршрутизации
- •Реализация стека протоколов в универсальной ос
- •Структура транспортных средств универсальной ос
- •Конфигурирование параметров стека tcp/ip
- •Функциональная схема маршрутизатора
- •Основные характеристики Cisco ios
- •Модульная структура ios
- •Прерывания и управление процессами
- •Организация памяти
- •Работа с буферами пакетов
- •Программная маршрутизация и ускоренная коммутация
- •Поддержка QoS
- •Задачи и упражнения
- •Глава 10. Концепции распределенной обработки в сетевых ос
- •Модели сетевых служб и распределенных приложений
- •Разделение приложений на части
- •Двухзвенные схемы
- •Трехзвенные схемы
- •Механизм передачи сообщений в распределенных системах
- •Синхронизация
- •Буферизация в примитивах передачи сообщений
- •Способы адресации
- •Надежные и ненадежные примитивы
- •Механизм Sockets ос Unix
- •Вызов удаленных процедур
- •Концепция удаленного вызова процедур
- •Генерация стабов
- •Формат rPp-сообщений
- •Связывание клиента с сервером
- •Особенности реализации rpc на примере систем Sun rpc и dce rpc
- •Задачи и упражнения
- •Глава 11. Сетевые службы
- •Сетевая файловая система
- •Модель неоднородной сетевой файловой системы
- •Модель загрузки-выгрузки и модель удаленного доступа
- •Архитектурные решения
- •Производительность, надежность и безопасность сетевой файловой системы
- •Семантика разделения файлов
- •Файловые stateful- и stateless-cepверы
- •Место расположения кэша
- •Способы распространения модификаций
- •Проверка достоверности кэша
- •Репликация файлов
- •Прозрачность репликации
- •Согласование реплик
- •Пример. Протокол передачи файлов ftp
- •Пример. Файловая система nfs
- •Справочная сетевая служба Назначение справочной службы
- •Архитектура справочной службы
- •Децентрализованная модель
- •Централизованная модель
- •Централизованная модель с резервированием
- •Декомпозиция справочной службы на домены
- •Распределенная модель
- •Основные концепции справочной службы Active Directory Домены, контроллеры доменов
- •Объекты
- •Глобальный каталог
- •Иерархическая структура Active Directory
- •Иерархия организационных единиц
- •Иерархия доменов. Доверительные отношения
- •Пространство имен
- •Репликация в Active Directory
- •Межсетевое взаимодействие
- •Основные подходы к организации межсетевого взаимодействия
- •Трансляция
- •Мультиплексирование стеков протоколов
- •Инкапсуляция протоколов
- •Задачи и упражнения
- •Глава 12. Сетевая безопасность
- •Основные понятия безопасности Конфиденциальность, целостность и доступность данных
- •Классификация угроз
- •Системный подход к обеспечению безопасности
- •Политика безопасности
- •Базовые технологии безопасности
- •Шифрование
- •Симметричные алгоритмы шифрования
- •Несимметричные алгоритмы шифрования
- •Криптоалгоритм rsa
- •Односторонние функции шифрования
- •Аутентификация, авторизация, аудит Аутентификация
- •Авторизация доступа
- •Технология защищенного канала
- •Технологии аутентификации Сетевая аутентификация на основе многоразового пароля
- •Аутентификация с использованием одноразового пароля
- •Синхронизация по времени
- •Использование слова-вызова
- •Аутентификация на основе сертификатов
- •Сертифицирующие центры
- •Инфраструктура с открытыми ключами
- •Аутентификация информации
- •Цифровая подпись
- •Аутентификация программных кодов
- •Система Kerberos
- •Первичная аутентификация
- •Получение разрешения на доступ к ресурсному серверу
- •Получение доступа к ресурсу
- •Достоинства и недостатки
- •Задачи и упражнения
- •Ответы к задачам и упражнениям Глава 1
- •Глава 2
- •Глава 3
- •Глава 4
- •Глава 5
- •Глава 6
- •Глава 7
- •Глава 8
- •Глава 9
- •Глава 10
- •Глава 11
- •Глава 12
- •Рекомендуемая литература
- •Сетевые операционные системы: Учебник для вузов
Мультиплексирование стеков протоколов
Другой подход к согласованию протоколов получил название мультиплексирования стеков протоколов. Он заключается в том, что в сетевое оборудование или в операционные системы серверов и рабочих станций встраиваются несколько стеков протоколов. Это позволяет клиентам и серверам выбирать для взаимодействия тот протокол, который является для них общим.
Сравнивая мультиплексирование с уже рассмотренной трансляцией протоколов, можно заметить, что взаимодействие компьютеров, принадлежащих разным сетям, напоминает общение людей, говорящих на разных языках (рис. 11.22), Для достижения взаимопонимания они также могут использовать два подхода: пригласить переводчика (аналог транслирующего устройства) или перейти на язык собеседника, если они им владеют (аналог мультиплексирования стеков протоколов).
При мультиплексировании стеков протоколов на один из двух взаимодействующих компьютеров с различными стеками протоколов помещается коммуникационный стек другого компьютера. На рис. 11.23 приведен пример взаимодействия клиентского компьютера сети В с сервером в своей сети и сервером сети А, работающей со стеком протоколов, полностью отличающимся от стека сети В.
Рис. 11.23. Мультиплексирование стеков
В клиентском компьютере реализованы оба стека. Для того чтобы запрос от прикладного процесса был правильно обработан и направлен через соответствующий стек, необходимо наличие специального программного элемента — мультиплексора протоколов, называемого также менеджером протоколов. Менеджер должен уметь определять, к какой сети направляется запрос клиента. Для этого может использоваться служба имен сети, в которой отмечается принадлежность того или иного ресурса определенной сети с соответствующим стеком протоколов.
При использовании технологии мультиплексирования структура коммуникационных средств операционной системы может быть и более сложной. В общем случае на каждом уровне вместо одного протокола появляется целый набор протоколов, и может существовать несколько мультиплексоров, выполняющих коммутацию между протоколами разных уровней. Например, рабочая станция, стек протоколов которой показан на рис. 11.24, может через один сетевой адаптер получить доступ к сетям, работающим по протоколам NetBIOS, IP, IPX.
Рис. 11.24. Мультиплексирование протоколов
Данная рабочая станция может быть клиентом сразу нескольких файловых серверов: NetWare (NCP), Windows NT (SMB) и Sun (NFS).
Предпосылкой для развития технологии мультиплексирования стеков протоколов стало появление строгих открытых описаний протоколов различных уровней и межуровневых интерфейсов, так что фирма-производитель при реализации «чужого» протокола может быть уверена, что ее продукт будет корректно взаимодействовать с продуктами других фирм по данному протоколу, этот протокол корректно впишется в стек и с ним будут нормально взаимодействовать протоколы соседних уровней.
Мультиплексирование протоколов реализует отношение «один ко многим», то есть один клиент с дополнительным стеком может обращаться ко всем серверам, поддерживающим этот стек, или один сервер с дополнительным стеком может предоставлять услуги многим клиентам.
При использовании мультиплексоров протоколов существует два варианта размещения дополнительного стека протоколов — на одном или на другом взаимодействующем компьютере. Если дополнительный стек устанавливается на сервере, то этот сервер становится доступным для всех клиентов с этим стеком. При этом нужно тщательно оценивать влияние установки дополнительного продукта на производительность сервера.
Аналогично, дополнительный стек на клиенте дает ему возможность устанавливать связи с другими серверами, использующими этот стек протоколов. При размещении дополнительного стека на клиентах вопросы производительности не так важны. Здесь более важными являются ограничения таких ресурсов, как память и дисковое пространство клиентских машин, а также затраты труда администратора на установку и поддержание дополнительных стеков в работоспособном состоянии на большом числе компьютеров.
Заметим, что при организации взаимодействия двух разнородных сетей в общем случае нужно решать две задачи согласования служб (рис. 11.25):
обеспечение доступа клиентам сети А к ресурсам сети В;
обеспечение доступа клиентам сети В к ресурсам сети А.'
Эти задачи независимы и их можно решать отдельно. В некрторых случаях требуется полное решение, например, Чтобы пользователи Unix-машин имели доступ к ресурсам серверов сети NetWare, а пользователи персональных машин имели доступ к ресурсам Unix-хостов; в других же случаях достаточно обеспечить доступ клиентам сети NetWare к ресурсам сети Unix. Большинство имеющихся на рынке продуктов обеспечивает только однонаправленное согласование прикладных служб.
Рис. 11.25. Направления согласования служб
Рассмотрим возможные варианты размещения программных средств, реализующих взаимодействие двух сетей, основанных на Мультиплексировании протоколов. Введем обозначения: С — сервер, К — клиент, А — дополнительный протокол (или протоколы), предоставляющий возможности межсетевого взаимодействия. Оба возможных варианта однонаправленного взаимодействия А—>В реализуются либо путем добавления нового стека к клиентам сети А (рис. 11.26 а), либо путем присоединения «добавки» к серверам сети В (рис.11.26, б).
Рис. 11.26. Варианты размещения средств межсетевого взаимодействия
В первом случае, когда средства мультиплексирования протоколов располагаются на .клиентских частях, только клиенты, снабженные такими средствами, могут обращаться к серверам сети В, причем к любому из них. Во втором случае, когда набор дополнительных стеков расположен на каком-либо сервере сети В, данный сервер может обслуживать всех клиентов сети А. Очевидно, что серверы сети В без средств мультиплексирования не могут быть использованы клиентами сети А.
Примером «добавки», модифицирующей клиентскую часть, может служить популярное программное средство SAMBA, которое добавляет серверную и клиентские части протокола SMB компьютерам, работающим под управлением Unix. Это позволяет клиентам Microsoft Windows обращаться к файлам и принтерам серверов Unix так, как будто это серверы Microsoft Windows.
При мультиплексировании протоколов дополнительное программное обеспечение — соответствующие стеки протоколов — должно быть установлено на каждый компьютер, которому может потребоваться доступ к разнородным сетям. В некоторых операционных системах имеются средства борьбы с избыточностью, свойственной этому подходу. Операционная система может быть сконфигурирована для работы с несколькими стеками протоколов, но динамически загружаются только нужные.
В то же время избыточность повышает надежность системы в целом, поскольку отказ компьютера с установленным дополнительным стеком не ведет к потере возможности межсетевого взаимодействия для других пользователей сети.
Важным преимуществом мультиплексирования является меньшее время выполнения запроса, чем при использовании шлюза. Это связано, во-первых, с отсутствием временных затрат на процедуру трансляции, а во-вторых, с тем, что при мультиплексировании на каждый запрос требуется только одна сетевая передача, в то время как при трансляции — две: запрос сначала передается в шлюз, а затем из шлюза на ресурсный сервер.
В принципе, при применении нескольких стеков протоколов у пользователя может возникнуть проблема работы в незнакомой среде с незнакомыми командами, правилами и методами адресации. Чаще всего разработчики операционных систем стремятся в какой-то степени облегчить жизнь пользователю в этой ситуации. Независимо от применяемого протокола прикладного уровня (например, SMB или NFS), ему предоставляется один и тот же интуитивно понятный графический интерфейс, с помощью которого он просматривает и выбирает нужные удаленные ресурсы.
В табл, 11.2 приведены сравнительные характеристики двух подходов к реазизации межсетевого взаимодействия.
Таблица 11.2. Сравнение методов трансляции и мультиплексирования протоколов
Метод |
Достоинства |
Недостатки |
Мультиплексирование протоколов |
Более быстрый доступ; повышение надежности взаимодействия за счет установки стека на нескольких узлах сети; хорошо масштабируемое средство |
Усложнение администрирования и контроля доступа; большая избыточность, требующая дополнительных ресурсов от рабочих станций; менее удобная среда для пользователя, чем шлюзы |
Трансляция протоколов (шлюзы, маршрутизаторы, коммутаторы) |
Сохранение привычной среды пользователей; отсутствие необходимости в дополнительном программном обеспечении на рабочих станциях; локализация всех проблем межсетевого взаимодействия; обеспечение возможности доступа к «чужим* ресурсам сразу для нескольких клиентов |
Замедление работы; снижение надежности; плохая масштабируемость; необходимость в двух сетевых передачах для выполнения одного запроса |
