Курс знакомит студентов с основами устройства и
реализации операционных систем. Темы курса включают обзор компонентов
операционной системы, вопросы взаимного исключения и синхронизации,
реализацию процессов, алгоритмы планирования, управление памятью и
файловые системы.
Требования к слушателям: CS220 "Архитектура
ЭВМ"
Описание курса:
Обзор операционных систем: роль и задачи операционных систем;
история развития операционных систем; функциональность типичной
операционной системы; классификация операционных систем (по назначению,
по режиму обработки задач, по особенностям архитектуры, по способам
взаимодействия с пользователем); вопросы, влияющие на устройство ОС
(эффективность, устойчивость, гибкость, переносимость, безопасность,
совместимость)
Основные принципы работы операционных систем: методы структуризации;
абстракции, процессы и ресурсы; создание программных интерфейсов
приложений; организация устройств; прерывания; переключения между
режимами работы пользователя/супервизора
Параллелизм: понятие параллельного исполнения; состояния и диаграммы
состояний; структуры, используемые реализацией параллелизма (таблицы
готовности, блоки управления процессом и т.д.); диспетчеризация и
переключение контекстов; обработка прерываний при наличии параллельного
исполнения; потоки
Взаимное исключение: описание проблемы взаимного исключения;
обнаружение и предотвращение блокировок; стратегии решения проблемы;
модели и механизмы (семафоры, мониторы, переменные состояния, рандеву);
задача поставщика-потребителя; синхронизация; особенности
мультипроцессорных систем
Взаимодействие процессов: модели и механизмы (сигналы, сообщения,
очереди сообщений, файлы, именованные каналы, почтовые ящики, сокеты)
Планирование: вытесняющее и невытесняющее планирование; политики
планирования; процессы и нити; особенности систем реального времени
Управление памятью: обзор физической памяти и управляющей
аппаратуры; оверлеи, подкачка и разделы; страничная организация памяти и
сегментация; распределенная разделяемая организация памяти; стратегии
подкачки и выгрузки страниц; рабочие множества и пробуксовка;
кэширование
Управление устройствами: характеристики последовательных и
параллельных устройств; абстрактные понятия различий устройств;
стратегии буферизации; прямой доступ к памяти; восстановление после
сбоев
Ввод-вывод: основные концепции организации ввода-вывода,
многослойная модель подсистемы ввода-вывода; синхронный и асинхронный
ввод-вывод; драйверы устройств; алгоритмы буферизации (кэширования)
Файловые системы: основные понятия (данные, метаданные, операции,
организация, буферизация, последовательные файлы и файлы с
непоследовательным размещением); содержание и структура каталогов;
методы работы файловой системы (сегментирование дисковой памяти,
монтирование и демонтирование, виртуальные файловые системы); файлы,
отображаемые в память; файловые системы специального назначения;
именование, поиск и доступ; стратегии резервного копирования
Безопасность и защита в ОС: обзор системы безопасности ОС;
разделение политики безопасности и механизма ее реализации; методы и
устройства обеспечения безопасности; защита, доступ и аутентификация;
модели защиты; защита памяти; шифрование; управление
восстановлением