System Design Space
Граф знанийНастройки

Обновлено: 17 апреля 2026 г. в 23:17

Modern Operating Systems (short summary)

средний

«Modern Operating Systems» ценна тем, что возвращает операционную систему в центр инженерного мышления: это не фон для кода, а слой, который распределяет ресурсы, удерживает изоляцию и задаёт цену ошибок.

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

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

Практическая польза главы

Механики ОС

Даёт практическое понимание процессов, потоков, планировщика и их влияния на пропускную способность и задержку.

Поведение памяти

Помогает объяснять страничные прерывания, подкачку и эффекты конкуренции за память под нагрузкой.

Реалистичность конкурентности

Учит видеть, как системные механизмы ограничивают параллелизм на уровне приложений.

Архитектурная глубина

Добавляет глубину при вопросах о поведении сервиса под нагрузкой и причинах деградации.

Официальная страница

Modern Operating Systems

Страница книги на Pearson.

Открыть

Modern Operating Systems

Авторы: Andrew S. Tanenbaum, Herbert Bos
Издательство: Pearson, 2023 (5th Edition)
Объём: ~1136 страниц

Процессы, планирование, память, системные вызовы, файловые системы, изоляция и то, как ограничения ОС превращаются в реальные архитектурные компромиссы.

Оригинал

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

Чтобы объяснять деградацию, нужно понимать границу между и , цену каждого , роль и то, как вместе со меняет реальную стоимость доступа к памяти.

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

Ключевые темы книги

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

Процессы и планирование

Операционная система удерживает систему отзывчивой не магией, а конкретными политиками планировщика.
  • Например, пытается балансировать справедливость распределения CPU, пропускную способность и задержку.
  • имеет цену и легко становится узким местом при высокой конкуренции.
  • Приоритеты, квоты и напрямую влияют на хвостовую задержку сервисов.

Почему это важно: Помогает понять, почему сервис может тормозить даже при внешне свободном CPU.

Память и виртуализация

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

Почему это важно: Даёт корректную модель давления на память, отказов по памяти и нестабильных хвостовых задержек.

Файловые системы и ввод-вывод

ОС не просто пишет на диск, а управляет кэшированием, порядком записи и восстановлением после сбоев.
  • и порядок записи определяют, что останется согласованным после сбоя.
  • ускоряет чтение, но легко скрывает реальные пределы дискового слоя.
  • , и размер блока критичны для систем, чувствительных к задержке.

Почему это важно: Позволяет осознанно проектировать путь записи и чтения, а не надеяться на поведение диска по умолчанию.

Параллелизм и синхронизация

Параллельность полезна только тогда, когда потоки и процессы умеют координироваться без лишней блокировки всей системы.
  • Мьютексы, семафоры, блокировки чтения-записи и условные переменные остаются базовыми примитивами синхронизации.
  • и чаще всего всплывают именно на реальной нагрузке.
  • на блокировках способна съесть масштабируемость даже при горизонтальном росте.

Почему это важно: Нужно для корректного дизайна конкурентных сервисов, очередей и конвейеров фоновых обработчиков.

Безопасность и изоляция

Операционная система задаёт реальные границы доверия: кто и к чему может получить доступ.
  • Модель прав, включая , ограничивает радиус поражения при ошибках и компрометации.
  • Изоляция процессов, и изолированные среды уменьшают шанс бокового перемещения внутри системы.
  • Минимизация привилегий обязательна для рабочих и мультиарендных окружений.

Почему это важно: Критично для платформ, которые должны быть безопасными по умолчанию, а не только в идеальном сценарии.

Системные сервисы и интерфейсы ядра

Системные вызовы и механизмы взаимодействия определяют, как приложение договаривается с ядром и соседними процессами.
  • задают контракт между приложением и операционной системой.
  • влияет на архитектуру локальных цепочек и стоимость передачи данных.
  • Драйверы и обработка прерываний определяют реальную производительность пути ввода-вывода.

Почему это важно: Помогает выбирать механизмы связи и объяснять системные ограничения без мистики и догадок.

Архитектурные опоры операционной системы

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

Как операционная система распределяет время CPU между потоками и процессами.

Память

Виртуальная память, страницы, кэши и правила доступа к адресному пространству.

Ввод-вывод

Файловые системы, диски, драйверы, очереди и буферизация операций.

Изоляция

Права доступа, и системные границы безопасности.

Как проходит системный вызов

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

Пользовательское пространство

Код начинается в и готовит системную операцию.

Граница ядра

Переход в происходит через системный вызов с проверкой прав и контекста.

Подсистемы ядра

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

Устройства и ответ

Ядро обращается к сети, диску или драйверу и возвращает результат приложению.

Какие системные метрики смотреть под нагрузкой

Средняя очередь нагрузкиконкуренция за CPU
Переключения контекстаработа планировщика
Страничные прерываниядавление на память
Ожидание ввода-выводадавление на дисковый слой
Эти сигналы помогают понять, почему сервис иногда выглядит «здоровым» на уровне приложения, но уже деградирует на уровне операционной системы.

Что реально пригодится в системном дизайне

  • Очереди на уровне операционной системы и переключения контекста помогают объяснять задержки, которых не видно в коде приложения.
  • Виртуальная память нужна, чтобы корректно читать деградацию при подкачке, нехватке памяти и росте хвостовых задержек.
  • Файловые системы и страничный кэш важны для любого пути чтения и записи, где данные должны переживать сбои.
  • Граница между пользовательским пространством и пространством ядра даёт реалистичную модель отказов, изоляции и стоимости системных операций.

Почему это важно для системного дизайна

  • Понимание процессов и потоков помогает проектировать конкурентные сервисы без ложной уверенности в «свободном CPU».
  • Память, подкачка и кэши объясняют, почему одна и та же система ведёт себя по-разному на тёплой и холодной нагрузке.
  • Файловые системы и порядок записи влияют на то, переживёт ли ваша архитектура сбой без потери согласованности.
  • Изоляция и права доступа позволяют обсуждать безопасность через реальные механизмы операционной системы, а не только через внешние периметры.

Кому подойдёт книга

Тем, кто хочет укрепить фундамент: разработчикам серверных систем, инженерам надёжности сервисов, системным разработчикам и всем, кто работает с инфраструктурой, производительностью и надёжностью сервисов.

Связанные главы

  • Почему фундаментальные знания важны - задаёт контекст, почему ограничения операционной системы напрямую влияют на архитектурные решения.
  • Structured Computer Organization (short summary) - даёт аппаратную базу: CPU, память и ввод-вывод как фундамент для понимания поведения операционной системы.
  • Операционная система: обзор - дополняет книгу практическим введением в пользовательское пространство, пространство ядра и роль системных вызовов.
  • Linux: серверная платформа - показывает, как теоретические принципы из книги проявляются в реальной серверной инфраструктуре.
  • Виртуализация: гипервизоры и VM - расширяет тему изоляции и управления ресурсами на уровне гипервизора.
  • Контейнеризация - связывает механизмы операционной системы, включая пространства имён и контроль ресурсов, с современной платформенной инженерией.
  • RAM и хранилище - углубляет понимание иерархии памяти, страничного кэша и влияния задержек хранилища на систему.

Где найти книгу

Чтобы отмечать прохождение, включи трекинг в Настройки