Современные операционные системы, 4-ое издание Таненбаум

699 грн.

Купить в 1 клик
Артикул: sku 86 Категория: Метки: ,

Описание

Здесь можно купить: Современные операционные системы. 4-е изд., Таненбаум Э. С. книга

Издательство — Питер

Язык — русский

Обложка — Твердый переплет

Год издания — 2019

Количество страниц — 1120

ISBN — 978-5-4461-1155-8

Бумага — белая, офсетная

О книге Современные операционные системы. 4-е изд., Таненбаум Э. С.

Эндрю Таненбаум представляет новое издание своего всемирного бестселлера, необходимое для понимания функционирования современных операционных систем. Оно существенно отличается от предыдущего и включает в себя сведения о последних достижениях в области информационных технологий. Например, глава о Windows Vista теперь заменена подробным рассмотрением Windows 8.1 как самой актуальной версии на момент написания книги. Появился объемный раздел, посвященный операционной системе Android. Был обновлен материал, касающийся Unix и Linux, а также RAID-систем. Гораздо больше внимания уделено мультиядерным и многоядерным системам, важность которых в последние несколько лет постоянно возрастает. Появилась совершенно новая глава о виртуализации и облачных вычислениях. Добавился большой объем нового материала об использовании ошибок кода, о вредоносных программах и соответствующих мерах защиты. В книге в ясной и увлекательной форме приводится множество важных подробностей, которых нет ни в одном другом издании.

Современные операционные системы, 4-ое издание Таненбаум оглавление

Предисловие

От издательства

Об авторах

Глава 1. Введение

1. Что такое операционная система?

1.1. Операционная система как расширенная машина

1.2. Операционная система в качестве менеджера ресурсов

2. История операционных систем

2.1. Первое поколение (1945–1955): электронные лампы

2.2. Второе поколение (1955–1965): транзисторы и системы пакетной обработки

2.3. Третье поколение (1965–1980): интегральные схемы и многозадачность

2.4. Четвертое поколение (с 1980 года по наши дни): персональные компьютеры

2.5. Пятое поколение (с 1990 года по наши дни): мобильные компьютеры

3. Обзор аппаратного обеспечения компьютера

3.1. Процессоры

3.2. Многопоточные и многоядерные микропроцессоры

3.3. Память

3.4. Диски

3.5. Устройства ввода-вывода

3.6. Шины

3.7. Загрузка компьютера

4. Зоопарк операционных систем

4.1. Операционные системы мейнфреймов

4.2. Серверные операционные системы

4.3. Многопроцессорные операционные системы

4.4. Операционные системы персональных компьютеров

4.5. Операционные системы карманных персональных компьютеров

4.6. Встроенные операционные системы

4.7. Операционные системы сенсорных узлов

4.8. Операционные системы реального времени

4.9. Операционные системы смарт-карт

5. Понятия операционной системы

5.1. Процессы

5.2. Адресные пространства

5.3. Файлы

5.4. Ввод-вывод данных

5.5. Безопасность

5.6. Оболочка

5.7. Онтогенез повторяет филогенез

6. Системные вызовы

6.1. Системные вызовы для управления процессами

6.2. Системные вызовы для управления файлами

6.3. Системные вызовы для управления каталогами

71.6.4. Разные системные вызовы

6.5. Windows Win32 API

7. Структура операционной системы

7.1. Монолитные системы

7.2. Многоуровневые системы

7.3. Микроядра

7.4. Клиент-серверная модель

7.5. Виртуальные машины

7.6. Экзоядра

8. Устройство мира согласно языку C

8.1. Язык С

8.2. Заголовочные файлы

8.3. Большие программные проекты

8.4. Модель времени выполнения

9. Исследования в области операционных систем

Краткое

остальных глав этой книги

Единицы измерения

Краткие выводы

Вопросы

Глава 2. Процессы и потоки

1. Процессы

1.1. Модель процесса

1.2. Создание процесса

1.3. Завершение процесса

1.4. Иерархии процессов

1.5. Состояния процессов

1.6. Реализация процессов

1.7. Моделирование режима многозадачности

2. Потоки

2.1. Применение потоков

2.2. Классическая модель потоков

2.3. Потоки в POSIX

2.4. Реализация потоков в пользовательском пространстве

2.5. Реализация потоков в ядре

2.6. Гибридная реализация

