Современные операционные системы. Э. Таненбаум

 

Это с нетерпением ожидаемое, переработанное и исправленное издание всемирного бестселлера включает в себя сведения о последних достижениях в области технологий операционных систем. Книга построена на примерах и содержит информацию, необходимую для понимания функционирования современных операционных систем.

Благодаря практическому опыту, приобретенному при разработке нескольких операционных систем, и высокому уровню знания предмета Эндрю Таненбаум смог ясно и увлекательно рассказать о сложных вещах. В книге приводится множество важных подробностей, которых нет ни в одном другом издании.

                               2-е изд. - СПб.: Питер, 2002. — 1040 с. 

Формат: djvu / zip
Размер:  9,54 Мб
Скачать учебник: http://depositfiles.com/files/l5ryw8crw            


 

СОДЕРЖАНИЕ
Об авторе
Предисловие
Глава 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
Принципы проектирования
Алфавитный список литературы
Алфавитный указатель