12 статей
Голодание процессов и проблема читателей/писателей при доступе к общему ресурсу. Рассматривается классическая задача об обедающих философах как иллюстрация тупиков в синхронизации.
Проблема синхронизации процессов при работе с неразделяемыми ресурсами вроде принтера или сети. Формулируются условия корректной синхронизации, включая взаимоисключение и прогресс.
Реальные планировщики Windows и Linux и четыре противоречивых требования к ним. Разбирается проблема deadlock и способы минимизировать риск тупиков в планировании.
Метрики качества планировщика — время ожидания и время отклика. Разбираются свойства алгоритмов планирования: предсказуемость, масштабируемость и реализуемость на практике.
Модель состояний процесса как автомат с вершинами-состояниями и рёбрами-переходами. Разбирается историческая двухсостоянийная модель Running/Waiting и её развитие.
Понятие процесса как набора команд, ресурсов и контекста исполнения под управлением ОС. Разбираются сигналы вроде SIGKILL и SIGSTOP, а также управление приоритетом процессов через renice.
Ядро ОС как резидентный привилегированный компонент и компромисс между удобством и размером. Разбирается монолитная архитектура с разделением на main program, services и utilities.
Информационная и системная архитектура ОС как продолжение функциональной. Разбирается управление процессами через PCB и очереди планирования, а также управление памятью.
Роль архитектурных паттернов в развитии больших программных систем на примерах из архитектуры зданий. Вводится понятие функциональной архитектуры операционной системы.
Переход от ОС под конкретное железо к переносимым универсальным операционным системам вроде UNIX. Показывается роль языков высокого уровня в унификации аппаратных платформ.