2.7. Активация планировщика

2.8. Всплывающие потоки

2.9. Превращение однопоточного кода в многопоточный

3. Взаимодействие процессов

3.1. Состязательная ситуация

3.2. Критические области

3.3. Взаимное исключение с активным ожиданием

3.4. Приостановка и активизация

3.5. Семафоры

3.6. Мьютексы

3.7. Мониторы

3.8. Передача сообщений

3.9. Барьеры

3

Работа без блокировок: чтение — копирование — обновление

4. Планирование

4.1. Введение в планирование

4.2. Планирование в пакетных системах

8

2.4.3. Планирование в интерактивных системах

4.4. Планирование в системах реального времени

4.5. Политика и механизмы

4.6. Планирование потоков

5. Классические задачи взаимодействия процессов

5.1. Задача обедающих философов

5.2. Задача читателей и писателей

6. Исследования, посвященные процессам и потокам

7. Краткие выводы

Вопросы

Глава 3. Управление памятью

1. Память без использования абстракций

2. Абстракция памяти: адресные пространства

2.1. Понятие адресного пространства

2.2. Свопинг

2.3. Управление свободной памятью

3. Виртуальная память

3.1. Страничная организация памяти

3.2. Таблицы страниц

3.3. Ускорение работы страничной организации памяти

3.4. Таблицы страниц для больших объемов памяти

4. Алгоритмы замещения страниц

4.1. Оптимальный алгоритм замещения страниц

4.2. Алгоритм исключения недавно использовавшейся страницы

4.3. Алгоритм «первой пришла, первой и ушла»

4.4. Алгоритм «второй шанс»

4.5. Алгоритм «часы»

4.6. Алгоритм замещения наименее востребованной страницы

4.7. Моделирование LRU в программном обеспечении

4.8. Алгоритм «рабочий набор»

4.9. Алгоритм WSClock

4

Краткая сравнительная характеристика алгоритмов замещения страниц

5. Разработка систем страничной организации памяти

5.1. Сравнительный анализ локальной и глобальной политики

5.2. Управление загрузкой

5.3. Размер страницы

5.4. Разделение пространства команд и данных

5.5. Совместно используемые страницы

5.6. Совместно используемые библиотеки

5.7. Отображаемые файлы

5.8. Политика очистки страниц

5.9. Интерфейс виртуальной памяти

6. Проблемы реализации

6.1. Участие операционной системы в процессе подкачки страниц

6.2. Обработка ошибки отсутствия страницы

6.3. Перезапуск команды

6.4. Блокировка страниц в памяти

6.5. Резервное хранилище

6.6. Разделение политики и механизма

7. Сегментация

7.1. Реализация чистой сегментации

93.7.2. Сегментация со страничной организацией памяти: система MULTICS

7.3. Сегментация со страничной организацией памяти: система Intel x86

8. Исследования в области управления памятью

9. Краткие выводы

Вопросы

Глава 4. Файловые системы

1. Файлы

1.1. Имена файлов

1.2. Структура файла

1.3. Типы файлов

1.4. Доступ к файлам

1.5. Атрибуты файлов

1.6. Операции с файлами

1.7. Пример программы, использующей файловые системные вызовы

2. Каталоги

2.1. Системы с одноуровневыми каталогами

2.2. Иерархические системы каталогов

2.3. Имена файлов

2.4. Операции с каталогами

3. Реализация файловой системы

3.1. Структура файловой системы

3.2. Реализация файлов

3.3. Реализация каталогов

3.4. Совместно используемые файлы

3.5. Файловые системы с журнальной структурой

3.6. Журналируемые файловые системы

3.7. Виртуальные файловые системы

4. Управление файловой системой и ее оптимизация

4.1. Управление дисковым пространством

4.2. Резервное копирование файловой системы

4.3. Непротиворечивость файловой системы

4.4. Производительность файловой системы

4.5. Дефрагментация дисков

5. Примеры файловых систем

5.1. Файловая система MS-DOS

5.2. Файловая система UNIX V7

5.3. Файловые системы компакт-дисков

6. Исследования в области файловых систем

7. Краткие выводы

Вопросы

Глава 5. Ввод и вывод информации

1. Основы аппаратного обеспечения ввода-вывода

1.1. Устройства ввода-вывода

1.2. Контроллеры устройств

1.3. Ввод-вывод, отображаемый на пространство памяти

