- •Сетевые операционные системы
- •Глава 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
- •Рекомендуемая литература
- •Сетевые операционные системы: Учебник для вузов
Ручное конфигурирование таблиц
При ручном способе администратор сети изучает топологию составной сети и находит рациональные маршруты продвижения для каждого маршрутизатора сети и для каждой сети, входящей в состав данной составной сети.
Руководствуясь этим принципом, давайте построим таблицу маршрутизации для маршрутизатора R1. ‘
Начнем с сети 193.201.5.0. Топология составной сети показывает, что возможны два рациональных маршрута от маршрутизатора R1 до сети 193.201.5.0: первый через сеть N3 и маршрутизатор RЗ, второй через сеть N2, маршрутизатор R2, сеть N4 и маршрутизатор RЗ.
Первый маршрут проходит через меньшее число промежуточных сетей и, соответственно, промежуточных маршрутизаторов, чем второй. Меньшее число промежуточных маршрутизаторов означает более быструю доставку пакета адресату, если все промежуточные сети обладают одинаковой скоростью передачи. В нашем случае это так, поэтому логично выбрать первый маршрут для сети назначения 193.201.5.0. Такой критерий выбора маршрута получил название «количества хопов», где под «хопом» (hop — прыжок, перелет) понимается промежуточная сеть.
В общем случае сети, входящие в состав составной сети, могут обладать различной пропускной способностью, и этот фактор будет влиять на время доставки пакета по тому или иному маршруту. Для того чтобы учесть влияние пропускной способности сетей, часто используют другой критерий выбора маршрута, называемый «расстоянием». С каждой сетью связывается расстояние, значение которого обратно пропускной способности сети. Например, если для сетей с пропускной способностью 1000 Мбит/с выбрать расстояние в одну условную единицу, то сети с пропускной способностью 100 Мбит/с будут связаны с расстоянием в 10 условных единиц, а сети с пропускной способностью 10 Мбит/с — в 100 таких единиц. При выборе маршрута суммарное расстояние от источника до адресата вычисляется простым суммированием расстояний промежуточных сетей и выбирается маршрут с минимальным суммарным расстоянием.
Так как в нашем примере все сети имеют одинаковую пропускную способность, то первый маршрут оказывается предпочтительным и по критерию хопов, и по критерию минимального расстояния.
Соответствующая запись об этом маршруте будут выглядеть так.
IP-адрес назначении |
Маска адреса назначения |
IP-адрес следующего маршрутизатора |
193.201.5.0 |
255.255.255.0 |
212.100.16.1 |
Эта запись описывает действия маршрутизатора не для одного адреса назначения, как это было в случае таблицы продвижения Ethemet-коммутатора, а для всего набора IP-адресов, относящихся к сети 193.201.5.0.
Маска в записи маршрута позволяет задействовать адреса подсетей. Общее правило использования маски состоит в том, что при приходе IP-пакета маршрутизатор извлекает из него IP-адрес назначения и накладывает на него маску, выделяя с помощью логической операции «И» (AND) номер подсети. Затем этот адрес сравнивается с адресами назначения, имеющимися в таблице маршрутизации. Если для какой-либо записи эти адреса совпадают, то считается, что маршрут найден. Для его отработки используется последнее поле записи, то есть IP-адрес следующего маршрутизатора, в нашем примере — это 212.100. 16.1, то есть адрес интерфейса е2 маршрутизатора R3.
Аналогичным образом создаются записи таблицы маршрутизации для остальных четырех сетей, в результате чего таблица приобретает законченный вид (табл. 9;2).
Таблица 9.2. Пример таблицы маршрутизации
IP-адрес назначении |
Маска адреса назначения |
IP-адрес следующего маршрутизатора |
|
15.0.0.0 |
255.0.0.0 |
15.0.0.2 - |
|
193.201.5.0 |
255.255.255.0 |
212.100.16.1 |
|
212.107.200.0 |
255.255.255.0 |
15.0.0.2 |
|
212.100.16.0 |
255.255.255.0 |
Непосредственно присоединенная сеть |
|
195.20.12.0 |
255.255.255.0 |
Непосредственно присоединенная сеть |
|
Default |
|
|
|
Отличие записей для сетей 212.100.16.0 и 195.20.12.0 от трех первых записей состоит в том, что для них не задается адрес следующего маршрутизатора, так как эти сети непосредственно присоединены к маршрутизатору R1.
В таблице маршрутизации присутствует еще одна запись, вместо адреса сети назначения имеющая значение Default (то есть «по умолчанию»). Эта запись является рабочей для всех адресов сетей назначения, которые явно не указаны в таблице маршрутизации. Запись Default является достаточно элегантным средством решения задачи масштабирования таблиц маршрутизации. Как правило, такая запись очень эффективна для маршрутизаторов, работающих на нижних уровнях иерархии Интернета — в сетях организаций или небольших провайдеров. Она обычно указывает на единственный путь «наверх», ведущий к провайдеру более высокого уровня. Маршруты, выбираемые при этом, оказываются рациональными, и «коллапс» таблицы маршрутизации не наносит никакого ущерба работе составной сети.
Посмотрим, как используется таблица маршрутизации маршрутизатором R1 на примере обработки пакета, отправленного компьютером С1 компьютеру С2. Этот пакет содержит IP-адрес источника 195.20.12.65 и IP-адрес назначения 193.201.5.13. Так как компьютер С1 и маршрутизатор Ri связаны сетью Ethernet, то для доставки пакета маршрутизатору R1 компьютер С1 должен упаковать сформированный IP-пакет в Ethemet-кадр и поместить в этот кадр МАС- адрес интерфейса el маршрутизатора Ri, который условно обозначим МАС-е1. В этом случае кадр должен пройти через сеть N1 Ethernet-коммутаторов и быть принят интерфейсом e1.
Возникает вопрос, каким образом компьютер С1 узнает МАС-адрес маршрутизатора R1? B принципе, он узнает его уже описанным способом за счет того, что администратор сконфигурирует на компьютере таблицу маршрутизации, подобную табл. 9.2. Однако из-за того, что обычно компьютер подключен к сети нижнего уровня, имеющей только один маршрутизатор, через который проходит путь ко всем внешним сетям, на компьютерах используются вырожденные таблицы маршрутизации, состоящие из одной записи Default. Традиционно такую единственную запись называют не таблицей маршрутизации, а просто адресом маршрутизатора по умолчанию (default gateway address). В компьютере С1 этот адрес должен быть указан как 195.20.12.1. Зная этот адрес, стек TCP/IP компьютера находит с помощью ARP-запроса соответствующий ему МАС-адрес, то есть МАС-адрес интерфейса el маршрутизатора R1.
После прохождения через сеть Ethernet-коммутаторов и приема его в буфер интерфейса el маршрутизатора R1 кадр, сделавший свое дело, отбрасывается, и маршрутизатор работает далее только с полями IP-пакета. В частности, он оперирует адресом назначения 193.201.5.13, содержащимся в пакете. Это оперирование заключается в том, что маршрутизатор последовательно просматривает записи его таблицы маршрутизации, извлекая из них маску и накладывая на данный адрес назначения. Полученный номер сети в каждом случае сравнивается с номером сети назначения, имеющимся в записи.
Для нашего примера первая запись таблицы сравнения не дает, так как после наложения маски образуется номер сети, равный 193.0.0.0, что не равно 15.0.0.0. Вторая проверка приводит к успеху, поэтому маршрутизатор извлекает из этой записи адрес следующего маршрутизатора 212.100.16.1, которому необходимо направить пакет.
Однако непосредственно этот адрес использовать для отправки пакета маршрутизатору R3 нельзя, как и в случае с компьютером С1 пакет должен быть упакован в Ethernet-кадр и только после этого направлен по сети N3 интерфейсу el маршрутизатора R3. Эта передача будет происходить через выходной интерфейс е2 маршрутизатора, который выбирается на основании того, что его адрес принадлежит той же сети, что и адрес назначения. Для нахождения МАС- адреса интерфейса el маршрутизатора R3 маршрутизатор R1 использует ARP- запрос, распространяемый по сети N3 интерфейсом е2.
После приема пакета маршрутизатор R3 обнаруживает по своей таблице маршрутизации, что его IP-адрес назначения принадлежит сети 193.201.5.0, которая непосредственно подключена к интерфейсу el этого маршрутизатора. Поэтому маршрутизатор R3 не направляет пакет следующему маршрутизатору, а с помощью ARP-запроса находит МАС-адрес, соответствующий IP-адресу назначения, указанному в пакете. После этого пакет упаковывается в Ethemet-кадр с найденным МАС-адресом и отравляется компьютеру С2.
