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

Обновлено: 24 марта 2026 г. в 11:23

Modern Operating Systems (short summary)

medium

«Modern Operating Systems» ценна тем, что учит смотреть на ОС как на машину распределения ресурсов и изоляции, а не как на фон, на котором просто запускается код.

На практике глава помогает связывать планировщик, память, файловые системы, виртуализацию и безопасность с реальными симптомами production: page faults, swapping, contention и внезапными провалами по latency.

В интервью и design review это дает сильную опору для разговоров о runtime-поведении сервисов, когда деградация начинается ниже уровня самого приложения.

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

Механики ОС

Дает практическое понимание процессов, потоков, планировщика и их влияния на throughput/latency.

Memory behavior

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

Concurrency realism

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

Interview strength

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

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

Modern Operating Systems

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

Открыть

Modern Operating Systems

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

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

Оригинал

Ключевые темы

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

Как ОС распределяет CPU между конкурентными задачами и удерживает систему отзывчивой.

  • Планировщики (например, CFS) балансируют fairness, throughput и latency.
  • Context switch имеет стоимость и становится bottleneck при высокой конкуренции.
  • Приоритеты, квоты и affinity влияют на tail latency сервисов.

Для System Design: Помогает объяснить, почему при «свободном CPU» сервис всё равно может тормозить.

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

Виртуальная память изолирует процессы и управляет реальным дефицитом RAM.

  • Paging, page table и TLB определяют стоимость доступа к памяти.
  • Copy-on-write снижает overhead при fork и снапшотах.
  • Swap и page faults напрямую бьют по p95/p99 задержкам.

Для System Design: Даёт корректную модель OOM, memory pressure и деградации под нагрузкой.

Файловые системы и I/O

Как ОС хранит данные, кэширует I/O и обеспечивает согласованность при сбоях.

  • Journaling и write ordering определяют надёжность после crash.
  • Page cache ускоряет чтение, но может маскировать реальные лимиты диска.
  • fsync, batching и размер блоков критичны для latency-чувствительных систем.

Для System Design: Позволяет осознанно проектировать storage path, а не «надеяться на диск».

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

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

  • Mutex, semaphores, rw-locks и condition variables — базовые примитивы синхронизации.
  • Race conditions и deadlocks чаще всего проявляются только под реальной нагрузкой.
  • Контеншн на locks может «съедать» масштабируемость даже при горизонтальном скейле.

Для System Design: Нужно для корректного дизайна конкурентных сервисов и worker-пайплайнов.

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

Границы доверия внутри ОС: кто что может читать, менять и выполнять.

  • Модель прав (UID/GID, ACL, capabilities) ограничивает blast radius.
  • Изоляция процессов, namespaces и sandbox уменьшают риск lateral movement.
  • Минимизация привилегий обязательна для production и multi-tenant окружений.

Для System Design: Критично для secure-by-default платформ и оценки угроз в архитектуре.

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

Как приложения общаются с ОС и как ядро оркестрирует ресурсы и устройства.

  • System calls формируют контракт между user space и kernel space.
  • IPC (pipes, sockets, shared memory) влияет на архитектуру локальных взаимодействий.
  • Драйверы и обработка прерываний определяют реальную производительность I/O.

Для System Design: Помогает выбирать правильные механизмы связи и объяснять системные ограничения.

Архитектурные столпы ОС

Scheduling

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

Memory

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

I/O

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

Isolation

Пользователи, права, sandbox и безопасность.

Путь системного вызова

User space

Приложение вызывает системную функцию.

Kernel boundary

Переход через syscall, проверка прав и контекста.

Kernel subsystems

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

I/O + devices

Доступ к диску/сети и возврат ответа.

OS-метрики в проде

Load AverageCPU pressure
Context switchesscheduling
Page faultsmemory
I/O waitstorage
Эти метрики напрямую объясняют, почему сервисы иногда «тормозят» при внешне нормальных ресурсах.

Что полезно вынести в system design

  • Понимание очередей на уровне ОС и их влияния на latency.
  • Знание виртуальной памяти помогает объяснить spikes и OOM.
  • Осознание роли файловых систем важно для storage-компонентов.
  • Границы user/kernel space дают корректную модель отказов.

Зачем это System Design инженеру

  • Понимание процессов и потоков помогает проектировать конкурентные сервисы.
  • Знание виртуальной памяти и кешей объясняет latency и spikes.
  • Понимание файловых систем полезно при проектировании storage‑компонентов.
  • Понимание границ user/kernel полезно для оценки безопасности и изоляции.

Кому подойдёт

Тем, кто хочет укрепить фундамент: backend инженерам, SRE, системным разработчикам и всем, кто работает с инфраструктурой и performance‑критичными системами.

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

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

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