1.4. Прямой доступ к памяти

1.5. Еще раз о прерываниях

10

5.2. Принципы создания программного обеспечения ввода-вывода

2.1. Задачи, стоящие перед программным обеспечением ввода-вывода

2.2. Программный ввод-вывод

2.3. Ввод-вывод, управляемый прерываниями

2.4. Ввод-вывод с использованием DMA

3. Уровни программного обеспечения ввода-вывода

3.1. Обработчики прерываний

3.2. Драйверы устройств

3.3. Программное обеспечение ввода-вывода, не зависящее от конкретных устройств

3.4. Программное обеспечение ввода-вывода, работающее в пространстве пользователя

4. Диски

4.1. Аппаратная часть дисков

4.2. Форматирование диска

4.3. Алгоритмы планирования перемещения блока головок

4.4. Обработка ошибок

4.5. Стабильное хранилище данных

5. Часы

5.1. Аппаратная составляющая часов

5.2. Программное обеспечение часов

5.3. Программируемые таймеры

6. Пользовательский интерфейс: клавиатура, мышь, монитор

6.1. Программное обеспечение ввода информации

6.2. Программное обеспечение вывода информации

7. Тонкие клиенты

8. Управление энергопотреблением

8.1. Роль оборудования

8.2. Роль операционной системы

8.2. Роль прикладных программ

9. Исследования в области ввода-вывода данных

Краткие выводы

Вопросы

Глава 6. Взаимоблокировка

1. Ресурсы

1.1. Выгружаемые и невыгружаемые ресурсы

1.2. Получение ресурса

2. Введение во взаимоблокировки

2.1. Условия возникновения ресурсных взаимоблокировок

2.2. Моделирование взаимоблокировок

3. Страусиный алгоритм

4. Обнаружение взаимоблокировок и восстановление работоспособности

4.1. Обнаружение взаимоблокировки при использовании одного ресурса каждого типа

4.2. Обнаружение взаимоблокировки при использовании нескольких ресурсов каждого типа

4.3. Выход из взаимоблокировки

5. Уклонение от взаимоблокировок

5.1. Траектории ресурса

5.2. Безопасное и небезопасное состояние

5.3. Алгоритм банкира для одного ресурса

5.4. Алгоритм банкира для нескольких типов ресурсов

116.6. Предотвращение взаимоблокировки

6.1. Атака условия взаимного исключения

6.2. Атака условия удержания и ожидания

6.3. Атака условия невыгружаемости

6.4. Атака условия циклического ожидания

7. Другие вопросы

7.1. Двухфазное блокирование

7.2. Взаимные блокировки при обмене данными

7.3. Активная взаимоблокировка

7.4. Зависание

8. Исследования в области взаимоблокировок

9. Краткие выводы

Вопросы

Глава 7. Виртуализация и облако

1. История

2. Требования, применяемые к виртуализации

3. Гипервизоры первого и второго типа

4. Технологии эффективной виртуализации

4.1. Виртуализация оборудования, не готового к виртуализации

4.2. Цена виртуализации

5. Являются ли гипервизоры настоящими микроядрами?

6. Виртуализация памяти

6.1. Аппаратная поддержка вложенных таблиц страниц

6.2. Возвращение памяти

7. Виртуализация ввода-вывода

7.1. Блоки управления памятью при вводе-выводе

7.2. Домены устройств

7.3. Виртуализация ввода-вывода в отдельно взятом физическом устройстве

8. Виртуальные устройства

9. Виртуальные машины на мультиядерных центральных процессорах

Вопросы лицензирования

Облака

1. Облака в качестве услуги

2. Миграция виртуальных машин

3. Установка контрольных точек

Изучение конкретных примеров: VMWARE

1. Ранняя история VMware

2. VMware Workstation

3. Сложности внедрения виртуализации в архитектуру x86

4. VMware Workstation: обзор решения

5. Развитие VMware Workstation

6. ESX-сервер: гипервизор первого типа компании VMware

Исследования в области виртуализации и облаков

Вопросы

Глава 8. Многопроцессорные системы

1. Мультипроцессоры

1.1. Мультипроцессорное аппаратное обеспечение

1.2. Типы мультипроцессорных операционных систем

12

8.1.3. Синхронизация мультипроцессоров

1.4. Планирование работы мультипроцессора

2. Мультикомпьютеры

