|
Современные операционные системы. Э. Таненбаум Э. Таненбаум 3-е изд. - СПб.: Питер, 2010. — 1120 с. Это с нетерпением ожидаемое, переработанное и исправленное издание всемирного бестселлера включает в себя сведения о последних достижениях в области технологий операционных систем. Книга построена на примерах и содержит информацию, необходимую для понимания функционирования современных операционных систем. Благодаря практическому опыту, приобретенному при разработке нескольких операционных систем, и высокому уровню знания предмета Эндрю Таненбаум смог ясно и увлекательно рассказать о сложных вещах. В книге приводится множество важных подробностей, которых нет ни в одном другом издании. СОДЕРЖАНИЕ Предисловие Глава 1. Введение Что такое операционная система? Операционная система как расширенная машина Операционная система как менеджер ресурсов История операционных систем Первое поколение (1945-55): электронные лампы и коммутационные панели Второе поколение (1955-65): транзисторы и системы пакетной обработки Третье поколение (1965-1980): интегральные схемы и многозадачность Четвертое поколение (с 1980 года по наши дни): персональные компьютеры Онтогенез повторяет филогенез Зоопарк операционных систем Операционные системы мэйнфреймов Серверные операционные системы Многопроцессорные операционные системы Операционные системы для персональных компьютеров Операционные системы реального времени Встроенные операционные системы Операционные системы для смарт-карт Обзор аппаратного обеспечения компьютера Процессоры Память Устройства ввода-вывода Шины Понятия операционной системы Процессы Взаимоблокировка Управление памятью Ввод-вывод данных Файлы Безопасность Оболочка Повторное использование идей Системные вызовы Системные вызовы для управления процессами Системные вызовы для управления файлами Системные вызовы для управления каталогами Разные системные вызовы Windows Win32 API Структура операционной системы Монолитные системы Многоуровневые системы Виртуальные машины Экзоядро Модель клиент-сервер Исследования в области операционных систем Краткий обзор следующих глав Единицы измерения Резюме Вопросы Глава 2. Процессы и потоки Процессы Модель процесса Создание процесса Завершение процесса Иерархия процессов Состояния процессов Реализация процессов Потоки Модель потока Использование потоков Реализация потоков в пространстве пользователя Реализация потоков в ядре Смешанная реализация Активация планировщика Всплывающие потоки Как сделать однопоточную программу многопоточной Межпроцессное взаимодействие Состояние состязания Критические области Взаимное исключение с активным ожиданием Примитивы межпроцессного взаимодействия Семафоры Мьютексы Мониторы Передача сообщений Барьеры Классические проблемы межпроцессного взаимодействия Проблема обедающих философов Проблема читателей и писателей Проблема спящего брадобрея Планирование Введение в планирование Планирование в системах пакетной обработки данных Планирование в интерактивных системах Планирование в системах реального времени Политика и механизм Планирование потоков Изучение процессов и потоков Резюме Вопросы Глава 3. Взаимоблокировка Ресурсы Выгружаемые и невыгружаемые ресурсы Получение ресурса Введение Условия взаимоблокировки Моделирование взаимоблокировок Страусовый алгоритм Обнаружение и устранение взаимоблокировок Обнаружение взаимоблокировки при наличии одного ресурса каждого типа Обнаружение взаимоблокировок при наличии нескольких ресурсов каждого типа Выход из взаимоблокировки Избежание взаимоблокировок Траектории ресурсов 200 Безопасные и небезопасные состояния Алгоритм банкира для одного вида ресурсов Алгоритм банкира для нескольких видов ресурсов Предотвращение взаимоблокировок Атака условия взаимного исключения Атака условия удержания и ожидания Атака условия отсутствия принудительной выгрузки ресурса Атака условия циклического ожидания Сопутствующие вопросы Двухфазовое блокирование Тупики без ресурсов Голодание Исследования в области взаимоблокировок Резюме Вопросы Глава 4. Управление памятью Основное управление памятью Однозадачная система без подкачки на диск Многозадачность с фиксированными разделами Моделирование многозадачности Анализ производительности многозадачных систем Настройка адресов и защита Подкачка Управление памятью с помощью битовых массивов Управление памятью с помощью связных списков Виртуальная память Страничная организация памяти Таблицы страниц Буферы быстрого преобразования адреса (TLB) Инвертированные таблицы страниц Алгоритмы замещения страниц Оптимальный алгоритм Алгоритм NRU - не использовавшаяся в последнее время страница Алгоритм FIFO - первым прибыл - первым обслужен Алгоритм "вторая попытка" Алгоритм "часы" Алгоритм LRU - страница, не использовавшаяся дольше всего Программное моделирование алгоритма LRU Алгоритм "рабочий набор" Алгоритм WSClock Алгоритмы замещения страниц, резюме Моделирование алгоритмов замещения страниц Аномалия Билэди Магазинные алгоритмы Строка расстояний Прогнозирование частоты страничных прерываний Вопросы разработки систем со страничной организацией памяти Политика распределения памяти: локальная и глобальная Регулирование загрузки Размер страницы Отдельные пространства команд и данных Совместно используемые страницы Политика очистки страниц Интерфейс виртуальной памяти Вопросы реализации Участие операционной системы в процессе подкачки страниц Обработка страничного прерывания Перезапуск прерванной команды процессора Блокирование страниц в памяти Хранение страничной памяти на диске Разделение политики и механизма Сегментация Реализация сегментации Сегментация с использованием страниц: система MULTICS Сегментация с использованием страниц: Intel Pentium Исследования в области управления памятью Резюме Вопросы Глава 5. Ввод-вывод Принципы аппаратуры ввода-вывода Устройства ввода-вывода Контроллеры устройств Отображаемый на адресное пространство памяти ввод-вывод Прямой доступ к памяти (DMA) Еще раз о прерываниях Принципы программного обеспечения ввода-вывода Задачи программного обеспечения ввода-вывода Программный ввод-вывод Управляемый прерываниями ввод-вывод Ввод-вывод с использованием DMA Программные уровни ввода-вывода Обработчики прерываний Драйверы устройств Независимое от устройств программное обеспечение ввода-вывода Программное обеспечение ввода-вывода пространства пользователя Диски Аппаратная часть дисков Форматирование дисков Алгоритмы планирования перемещения головок Обработка ошибок Стабильное запоминающее устройство Таймеры Аппаратная часть таймеров Программное обеспечение таймеров Алфавитно-цифровые терминалы Технические средства терминалов с интерфейсом RS-232 Программное обеспечение ввода Программное обеспечение вывода Графические интерфейсы пользователя Аппаратное обеспечение клавиатуры, мыши и дисплея персонального компьютера Программное обеспечение ввода Программное обеспечение вывода для Windows Сетевые терминалы Система X Window Сетевой терминал SLIM Управление режимом энергопотребления Аппаратный аспект Аспект операционной системы Частичное функционирование Исследования ввода-вывода Резюме Вопросы Глава 6. Файловые системы Файлы Именование файлов Структура файла Типы файлов Доступ к файлам Атрибуты файла Операции с файлами Пример программы, использующей файловые системные вызовы Файлы, отображаемые на адресное пространство памяти Каталоги Одноуровневые каталоговые системы Двухуровневая система каталогов Иерархические каталоговые системы Имя пути Операции с каталогами Реализация файловой системы Структура файловой системы Реализация файлов Реализация каталогов Совместно используемые файлы Организация дискового пространства Надежность файловой системы Производительность файловой системы Файловые системы с журнальной структурой LFS Примеры файловых систем Файловые системы CD-ROM Файловая система CP/M Файловая система MS-DOS Файловая система Windows 98 Файловая система UNIX V7 Исследования в области файловых систем Резюме Вопросы Глава 7. Мультимедийные операционные системы Введение в мультимедиа Мультимедийные файлы Кодирование звука Кодирование изображения Сжатие видеоинформации Стандарт JPEG Стандарт MPEG Планирование процессов в мультимедийных системах Планирование однородных процессов Общее планирование реального времени Алгоритм планирования RMS Алгоритм планирования EDF Парадигмы мультимедийной файловой системы Функции управления видеомагнитофоном "Почти видео по заказу" "Почти видео по заказу" с функциями видеомагнитофона Размещение файла Размещение файла на одном диске Две альтернативные стратегии организации файлов Размещение файлов для "почти видео по заказу" Размещение нескольких файлов на одном диске Размещение файлов на нескольких дисках Кэширование Блочное кэширование Файловое кэширование Дисковое планирование в мультимедиа Статическое дисковое планирование Динамическое дисковое планирование Исследования в области мультимедиа Резюме Вопросы Глава 8. Многопроцессорные системы Мультипроцессоры Мультипроцессорное аппаратное обеспечение Типы мультипроцессорных операционных систем Синхронизация в мультипроцессорах Планирование мультипроцессора Многомашинные системы Аппаратное обеспечение многомашинных систем Коммуникационное программное обеспечение низкого уровня Коммуникационное программное обеспечение уровня пользователя Вызов удаленной процедуры Распределенная память совместного доступа Планирование многомашинных систем Балансировка нагрузки Распределенные системы Сетевое аппаратное обеспечение Сетевые службы и протоколы Промежуточное программное обеспечение, основанное на документе Промежуточное программное обеспечение, основанное на файловой системе Промежуточное программное обеспечение, основанное на совместно используемых объектах Промежуточное программное обеспечение, основанное на координации Исследования в области многопроцессорных систем Резюме Вопросы Глава 9. Безопасность Понятие безопасности Угрозы Злоумышленники Случайная потеря данных Основы криптографии Шифрование с секретным ключом Шифрование с открытым ключом Необратимые функции Цифровые подписи Аутентификация пользователей Аутентификация с использованием паролей Аутентификация с использованием физического объекта Аутентификация с использованием биометрических данных Контрмеры Атаки изнутри системы Троянские кони Фальшивая программа регистрации Логические бомбы Потайные двери Переполнение буфера Атака системы безопасности Печально знаменитые дефекты системы безопасности Атаки системы снаружи Сценарии нанесения ущерба вирусами Как работает вирус Как распространяются вирусы Антивирусные программы и анти-антивирусная технология Интернет-черви Мобильные программы Безопасность в системе Java Механизмы защиты Домены защиты Списки управления доступом Перечни возможностей Надежные системы Высоконадежная вычислительная база Формальные модели защищенных систем Многоуровневая защита Оранжевая книга безопасности Тайные каналы Исследования в области безопасности Резюме Вопросы Глава 10. Рассмотрение конкретных случаев: UNIX и Linux История UNIX UNICS PDP-11 UNIX Переносимая система UNIX Berkeley UNIX Стандартная система UNIX MINIX Linux Обзор системы UNIX Задачи UNIX Интерфейсы системы UNIX Оболочка UNIX Утилиты UNIX Структура ядра Процессы в системе UNIX Основные понятия Системные вызовы управления процессами в UNIX Реализация процессов в UNIX Загрузка UNIX Управление памятью в UNIX Основные понятия Системные вызовы управления памятью в UNIX Реализация управления памятью в UNIX Ввод-вывод в системе UNIX Основные понятия Системные вызовы ввода-вывода системы UNIX Реализация ввода-вывода в системе UNIX Потоки данных Файловая система UNIX Основные понятия Вызовы файловой системы в UNIX Реализация файловой системы UNIX Файловая система NFS Безопасность в UNIX Основные понятия Системные вызовы безопасности в UNIX Реализация безопасности в UNIX Резюме Вопросы Глава 11. Рассмотрение конкретных случаев: Windows 2000 История Windows 2000 MS-DOS Windows 95/98/Me Windows NT Windows 2000 Программирование в Windows 2000 Программный интерфейс Win32 API Реестр Структура системы Структура операционной системы Реализация объектов Подсистемы окружения Процессы и потоки в Windows 2000 Основные понятия Вызовы API для управления заданиями, процессами, потоками и волокнами Реализация процессов и потоков Эмуляция MS-DOS Загрузка Windows 2000 Управление памятью Основные понятия Системные вызовы управления памятью Реализация управления памятью Ввод-вывод в Windows 2000 Основные понятия Вызовы ввода-вывода API Реализация ввода-вывода Драйверы устройств Файловая система Windows 2000 Основные понятия Вызовы API файловой системы в Windows 2000 Реализация файловой системы Windows 2000 Безопасность в Windows 2000 Основные понятия Вызовы API защиты Реализация защиты Кэширование в Windows 2000 Резюме Вопросы Глава 12. Разработка операционных систем Природа проблемы проектирования Цели Почему так сложно спроектировать операционную систему? Разработка интерфейса Руководящие принципы Парадигмы Интерфейс системных вызовов Реализация Структура системы Механизм и политика Ортогональность Именование Время связывания Статические и динамические структуры Реализация системы сверху вниз и снизу вверх Полезные методы Производительность Почему операционные системы такие медленные? Что следует оптимизировать? Выбор между оптимизацией по скорости и по занимаемой памяти Кэширование Подсказки Использование локальности Оптимизируйте общий случай Управление проектом Мифический человеко-месяц Структура команды Роль опыта Панацеи нет Тенденции в проектировании операционных систем Операционные системы с большим адресным пространством Сеть Параллельные и распределенные системы Мультимедиа Компьютеры на батарейках Встроенные системы Резюме Вопросы Библиография Литература, рекомендуемая для дальнейшего чтения Введение и общие труды Процессы и потоки Взаимоблокировка Управление памятью Ввод-вывод Файловые системы Мультимедийные операционные системы Многопроцессорные системы Безопасность UNIX и Linux Windows 2000 Принципы проектирования Алфавитный список литературы Алфавитный указатель |
Loading
|