Современные операционные системы (3-е издание)
Эндрю Таненбаум
Это с нетерпением ожидаемое, переработанное и исправленное издание всемирного бестселлера включает в себя сведения о последних достижениях в области технологий операционных систем. Книга построена на примерах и содержит информацию, необходимую для понимания функционирования современных операционных систем. Новое издание существенно изменено и дополнено и включает описание устройства и функционирования Windows Vista.
Благодаря практическому опыту, приобретенному при разработке нескольких операционных систем, и высокому уровню знания предмета Эндрю Таненбаум смог ясно и увлекательно рассказать о сложных вещах. В книге приводится множество важных подробностей, которых нет ни в одном другом издании.
Издательство: Питер, 2010 г.
ISBN 978-5-49807-306-4, 978-013006633
Количество страниц: 1120.
Содержание книги «Современные операционные системы (3-е издание)»:
- 15 Предисловие
- 17 От издательства
- 17 Об авторе
- 19 Глава 1. Введение
- 21 1.1. Что такое операционная система?
- 22 1.1.1. Операционная система как расширенная машина
- 24 1.1.2. Операционная система в качестве менеджера ресурсов
- 26 1.2. История операционных систем
- 26 1.2.1. Первое поколение A945-1955): электронные лампы
- 27 1.2.2. Второе поколение A955-1965): транзисторы и системы пакетной обработки
- 29 1.2.3. Третье поколение A965-1980): интегральные схемы и многозадачность
- 35 1.2.4. Четвертое поколение (с 1980 года по наши дни): персональные компьютеры
- 39 1.3. Обзор аппаратного обеспечения компьютера
- 40 1.3.1. Процессоры
- 43 1.3.2. Многопоточные и многоядерные микропроцессоры
- 44 1.3.3. Память
- 48 1.3.4. Диски
- 49 1.3.5. Ленты
- 50 1.3.6. Устройства ввода-вывода
- 54 1.3.7. Шины
- 56 1.3.8. Загрузка компьютера
- 58 1.4. Зоопарк операционных систем
- 58 1.4.1. Операционные системы мейнфреймов
- 58 1.4.2. Серверные операционные системы
- 59 1.4.3. Многопроцессорные операционные системы
- 59 1.4.4. Операционные системы персональных компьютеров
- 60 1.4.5. Операционные системы карманных персональных компьютеров
- 60 1.4.6. Встроенные операционные системы
- 61 1.4.7. Операционные системы сенсорных узлов
- 61 1.4.8. Операционные системы реального времени
- 62 1.4.9. Операционные системы смарт-карт
- 63 1.5. Понятия операционной системы
- 63 1.5.1. Процессы
- 65 1.5.2. Адресные пространства
- 66 1.5.3. Файлы
- 70 1.5.4. Ввод-вывод данных
- 70 1.5.5. Безопасность
- 70 1.5.6. Оболочка
- 72 1.5.7. Онтогенез повторяет филогенез
- 76 1.6. Системные вызовы
- 80 1.6.1. Системные вызовы для управления процессами
- 83 1.6.2. Системные вызовы для управления файлами
- 84 1.6.3. Системные вызовы для управления каталогами
- 86 1.6.4. Разные системные вызовы
- 87 1.6.5. Windows Win32 API
- 90 1.7. Структура операционной системы
- 90 1.7.1. Монолитные системы
- 91 1.7.2. Многоуровневые системы
- 92 1.7.3. Микроядра
- 95 1.7.4. Клиент-серверная модель
- 96 1.7.5. Виртуальные машины
- 100 1.7.6. Экзоядра
- 100 1.8. Устройство мира согласно языку C
- 101 1.8.1. Язык C
- 102 1.8.2. Заголовочные файлы
- 102 1.8.3. Большие программные проекты
- 104 1.8.4. Модель времени выполнения
- 104 1.9. Исследования в области операционных систем
- 106 1.10. Краткое содержание остальных глав этой книги
- 107 1.11. Единицы измерения
- 108 1.12. Краткие выводы
- 109 Вопросы
- 21 1.1. Что такое операционная система?
- 112 Глава 2. Процессы и потоки
- 112 2.1. Процессы
- 113 2.1.1. Модель процесса
- 115 2.1.2. Создание процесса
- 118 2.1.3. Завершение процесса
- 118 2.1.4. Иерархии процессов
- 119 2.1.5. Состояния процессов
- 121 2.1.6. Реализация процессов
- 124 2.1.7. Моделирование режима многозадачности
- 125 2.2. Потоки
- 125 2.2.1. Применение потоков
- 131 2.2.2. Классическая модель потоков
- 136 2.2.3. Потоки в POSIX
- 138 2.2.4. Реализация потоков в пользовательском пространстве
- 141 2.2.5. Реализация потоков в ядре
- 143 2.2.6. Гибридная реализация
- 143 2.2.7. Активация планировщика
- 145 2.2.8. Всплывающие потоки
- 146 2.2.9. Превращение однопоточного кода в многопоточный
- 150 2.3. Взаимодействие процессов
- 151 2.3.1. Состязательная ситуация
- 152 2.3.2. Критические области
- 153 2.3.3. Взаимное исключение с активным ожиданием
- 159 2.3.4. Приостановка и активизация
- 162 2.3.5. Семафоры
- 165 2.3.6. Мьютексы
- 170 2.3.7. Мониторы
- 176 2.3.8. Передача сообщений
- 180 2.3.9. Барьеры
- 181 2.4. Планирование
- 182 2.4.1. Введение в планирование
- 190 2.4.2. Планирование в пакетных системах
- 192 2.4.3. Планирование в интерактивных системах
- 199 2.4.4. Планирование в системах реального времени
- 201 2.4.5. Политика и механизмы
- 201 2.4.6. Планирование потоков
- 203 2.5. Классические задачи взаимодействия процессов
- 203 2.5.1. Задача обедающих философов
- 207 2.5.2. Задача читателей и писателей
- 208 2.6. Исследования, посвященные процессам и потокам
- 209 2.7. Краткие выводы
- 210 Вопросы
- 112 2.1. Процессы
- 216 Глава 3. Управление памятью
- 217 3.1. Память без использования абстракций
- 220 3.2. Абстракция памяти: адресные пространства
- 221 3.2.1. Понятие адресного пространства
- 223 3.2.2. Свопинг
- 226 3.2.3. Управление свободной памятью
- 230 3.3. Виртуальная память
- 232 3.3.1. Страничная организация памяти
- 236 3.3.2. Таблицы страниц
- 238 3.3.3. Ускорение работы страничной организации памяти
- 242 3.3.4. Таблицы страниц для больших объемов памяти
- 245 3.4. Алгоритмы замещения страниц
- 246 3.4.1. Оптимальный алгоритм замещения страниц
- 247 3.4.2. Алгоритм исключения недавно использовавшейся страницы
- 249 3.4.3. Алгоритм «первой пришла, первой и ушла»
- 249 3.4.4. Алгоритм «второй шанс»
- 250 3.4.5. Алгоритм «часы»
- 251 3.4.6. Алгоритм замещения наименее востребованной страницы
- 252 3.4.7. Моделирование LRU в программном обеспечении
- 254 3.4.8. Алгоритм «Рабочий набор»
- 258 3.4.9. Алгоритм WSCIock
- 261 3.4.10. Краткая сравнительная характеристика алгоритмов замещения страниц
- 262 3.5. Вопросы разработки систем страничной организации памяти
- 262 3.5.1. Сравнительный анализ локальной и глобальной политики
- 265 3.5.2. Управление загрузкой
- 266 3.5.3. Размер страницы
- 268 3.5.4. Разделение пространства команд и данных
- 269 3.5.5. Совместно используемые страницы
- 270 3.5.6. Совместно используемые библиотеки
- 273 3.5.7. Отображаемые файлы
- 273 3.5.8. Политика очистки страниц
- 274 3.5.9. Интерфейс виртуальной памяти
- 275 3.6. Вопросы реализации
- 275 3.6.1. Участие операционной системы в процессе подкачки страниц
- 276 3.6.2. Обработка ошибки отсутствия страницы
- 277 3.6.3. Перезапуск команды
- 279 3.6.4. Блокировка страниц в памяти
- 279 3.6.5. Резервное хранилище
- 282 3.6.7. Разделение политики и механизма
- 283 3.7. Сегментация
- 287 3.7.1. Реализация чистой сегментации
- 288 3.7.2. Сегментация со страничной организацией памяти: система MULTICS
- 292 3.7.3. Сегментация со страничной организацией памяти: система Intel Pentium
- 297 3.8. Исследования в области управления памятью
- 298 3.9. Краткие выводы
- 299 Вопросы
- 306 Глава 4. Файловые системы
- 308 4.1. Файлы
- 308 4.1.1. Имена файлов
- 310 4.1.2. Структура файла
- 311 4.1.3. Типы файлов
- 313 4.1.4. Доступ к файлам
- 314 4.1.5. Атрибуты файлов
- 316 4.1.6. Операции с файлами
- 317 4.1.7. Пример программы, использующей файловые системные вызовы
- 320 4.2. Каталоги
- 320 4.2.1. Системы с одноуровневыми каталогами
- 320 4.2.2. Иерархические системы каталогов
- 321 4.2.3. Имена файлов
- 324 4.2.4. Операции с каталогами
- 325 4.3. Реализация файловой системы
- 325 4.3.1. Структура файловой системы
- 326 4.3.2. Реализация файлов
- 332 4.3.3. Реализация каталогов
- 336 4.3.4. Совместно используемые файлы
- 338 4.3.5. Файловые системы с журнальной структурой
- 340 4.3.6. Журналируемые файловые системы
- 342 4.3.7. Виртуальные файловые системы
- 346 4.4. Управление файловой системой и ее оптимизация
- 346 4.4.1. Управление дисковым пространством
- 353 4.4.2. Резервное копирование файловой системы
- 360 4.4.3. Непротиворечивость файловой системы
- 364 4.4.4. Производительность файловой системы
- 369 4.4.5. Дефрагментация дисков
- 370 4.5. Примеры файловых систем
- 370 4.5.1. Файловые системы компакт-дисков
- 376 4.5.2. Файловая система MS-DOS
- 379 4.5.3. Файловая система UNIX V7
- 382 4.6. Исследования в области файловых систем
- 383 4.7. Краткие выводы
- 383 Вопросы
- 308 4.1. Файлы
- 387 Глава 5. Ввод и вывод информации
- 387 5.1. Основы аппаратного обеспечения ввода-вывода
- 388 5.1.1. Устройства ввода-вывода
- 389 5.1.2. Контроллеры устройств
- 390 5.1.3. Ввод-вывод, отображаемый на пространство памяти
- 395 5.1.4. Прямой доступ к памяти (DMA)
- 398 5.1.5. Еще раз о прерываниях
- 403 5.2. Принципы создания программного обеспечения ввода-вывода
- 403 5.2.1. Задачи, стоящие перед программным обеспечением ввода-вывода
- 405 5.2.2. Программный ввод-вывод
- 407 5.2.3. Ввод-вывод, управляемый прерываниями
- 408 5.2.4. Ввод-вывод с использованием DMA
- 408 5.3. Уровни программного обеспечения ввода-вывода
- 409 5.3.1. Обработчики прерываний
- 410 5.3.2. Драйверы устройств
- 414 5.3.3. Программное обеспечение ввода-вывода, не зависящее от конкретных устройств
- 421 5.3.4. Программное обеспечение ввода-вывода, работающее в пространстве пользователя
- 423 5.4. Диски
- 423 5.4.1. Аппаратная часть дисков
- 441 5.4.2. Форматирование диска
- 445 5.4.3. Алгоритмы планирования перемещения блока головок
- 449 5.4.4. Обработка ошибок
- 452 5.4.5. Стабильное хранилище данных
- 456 5.5. Часы
- 456 5.5.1. Аппаратная составляющая часов
- 458 5.5.2. Программное обеспечение часов
- 461 5.5.3. Программируемые таймеры
- 463 5.6. Пользовательский интерфейс: клавиатура, мышь, монитор
- 463 5.6.1. Программное обеспечение ввода информации
- 469 5.6.2. Программное обеспечение вывода информации
- 486 5.7. Тонкие клиенты
- 488 5.8. Управление энергопотреблением
- 490 5.8.1. Роль оборудования
- 491 5.8.2. Роль операционной системы
- 497 5.8.2. Роль прикладных программ
- 499 5.9. Исследования в области ввода-вывода данных
- 500 5.10. Краткие выводы
- 501 Вопросы
- 387 5.1. Основы аппаратного обеспечения ввода-вывода
- 507 Глава 6. Взаимоблокировка
- 508 6.1. Ресурсы
- 508 6.1.1. Выгружаемые и невыгружаемые ресурсы
- 510 6.1.2. Получение ресурса
- 511 6.2. Введение во взаимоблокировки
- 512 6.2.1. Условия возникновения ресурсных взаимоблокировок
- 512 6.2.2. Моделирование взаимоблокировок
- 516 6.3. Страусиный алгоритм
- 516 6.4. Обнаружение взаимоблокировок и восстановление работоспособности
- 516 6.4.1. Обнаружение взаимоблокировки при использовании одного ресурса каждого типа
- 519 6.4.2. Обнаружение взаимоблокировки при использовании нескольких ресурсов каждого типа
- 522 6.4.3. Выход из взаимоблокировки
- 524 6.5. Уклонение от взаимоблокировок
- 524 6.5.1. Траектории ресурса
- 525 6.5.2. Безопасное и небезопасное состояние
- 527 6.5.3. Алгоритм банкира для одного ресурса
- 528 6.5.4. Алгоритм банкира для нескольких типов ресурсов
- 530 6.6. Предотвращение взаимоблокировки
- 530 6.6.1. Атака условия взаимного исключения
- 531 6.6.2. Атака условия удержания и ожидания
- 532 6.6.3. Атака условия невыгружаемости
- 532 6.6.4. Атака условия циклического ожидания
- 534 6.7. Другие вопросы
- 534 6.7.1. Двухфазное блокирование
- 534 6.7.2. Взаимные блокировки при обмене данными
- 536 6.7.3. Активная взаимоблокировка
- 538 6.7.4. Зависание
- 539 6.8. Исследования в области взаимоблокировок
- 540 6.9. Краткие выводы
- 540 Вопросы
- 508 6.1. Ресурсы
- 545 Глава 7. Мультимедийные операционные системы
- 546 7.1. Введение в мультимедиа
- 550 7.1.1. Мультимедийные файлы
- 552 7.1.2. Кодирование изображения
- 555 7.1.3. Кодирование звука
- 557 7.2. Сжатие видеоинформации
- 557 7.2.1. Стандарт JPEG
- 561 7.2.2. Стандарт MPEG
- 563 7.3. Сжатие аудиоинформации
- 567 7.4. Планирование процессов в мультимедийных системах
- 567 7.4.1. Планирование однородных процессов
- 568 7.4.2. Общие вопросы планирования работы в режиме реального времени
- 570 7.4.3. Алгоритм планирования RMS
- 572 7.4.4. Алгоритм планирования EDF
- 574 7.5. Парадигмы мультимедийной файловой системы
- 575 7.5.1. Функции управления кассетным видеомагнитофоном
- 577 7.5.2. Виртуальный кинозал
- 579 7.5.3. Виртуальный кинозал с функциональностью, присущей видеомагнитофону
- 581 7.6. Размещение файлов
- 582 7.6.1. Размещение файла на одном диске
- 583 7.6.2. Две альтернативные стратегии файловой организации
- 587 7.6.3. Размещение файлов для виртуального кинотеатра
- 589 7.6.4. Размещение нескольких файлов на одном диске
- 591 7.6.5. Размещение файлов на нескольких дисках
- 594 7.7. Кэширование
- 594 7.7.1. Блочное кэширование
- 596 7.7.2. Кэширование файлов
- 597 7.8. Планирование работы диска в интересах мультимедиа
- 597 7.8.1. Статическое планирование работы диска
- 599 7.8.2. Динамическое планирование работы диска
- 601 7.9. Исследования в области мультимедиа
- 601 7.10. Краткие выводы
- 602 Вопросы
- 546 7.1. Введение в мультимедиа
- 607 Глава 8. Многопроцессорные системы
- 610 8.1. Мультипроцессоры
- 610 8.1.1. Мультипроцессорное аппаратное обеспечение
- 620 8.1.2. Типы мультипроцессорных операционных систем
- 625 8.1.3. Синхронизация мультипроцессоров
- 630 8.1.4. Планирование работы мультипроцессора
- 637 8.2. Мультикомпьютеры
- 638 8.2.1. Аппаратное обеспечение мультикомпьютеров
- 642 8.2.2. Низкоуровневые коммуникационные программы
- 644 8.2.3. Коммуникационные программы пользовательского уровня
- 648 8.2.4. Вызов удаленной процедуры
- 651 8.2.5. Распределенная совместно используемая память
- 657 8.2.6. Планирование мультикомпьютеров
- 657 8.2.7. Балансировка нагрузки
- 660 8.3. Виртуализация
- 663 8.3.1. Требования, которые необходимо выполнить для осуществления виртуализации
- 664 8.3.2. Гипервизоры первого типа
- 665 8.3.3. Гипервизоры второго типа
- 667 8.3.4. Паравиртуализация
- 669 8.3.5. Виртуализация памяти
- 671 8.3.6. Виртуализация устройств ввода-вывода
- 673 8.3.7. Виртуальные приложения
- 674 8.3.8. Виртуальные машины на многоядерных центральных процессорах
- 674 8.3.9. Вопросы лицензирования
- 675 8.4. Распределенные системы
- 677 8.4.1. Сетевое оборудование
- 681 8.4.2. Сетевые службы и протоколы
- 685 8.4.3. Связующее программное обеспечение на основе документа
- 687 8.4.4. Связующее программное обеспечение на основе файловой системы
- 692 8.4.5. Связующее программное обеспечение, основанное на объектах
- 694 8.4.6. Связующее программное обеспечение, основанное на взаимодействии
- 700 8.4.7. Grid-системы
- 700 8.5. Исследования в области многопроцессорных систем
- 702 8.6. Краткие выводы
- 703 Вопросы
- 610 8.1. Мультипроцессоры
- 709 Глава 9. Безопасность
- 711 9.1. Внешние условия, требующие принятия дополнительных мер безопасности
- 711 9.1.1. Угрозы
- 713 9.1.2. Злоумышленники
- 714 9.1.3. Случайная утрата данных
- 715 9.2. Основы криптографии
- 716 9.2.1. Шифрование с секретным ключом
- 717 9.2.2. Шифрование с открытым ключом
- 718 9.2.3. Односторонние функции
- 718 9.2.4. Цифровые подписи
- 720 9.2.5. Криптографический процессор
- 721 9.3. Механизмы защиты
- 721 9.3.1. Домены защиты
- 724 9.3.2. Списки управления доступом
- 727 9.3.3. Перечни возможностей
- 730 9.3.4. Надежные системы
- 731 9.3.5. Высоконадежная вычислительная база
- 733 9.3.6. Формальные модели систем безопасности
- 734 9.3.7. Многоуровневая защита
- 737 9.3.8. Тайные каналы
- 742 9.4. Аутентификация
- 743 9.4.1. Аутентификация с использованием паролей
- 752 9.4.2. Аутентификация с использованием физического объекта
- 755 9.4.3. Аутентификация с использованием биометрических данных
- 758 9.5. Инсайдерские атаки
- 759 9.5.1. Логические бомбы
- 759 9.5.2. Лазейки
- 760 9.5.3. Фальсификация входа в систему
- 762 9.6. Использование дефектов программного кода
- 763 9.6.1. Атаки, использующие переполнение буфера
- 765 9.6.2. Атаки, использующие форматирующую строку
- 767 9.6.3. Атаки, использующие возвращение управления в libc
- 769 9.6.4. Атаки, использующие переполнение целочисленных значений
- 770 9.6.5. Атаки, использующие внедрение программного кода
- 771 9.6.6. Атаки, связанные с эскалацией привилегий
- 771 9.7. Вредоносные программы
- 775 9.7.1. Троянские кони
- 777 9.7.2. Вирусы
- 788 9.7.3. Черви
- 790 9.7.4. Программы-шпионы
- 794 9.7.5. Руткиты
- 800 9.8. Средства защиты
- 800 9.8.1. Брандмауэры
- 802 9.8.2. Антивирусные и анти-антивирусные технологии
- 810 9.8.3. Электронная подпись двоичных программ
- 811 9.8.4. Тюремное заключение
- 812 9.8.5. Обнаружение проникновения на основе модели
- 814 9.8.6. Инкапсулированный мобильный код
- 819 9.8.7. Безопасность в системе Java
- 821 9.9. Исследования в области безопасности
- 822 9.10. Краткие выводы
- 823 Вопросы
- 711 9.1. Внешние условия, требующие принятия дополнительных мер безопасности
- 829 Глава 10. Изучение конкретных примеров: Linux
- 830 10.1. История UNIX и Linux
- 830 10.1.1. UNICS
- 831 10.1.2. PDP-11 UNIX
- 832 10.1.3. Переносимая система UNIX
- 834 10.1.4. Berkeley UNIX
- 834 10.1.5. Стандартная система UNIX
- 836 10.1.6. MINIX
- 837 10.1.7. Linux
- 840 10.2. Обзор системы Linux
- 840 10.2.1. Задачи Linux
- 841 10.2.2. Интерфейсы системы Linux
- 843 10.2.3. Оболочка
- 846 10.2.4. Утилиты Linux
- 848 10.2.5. Структура ядра
- 851 10.3. Процессы в системе Linux
- 851 10.3.1. Фундаментальные концепции
- 854 10.3.2. Системные вызовы управления процессами в Linux
- 858 10.3.3. Реализация процессов и потоков в Linux
- 865 10.3.4. Планирование в Linux
- 868 10.3.5. Загрузка Linux
- 871 10.4. Управление памятью в Linux
- 872 10.4.1. Фундаментальные концепции
- 875 10.4.2. Системные вызовы управления памятью в Linux
- 876 10.4.3. Реализация управления памятью в Linux
- 883 10.4.4. Подкачка в Linux
- 887 10.5. Ввод-вывод в системе Linux
- 887 10.5.1. Фундаментальные концепции
- 888 10.5.2. Работа с сетью
- 890 10.5.3. Системные вызовы ввода-вывода в Linux
- 891 10.5.4. Реализация ввода-вывода в системе Linux
- 895 10.5.5. Модули в Linux
- 896 10.6. Файловая система UNIX
- 896 10.6.1. Фундаментальные принципы
- 901 10.6.2. Вызовы файловой системы в Linux
- 905 10.6.3. Реализация файловой системы Linux
- 914 10.6.4. Файловая система NFS
- 921 10.7. Безопасность в Linux
- 921 10.7.1. Фундаментальные концепции
- 923 10.7.2. Системные вызовы безопасности в Linux
- 924 10.7.3. Реализация безопасности в Linux
- 925 10.8. Резюме
- 926 Вопросы
- 830 10.1. История UNIX и Linux
- 931 Глава 11. Изучение конкретных примеров: Windows Vista
- 931 11.1. История Windows Vista
- 932 11.1.1. Восьмидесятые годы прошлого века: MS-DOS
- 933 11.1.2. Девяностые годы прошлого столетия: Windows на базе MS-DOS
- 933 11.1.3. Двухтысячный год: Windows на базе NT
- 937 11.1.4. Windows Vista
- 938 11.2. Программирование в Windows Vista
- 940 11.2.1. Собственный интерфейс прикладного программирования NT
- 944 11.2.2. Интерфейс прикладного программирования Win32
- 948 11.2.3. Реестр Windows
- 951 11.3. Структура системы
- 951 11.3.1. Структура операционной системы
- 967 11.3.2. Загрузка Windows Vista
- 968 11.3.3. Реализация диспетчера объектов
- 980 11.3.4. Подсистемы, DLL и службы пользовательского режима
- 983 11.4. Процессы и потоки в Windows Vista
- 983 11.4.1. Фундаментальные концепции
- 988 11.4.2. Вызовы API для управления заданиями, процессами, потоками и волокнами
- 994 11.4.3. Реализация процессов и потоков
- 1002 11.5. Управление памятью
- 1002 11.5.1. Фундаментальные концепции
- 1007 11.5.2. Системные вызовы управления памятью
- 1008 11.5.3. Реализация управления памятью
- 1018 11.6. Кэширование в Windows Vista
- 1021 11.7. Ввод-вывод в Windows Vista
- 1021 11.7.1. Фундаментальные концепции
- 1023 11.7.2. Вызовы интерфейса прикладного программирования ввода-вывода
- 1026 11.7.3. Реализация ввода-вывода
- 1031 11.8. Файловая система Windows NT
- 1032 11.8.1. Фундаментальные концепции
- 1033 11.8.2. Реализация файловой системы NTFS
- 1044 11.9. Безопасность в Windows Vista
- 1045 11.9.1. Фундаментальные концепции
- 1047 11.9.2. Вызовы интерфейса прикладного программирования безопасности
- 1048 11.9.3. Реализация безопасности
- 1051 11.10. Резюме
- 1052 Вопросы
- 931 11.1. История Windows Vista
- 1055 Глава 12. Разработка операционных систем
- 1055 12.1. Природа проблемы проектирования
- 1056 12.1.1. Цели
- 1057 12.1.2. Почему так сложно спроектировать операционную систему?
- 1059 12.2. Разработка интерфейса
- 1059 12.2.1. Руководящие принципы
- 1061 12.2.2. Парадигмы
- 1065 12.2.3. Интерфейс системных вызовов
- 1068 12.3. Реализация
- 1068 12.3.1. Структура системы
- 1072 12.3.2. Механизм и политика
- 1073 12.3.3. Ортогональность
- 1074 12.3.4. Именование
- 1076 12.3.5. Время связывания
- 1077 12.3.6. Статические и динамические структуры
- 1079 12.3.7. Реализация системы сверху вниз и снизу вверх
- 1080 12.3.8. Полезные методы
- 1085 12.4. Производительность
- 1086 12.4.1. Почему операционные системы такие медленные?
- 1087 12.4.2. Что следует оптимизировать?
- 1088 12.4.3. Выбор между оптимизацией по скорости и по занимаемой памяти
- 1090 12.4.4. Кэширование
- 1092 12.4.5. Подсказки
- 1092 12.4.6. Использование локальности
- 1093 12.4.7. Оптимизируйте общий случай
- 1093 12.5. Управление проектом
- 1094 12.5.1. Мифический человеко-месяц
- 1095 12.5.2. Структура команды
- 1097 12.5.3. Роль опыта
- 1098 12.5.4. Панацеи нет
- 1099 12.6. Тенденции в проектировании операционных систем
- 1099 12.6.1. Виртуализация
- 1099 12.6.2. Многоядерные процессоры
- 1100 12.6.3. Операционные системы с большим адресным пространством
- 1101 12.6.4. Сеть
- 1101 12.6.5. Параллельные и распределенные системы
- 1102 12.6.6. Мультимедиа
- 1102 12.6.7. Компьютеры на аккумуляторах
- 1103 12.6.8. Встроенные системы
- 1104 12.7. Сенсорные сети
- 1104 12.8. Резюме
- 1105 Вопросы
- 1055 12.1. Природа проблемы проектирования
- 1108 Глава 13. Библиография
- 1108 13.1. Дополнительная литература
- 1108 13.1.1. Введение и общие труды
- 1109 13.1.2. Процессы и потоки
- 1109 13.1.3. Управление памятью
- 1109 13.1.4. Ввод-вывод
- 1110 13.1.5. Файловые системы
- 1110 13.1.6. Взаимоблокировка
- 1110 13.1.7. Мультимедийные операционные системы
- 1111 13.1.8. Многопроцессорные системы
- 1112 13.1.9. Безопасность
- 1113 13.1.10. Linux
- 1114 13.1.11. Windows Vista
- 1114 13.1.12. Принципы проектирования
- 1108 13.1. Дополнительная литература
- 1115 Алфавитный список литературы
Инструкция как скачать книгу Эндрю Таненбаум: Современные операционные системы (3-е издание) в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.