- •Сетевые операционные системы
- •Глава 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
- •Рекомендуемая литература
- •Сетевые операционные системы: Учебник для вузов
Поддержка QoS
Cisco IOS поддерживает большое количество (более 100) механизмов QoS, причем иногда одного и того же результата можно добиться разными способами. Это объясняется тем, что за долгое время своего существования и развития механизмы QoS встраивались в IOS по мере необходимости и в соответствие с различными стандартами. Такая несколько запутанная ситуация с поддержанием качества обслуживания в Cisco IOS значительно упростилась с появлением модульного интерфейса QoS (Modular QoS Command line interface, MQC). MQC стандартизует правила использования механизмов QoS и делает операции конфигурирования маршрутизаторов Cisco по поддержке QoS гораздо более понятными.
Для организации дифференцированного обслуживания пактов MQC использует дополнительные выходные очереди интерфейсов. Ёсли в стандартном режиме для каждого интерфейса существует одна локальная выходная очередь, то при активизировании механизмов QoS таких очередей организуется несколько. MQC поддерживает для каждого интерфейса одну приоритетную очередь, называемую очередью с низкой задержкой (Low Latency Queue, LLQ), и несколько взвешенных очередей. Как и было описано ранее, пакеты, находящиеся в приоритетной очереди, выбираются из нее в первую очередь, а пакеты, находящиеся во взвешенных очередях, выбираются из них только в том случае, если приоритетная очередь пуста.
При конфигурировании QoS на маршрутизаторах Cisco нужно иметь в виду, что пакеты из очередей QoS попадают в контроллер интерфейса через единственную очередь Tx-ring, обойти ее никак нельзя, так как использование очереди Tx-ring — это единственный способ для контроллера интерфейса переписать пакеты из памяти ввода-вывода в свою внутреннюю память. Наличие очереди Tx-ring несколько искажает картину обслуживания пакетов несколькими очередями QoS, так как контроллер выбирает пакеты из очереди Tx-ring в том порядке, в котором они туда были записаны. Поэтому приоритетный пакет, который поступил в приоритетную очередь в тот момент, когда в очереди Tx-ring уже находилось, например, два неприоритетных пакета, будет вынужден ожидать, пока эти два пакета не будут переданы в сеть. Для сокращения времени ожидания приоритетных пакетов максимальную длину очереди Tx-ring рекомендуется сократить до двух пакетов.
В завершение рассмотрим пример конфигурирования QoS для Ethemet-интерфейса с помощью MQC-команд. Пусть мы хотим обслуживать трафик IP-телефонии в приоритетной очереди LLQ; кроме того, мы хотим, чтобы трафик некоторого корпоративного приложения ALPHA, направляемый серверу с IP-адресом 194.104.25.17 на ТСР-порт 21403, получал как минимум 30 % пропускной способности порта в периоды перегрузок. Кроме того, мы бы хотели ограничить приоритетный трафик так, чтобы он никогда не получал более 10 % пропускной способности Ethemet-интерфейса — на основе анализа возможной максимальной нагрузки, создаваемой абонентами IP-телефонии в нормальном режиме работы, мы знаем, что этой величины всегда будет достаточно для данного типа трафика, и хотим защитить трафик других приложений от случайных ошибок или преднамеренной атаки, когда кто-то начнет интенсивно генерировать трафик, имеющий все параметры трафика IP-телефонии, но им не являющийся. С помощью MQC-команд эта задача решается в три этапа.
Классификация трафика. Необходимо описать содержащиеся в пакетах признаки, на основе которых маршрутизатор будет распознавать трафик и направлять его в ту или иную выходную очередь. Для нашего примера классификация может быть выполнена следующим образом:
Первые две команды определяют класс трафика IP-телефонии, названный i р- tel. Команда match говорит о том, что в этот класс нужно включать все пакеты, которые переносят протокол RTP, функционирующий в приложениях IP-телефонии поверх протокола UDP. В данном случае нас интересуют пакеты, в которых протокол RTP занимает для своей работы диапазон, состоящий из 10 UDP-портов, причем первый порт в диапазоне имеет значение 16384.
Следующие четыре команды позволяют задать признаки классификации для трафика нашего корпоративного приложения. Класс alpha, заданный этими командами, включает все пакеты, которые имеют IP-адрес назначения 194.104.25.17, а также переносят данные протокола TCP с портом назначения 21403.
Задание параметров обслуживания классов трафика. После того как классы трафика определены, необходимо описать способ их обслуживания в очереди и параметры этого обслуживания. В терминах интерфейса MQC этот этап выглядит так:
Строка priority percent 10 говорит маршрутизатору, что пакеты, которые классифицируются как принадлежащие классу ip-tel, нужно направлять в приоритетную очередь, контролируя при этом скорость их поступления в очередь и отбрасывая пакеты, если эта скорость превысит 10 % от пропускной способности интерфейса.
Строка bandwidth percent 30 говорит маршрутизатору, что пакеты, которые классифицируются как принадлежащие классу alpha, нужно направлять во взвешенную очередь (об этом говорит ключевой параметр bandwidth) с весом 30 %.
3. Активизация QpS на выбранном интерфейсе. После того как правила классификации классов и их обработки заданы, их можно применить к тому или иному интерфейсу. В нашем примере для этого необходимо в режиме конфигурирования Ethemet-интерфейса задать команду:
service-pollcy output myqos
Данная команда говорит о том, что правила обслуживания, заданные командой poliсу-map с именем myqos, должны быть применены к этому интерфейсу.
Выводы
Коммутация пакетов является основным механизмом передачи данных в компьютерных сетях. Этот механизм позволяет более эффективно передавать пульсирующий компьютерный трафик, чем механизм коммутации каналов, используемый в телефонных сетях.
Пакет является единицей коммутации в компьютерных сетях. Пакет переносит порцию данных некоторого сетевого приложения, он наделен адресом назначения, что позволяет передавать его по сети от одного коммутационного устройства к другому независимо от других пакетов.
Буферы пакетов используются во всех коммуникационных устройствах компьютерных сетей. Буферизация трафика позволяет сглаживать его пульсации и не терять пакеты Во время перегрузок. В то же время буферизация приводит к очевидному отрицательному эффекту — случайным задержкам пакетов в очередях, создающихся в буферах в периоды перегрузок. Задержки снижают качество работы сетевых приложений реального времени, например пакетной телефонии.
При организации средств взаимодействия между узлами сети используется многоуровневая декомпозиция. Интерфейс между средствами взаимодействия двух узлов сети, расположенными на одном и том же уровне иерархии, называется протоколом.
Иерархически организованный набор протоколов, достаточный для организации взаимодействия узлов в сети, называется стеком протоколов.
Модель взаимодействия открытых систем (Open System Interconnection, OSI) в обобщенном виде описывает функции семи уровней средств сетевого взаимодействия. Эта модель является международным стандартом; она разрабатывалась в качестве своего рода универсального языка сетевых специалистов, поэтому ее называют справочной. Модель OSI не описывает какие-либо конкретные протоколы, но при изучении любого протокола полезно знать, функции какого уровня этой модели он реализует.
Транспортные функции сети реализуют три нижних уровня модели OSI: физический, канальный и сетевой. Сетевой уровень оперирует пакетами, которые инкапсулируются в кадры протокола канального уровня. Сетевой уровень нужен для передачи пакетов между сетями, входящими в состав составной сети. Канальный уровень обеспечивает передачу кадров в пределах одной сети.
Технология Ethernet реализует функции двух нижних уровней модели OSI: физического и канального. Ethernet сегодня доминирует в локальных сетях и становится все более популярной в глобальных сетях. Ethernet поддерживает иерархию битовых скоростей 10, 100, 1000 и 10 000 Мбит/с, используя для адресации узлов МАС-адреса, которые состоят из 6 байт и имеют уникальные значения в глобальном масштабе, что обеспечивается соглашением между производителями сетевого оборудования.
Ethernet-коммутаторы используют алгоритм автоматического построения таблиц продвижения кадров, не требующий предварительного ручного конфигурирования. Ethernet-коммутаторы являются прозрачными, так как не «видны» конечным узлам сети, которую коммутаторы образуют.
Стек TCP/IP является стеком протоколов, на которых построен Интернет. Популярность Интернета наряду с функциональной гибкостью протоколов стека TCP/IP привели к его доминированию в сетях организаций и в домашних сетях.
В стеке TCP/IP используется три типа адресов: локальные (например, МАС- адреса Ethemet-интерфейсов), IP-адреса и символьные доменные имена.
IP-адрес имеет длину 4 байта и состоит из номеров сети и узла. Для разделения IP-адреса на эти два компонента используется связанная с этим, адресом маска. Двоичная запись маски содержит единицы в тех разрядах, которые в данном адресе должны интерпретироваться как номер сети.
Установление соответствия между IP- и МАС-адресами осуществляется протоколом ARP. Для этого ARP использует широковещательные запросы в пределах подсети.
Назначение IP-адресов узлам сети может выполняться либо вручную, либо автоматически с помощью протокола DHCP. В последнем случае администратор заранее назначает DHCP-серверу диапазон свободных IP-адресов, из которого сервер выбирает очередной адрес при поступлении запроса от узла.
Соответствие между доменными именами и IP-адресами может устанавливаться как средствами конечного узла с использованием файла hosts, так и с помощью службы DNS, основанной на распределенной базе отображений доменных имен на IР-адреса.
Маршрутизация IP-пакетов осуществляется на основе таблиц маршрутизации, задающих для каждого IP-адреса назначения IP-адрес следующего хопа.
Таблицы маршрутизации могут быть построены как вручную, так и автоматически с помощью протоколов маршрутизации. В стеке TCP/IP существует несколько протоколов маршрутизации, таких как RIP, OSPF и BGP.
Коммуникационные протоколы реализуются в универсальных ОС как многоуровневые драйверы.
Маршрутизатор представляет собой программу, работающую либо на стандартной компьютерной аппаратной платформе под управлением универсальной ОС, либо на специализированной аппаратной платформе под управлением специализированной ОС.
Cisco IOS является специализированной ОС, работающей на широком спектре аппаратных платформ маршрутизаторов компании Cisco.
Особенностями Cisco IOS являются:
модульная структура на этапе разработки и сборки IOS и монолитная структура на этапе эксплуатации маршрутизатора;
работа всех модулей в одном режиме процессора;
отсутствие поддержки виртуальной памяти;
режим невытесняющей многозадачности с приоритетами.
Специальный модуль Cisco IOS организует эффективное управление буферами пакетов, минимизируя перемещение пакетов в памяти ввода-вывода маршрутизатора.
Cisco IOS поддерживает несколько режимов ускоренной маршрутизации, основанных на использовании объединения информации из таблицы маршрутизации и ARP-таблицы.
