- •Сетевые операционные системы
- •Глава 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
- •Рекомендуемая литература
- •Сетевые операционные системы: Учебник для вузов
Сетевые операционные системы: Учебник для вузов
2-е издание
Заведующий редакцией |
А. Юрченко |
Руководитель проекта |
П. Маннинен |
Ведущий редактор |
О. Некруткина |
Литературный редактор |
А. Жданов |
Художник |
А. Татарко |
Верстка - |
Л. Харитонов |
Корректор |
В. Листова |
Подписано в печать 13.08.08. Формат 70x100/16. Уел. п. л. 54,18. Доп. тираж 3500. Заказ 10763.
ООО «Питер Пресс», 198206, Санкт-Петербург, Петергофское шоссе, д. 73, лит. А29.
Налоговая льгота — общероссийский классификатор продукции ОК 005-93, том 2; 95 30(6 — литература учебная. Отпечатано по технологии CtP в ОАО «Печатный двор» им. А. М. Горького.
197110, Санкт-Петербург, Чкаловский пр., 15.
1 Историческая справедливость требует заметить, что первые успешные попытки реализации графического интерфейса состоялись значительно раньше. Так изобретение мыши — устройства столь необходимого для удобного взаимодействия с компьютером — относится к ранним 60-м, а полноценный графический интерфейс был представлен корпорацией Xerox еще в 1973 году.
1 Grid - решётка, сетка.
1 Точнее — только некоторые модули ОС.
1 Например, служба каталогов Active Directory компания Microsoft.
1 В качестве примера серверной сетевой оболочки можно указать популярный в начале 90-х годов продукт компании Microsoft LAN Server, который существовал в различных вариантах, ориентированных на операционные системы VAX VMS, VM, QS/400, AIX, OS/2. He менее популярен в то время был типичный набор программного обеспечения рабочей станции в сети NetWare, представляющий собой систему MS-DOS с установленной поверх нее клиентской оболочкой, состоящей из клиентских частей файловой службы и службы печати ОС NetWare.
1 Под семейством Windows NT здесь и далее имеется в виду следующий ряд операционных систем компании Microsoft, имеющих очень близкую архитектуру: Windows NT 3.1, Windows NT 4.0, Windows 2000, Windows XP, Windows Server 2003, Windows Vista.
1 В последних версиях Novell NetWare 5.x и 6.x разработчики отказались от этого подхода.
1 В ОС семейства Windows NT этот слой программного обеспечения носит название Hardware Abstraction Layer (HAL). Еще раз подчеркнем, что под этим семейством в данной книге подразумевается следующий ряд архитектурно близких ОС: Windows NT, Windows 2000, Windows XP Professional, Windows Server 2003 и Vista.
1 Как уже ранее было сказано, под операционными системами семейства Windows NT здесь подразумевается следующий ряд ОС: Windows NT 3.1, Windows NT 4.0, Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows 7-8.
1 Подробнее о прерываниях читайте в следующем разделе
1 Скотт Максвелл. Ядро Linux в комментариях. — К.: «ДиаСофт», 2000.
1 Решение о перепланировании процессов может быть принято в ходе обработки прерывания, например, если это прерывание от таймера и после наращивания значения .системных часов выясняется, что процесс исчерпал выделенный ему квант времени. Однако это совсем не обязательно — прерывание может выполняться и без смены процесса, например, прием очередной порции данных от контроллера внешнего устройства чаще всего происходит в рамках текущего процесса, хотя данные, скорее всего, предназначены другому процессу.
1 В операционных системах семейства Unix эти части называют соответственно верхними половинами (top half) и нижними половинами (bottom half) обработчика прерываний.
1 В данном разделе мы будем говорить о синхронизации потоков, имея в виду, что если операционная система не поддерживает потоки, то все сказанное относится к синхронизации процессов.
1 Примитив — базовая функция ОС.
1 англ. mutex, от mutual exclusion — «взаимное исключение»
1 Если необходимо, чтобы несколько процессов разделяли общие данные или коды, операционная система отображает Соответствующие участки виртуального адресного пространства этих процессов на один и тот же участок физической памяти (см. раздел "Разделяемые сегменты памяти").
1 Деление виртуального адресного пространства на две непрерывные области не является обязательным — можно представить себе ОС, которая обходится без него, чередуя свои сегменты и сегменты прикладных программ и размещая их в виртуальном адресном пространстве в произвольном порядке.
1 В некоторых современных ОС, например версиях Unix, основанных на коде SVR4, механизм свопинга используется как дополнительный к виртуальной памяти и включается только при серьезных перегрузках системы.
1 Здесь не учитывается возможность кэширования записей из таблицы страниц, которая рассматривается несколько позже.
1 Процессор Pentium позволяет использовать также страницы размером до 4 Мбайт одновременно со страницами объемом 4 Кбайта.
1 Реентерабельность (reentrantable) — свойство повторной входимости кода, которое позволяет одновременно использовать его несколькими процессами. При выполнении реентерабельного кода процессы не изменяют его, поэтому в память достаточно загрузить только одну копию кода.
1 Все перечисленные характеристики ЗУ быстро изменяются по мере совершенствования вычислительной аппаратуры. В данном случае важны не абсолютные значения времени Доступа или объема памяти, а их соотношение для разных типов запоминающих устройств.
1 В действительности запись в кэше обычно содержит несколько элементов данных.
1 В этом разделе термин «задача» часто будет употребляться вместо равнозначного (и более распространенного) термина «процесс» в связи с тем, что именно этот термин выбрали в свое время разработчики процессоров Intel х86, и он фигурирует в названиях регистров и структур данных.
1 Механизм задания привилегий более детально рассмотрен далее в разделах, посвященных средствам управления памятью, так как уровни привилегий используются для определения не только допустимости выполнения той или иной команды, но и возможности доступа исполняемого кода к сегментам данных и кодов, включенным в виртуальное адресное пространство процесса.
1 Процессор Pentium поддерживает еще один тип таблицы дескрипторов — таблицу дескрипторов прерываний (Interrupt Descriptor Table, ЮТ). Эта таблица используется системой прерываний.
1 В литературе, посвященной этому вопросу, уровни привилегий CPL и EPL часто называют уровнями привилегий задачи (Task Privilege). Но поскольку понятие «задача» имеет совершенно конкретный смысл, являясь синонимом постоя «процесс», использование его в данном контексте сужает область действия механизма защиты. Как уже было сказано, контроль доступа осуществляется не только для кодов, оформленных в виде процесса, но и для кодов, выполняющихся вне рамок процесса, например процедур обработки прерываний.
1 От английского spool — шпулька (тоже буфер, только для ниток).
1 Подробнее о специальных файлах читайте в главе 8.
1 Файлы хранятся в памяти, не зависящей от энергопитания, однако имеется исключение — так называемый электронный диск, представляющий собой созданную в оперативной памяти структуру, имитирующую файловую систему.
1 На практике чаще используется относительная форма именования, которая не включает имя диска и цепочку имен каталогов верхнего уровня, заданных по умолчанию.
1 Внешняя дорожка может иметь несколько дополнительных секторов, используемых для замены поврежденных секторов в режиме горячего резервирования.
1 Иногда кластер называют блоком (например, в ОС Unix), что может привести к терминологической путанице. Вообще, терминология, используемая при описании форматов дисков и файловых систем, зависит от аппаратной платформы (RISC, Wintel и т. п.) и операционной системы. Это нужно учитывать и трактовать термины в зависимости от контекста.
1 Используются также термины «логический диск», «логический раздел», «том» (volume). Для разных ОС толкование этих терминов имеет свои особенности.
1 Современные версии Unix поддерживают и другие типы файловых систем, в том числе и пришедшие из других ОС, как, например, FAT.
1 Реально это число немного меньше, так как несколько значений индексного указателя расходуется для идентификации специальных кластеров, также как последний, неиспользуемый дефектной ' и резервный.
1 В Windows NT логический раздел принято называть томом.
1 Вы можете прочитать об этом в разделах «Файловые stateful- и stateless-серверы» и «Пример. Файловая система NFS» главы 11.
1 Дисковый кэш в ОС семейства Windows NT основан на использовании виртуальной памяти, поэтому он оперирует не блоками, а страницами.
1 Здесь термин «коммутатор пакетов» понимается в широком смысле—как любое устройство, реализующее коммутацию пакетов, то есть он в равной степени относится и к IР -маршрутизатору, Ethemet-коммутатору, и к ATM-коммутатору, а также коммутаторам любых других сетевых технологий.
1 Не следует путать интернет (со строчной буквы) с Интернетом (с прописной буквы); Интернет — это самая известная и охватывающая весь мир реализация составной сети, построенная на основе технологии TCP/IP.
1 В Интернете конечный узел традиционно называют хостом, а маршрутизатор — шлюзом. В этой главе мы будем также придерживаться такой терминологий.
1 Это описание соответствует случае, когда выходкой порт поддерживает Ethernet. Для других протоколов канального уровня этот этап может либо требовать просмотра таблицы другого типа, например таблицы отображений IP-адресов на метки Frame Relay, либо вообще отсутствовать — для тех протоколов, где поиск канального адреса не нужен, например для протокола РРР, который работает на двухточечных соединениях, не требующих адресации.
1 Directory (англ.) — справочник, каталог.
1 В действительности из соображений безопасности диалог клиента с сервером происходит в более сложной форме, не требующей передачи пароля в открытом виде по сети.
1 Об организационных единицах см. далее в разделе «Иерархия организационных единиц».
1 По желанию администратора в глобальный каталог могут быть добавлены дополнительные атрибуты.
1 Схема работы Kerberos описана в главе 12.
1 Вы можете встретить и другой вариант перевода — «различающееся имя».
2 Не путать с относительным именем файла, которое определяет положение файла в дереве относительно текущего каталога. В Active Directory понятие текущего каталога (домена, организационной единицы) при именовании объектов не используется.
1 Стандарт LDAP предусматривает и другие префиксы: С (страна), О (организация) и L (местонахождение), однако в Active Directory они не используются.
1 Строго говоря, контроллеры домена не являются функционально эквивалентными: некоторых случаях в процессе репликации для выполнения особых операций требуется цх специализация.
1 Нужно заметить, что на прикладном уровне в сети обычно работают несколько типов протоколов, так как каждый тип приложений использует собственный протокол, например, распределенная база данных — протокол SQL, служба Web — протокол HTTP и т. д. Поэтому несовпадение в описанном примере прикладного протокола пакетной телефонии не означает, что и другие типы приложений этих сетей должны решать проблему межсетевого взаимодействия. Если они построены на основе одних и тех же прикладных протоколов, то такой проблемы просто не существует.
1 Следует, однако, отметить, что существует немало фирменных алгоритмов, описание которых не публикуется.
1 Rijndael произносится [rɛindaːl] Рейндол