2.1. Аппаратное обеспечение мультикомпьютеров

2.2. Низкоуровневые коммуникационные программы

2.3. Коммуникационные программы пользовательского уровня

2.4. Вызов удаленной процедуры

2.5. Распределенная совместно используемая память

2.6. Планирование мультикомпьютеров

2.7. Балансировка нагрузки

4. Распределенные системы

4.1. Сетевое оборудование

4.2. Сетевые службы и протоколы

4.3. Связующее программное обеспечение на основе документа

4.4. Связующее программное обеспечение на основе файловой системы

4.5. Связующее программное обеспечение, основанное на объектах

4.6. Связующее программное обеспечение, основанное на взаимодействии

5. Исследования в области многопроцессорных систем

6. Краткие выводы

Вопросы

Глава 9. Безопасность

1. Внешние условия, требующие принятия дополнительных мер безопасности

1.1. Угрозы

1.2. Злоумышленники

2. Безопасность операционных систем

2.1. Можно ли создать защищенные системы?

2.2. Высоконадежная вычислительная база

3. Управление доступом к ресурсам

3.1. Домены защиты

3.2. Списки управления доступом

3.3. Перечни возможностей

4. Формальные модели систем безопасности

4.1. Многоуровневая защита

4.2. Тайные каналы

5. Основы криптографии

5.1.Шифрование с секретным ключом

5.2. Шифрование с открытым ключом

5.3. Односторонние функции

5.4. Цифровые подписи

5.5. Криптографические процессоры

6. Аутентификация

6.1. Слабые пароли

6.2. Парольная защита в UNIX

6.3. Одноразовые пароли

6.4. Схема аутентификации «оклик — отзыв»

6.5. Аутентификация с использованием физического объекта

6.6. Аутентификация с использованием биометрических данных

139.7. Взлом программного обеспечения

7.1. Атаки, использующие переполнение буфера

7.2. Атаки, использующие форматирующую строку

7.3. Указатели на несуществующие объекты

7.4. Атаки, использующие разыменование нулевого указателя

7.5. Атаки, использующие переполнение целочисленных значений

7.6. Атаки, использующие внедрение команд

7.7 Атаки, проводимые с момента проверки до момента использования

8. Инсайдерские атаки

8.1. Логические бомбы

8.2. Лазейки

8.3. Фальсификация входа в систему

9. Вредоносные программы

9.1. Троянские кони

9.2. Вирусы

9.3. Черви

9.4. Программы-шпионы

9.5. Руткиты

Средства защиты

1. Брандмауэры

2. Антивирусные и антиантивирусные технологии

3. Электронная подпись двоичных программ

4. Тюремное заключение

5. Обнаружение проникновения на основе модели

6. Инкапсулированный мобильный код

7. Безопасность в системе Java

Исследования в области безопасности

Краткие выводы

Вопросы

Глава 10. Изучение конкретных примеров: Unix, Linux и Android

1. История UNIX и Linux

1.1. UNICS

1.2. PDP-11 UNIX

1.3. Переносимая система UNIX

1.4. Berkeley UNIX

1.5. Стандартная система UNIX

1.6. MINIX

1.7. Linux

2. Обзор системы Linux

2.1. Задачи Linux

2.2. Интерфейсы системы Linux

2.3. Оболочка

2.4. Утилиты Linux

2.5. Структура ядра

3. Процессы в системе Linux

3.1. Фундаментальные концепции

3.2. Системные вызовы управления процессами в Linux

3.3. Реализация процессов и потоков в Linux

3.4. Планирование в Linux

3.5. Загрузка Linux

14

10.4. Управление памятью в Linux

4.1. Фундаментальные концепции

4.2. Системные вызовы управления памятью в Linux

4.3. Реализация управления памятью в Linux

4.4. Подкачка в Linux

5. Ввод-вывод в системе Linux

5.1. Фундаментальные концепции

5.2. Работа с сетью

5.3. Системные вызовы ввода-вывода в Linux

5.4. Реализация ввода-вывода в системе Linux

5.5. Модули в Linux

6. Файловая система UNIX

6.1. Фундаментальные принципы

6.2. Вызовы файловой системы в Linux

6.3. Реализация файловой системы Linux

6.4. Файловая система NFS

7. Безопасность в Linux

7.1. Фундаментальные концепции

7.2. Системные вызовы безопасности в Linux

7.3. Реализация безопасности в Linux

8. Android

8.1. Android и Google

8.2. История Android

8.3. Цели разработки

8.4. Архитектура Android

8.5. Расширения Linux

8.6. Dalvik

8.7. Binder IPC

8.8. Приложения Android

8.9. Намерения

8

Песочницы приложений

8

Безопасность

8

Модель процесса

9. Краткие выводы

Вопросы

Глава 11. Изучение конкретных примеров: Windows 8

1. История Windows вплоть до Windows 8.1

1.1

-е годы прошлого века: MS-DOS

1.2

-е годы прошлого столетия: Windows на базе MS-DOS

1.3

год: Windows на базе NT

1.4. Windows Vista

1.5 2010-е годы: Современная Windows

2. Программирование в Windows

2.1. Собственный интерфейс прикладного программирования NT

2.2. Интерфейс прикладного программирования Win32

2.3. Реестр Windows

3. Структура системы

3.1. Структура операционной системы

3.2. Загрузка Windows

3.3. Реализация диспетчера объектов

3.4. Подсистемы, DLL и службы пользовательского режима

1511.4. Процессы и потоки в Windows

4.1. Фундаментальные концепции

4.2. Вызовы API для управления заданиями, процессами, потоками и волокнами

4.3. Реализация процессов и потоков

5. Управление памятью

5.1. Фундаментальные концепции

5.2. Системные вызовы управления памятью

5.3. Реализация управления памятью

6. Кэширование в Windows

7. Ввод-вывод в Windows

7.1. Фундаментальные концепции

7.2. Вызовы интерфейса прикладного программирования ввода-вывода

7.3. Реализация ввода-вывода

8. Файловая система Windows NT

8.1. Фундаментальные концепции

8.2. Реализация файловой системы NTFS

9. Управление электропитанием в Windows

Безопасность в Windows 8

1. Фундаментальные концепции

2. Вызовы интерфейса прикладного программирования безопасности

3. Реализация безопасности

4. Облегчение условий безопасности

Краткие выводы

Вопросы

Глава 12. Разработка операционных систем

1. Природа проблемы проектирования

1.1. Цели

1.2. Почему так сложно спроектировать операционную систему?

2. Разработка интерфейса

2.1. Руководящие принципы

2.2. Парадигмы

2.3. Интерфейс системных вызовов

3. Реализация

3.1. Структура системы

3.2. Механизм и политика

3.3. Ортогональность

3.4. Именование

3.5. Время связывания

3.6. Статические и динамические структуры

3.7. Реализация системы сверху вниз и снизу вверх

3.8 Сравнение синхронного и асинхронного обмена данными

3.9. Полезные методы

4. Производительность

4.1. Почему операционные системы такие медленные?

4.2. Что следует оптимизировать?

4.3. Выбор между оптимизацией по скорости и по занимаемой памяти

4.4. Кэширование

4.5. Подсказки

4.6. Использование локальности

4.7. Оптимизируйте общий случай

16

12.5. Управление проектом

5.1. Мифический человеко-месяц

5.2. Структура команды

5.3. Роль опыта

5.4. Панацеи нет

6. Тенденции в проектировании операционных систем

6.1. Виртуализация и облако

6.2. Многоядерные микропроцессоры

6.3. Операционные системы с большим адресным пространством

6.4. Беспрепятственный доступ к данным

6.5. Компьютеры с автономным питанием

6.8. Встроенные системы

8. Краткие выводы

Вопросы

Глава 13. Библиография

1. Дополнительная литература

1.1. Введение и общие труды

1.2. Процессы и потоки

1.3. Управление памятью

1.4. Файловые системы

1.5. Ввод-вывод

1.6. Взаимоблокировка

1.7. Виртуализация и облако

1.8. Многопроцессорные системы

1.9. Безопасность

1

Изучение конкретных примеров 1: Unix, Linux и Android

1

Изучение конкретных примеров 2: Windows 8

1

Проектирование операционных систем

2. Алфавитный список литературы

Также вы можете оставить вопрос или отзыв о книге: Современные операционные системы. 4-е изд., Таненбаум Э. С.

Отзывы

Отзывов пока нет.

Будьте первым, кто оставил отзыв на “Современные операционные системы, 4-ое издание Таненбаум”

Ваш e-mail не будет опубликован. Обязательные поля помечены *