Содержание
- Краткое резюме
- Что такое операционная система?
- Почему ОС важны в современном мире?
- Основные темы курса CS162
- Практическая работа и сотрудничество
- Актуальные проблемы в современных ОС
- Логистика курса и требования
- Преподавательская команда и ресурсы
- Итог
Краткое резюме
- Операционные системы (ОС) — это слой программного обеспечения, который обеспечивает программам удобный и единообразный доступ к аппаратным ресурсам.
- ОС выполняет роль иллюзиониста (создавая удобные абстракции ресурсов) и рефери (управляя доступом, защитой и координацией ресурсов).
- В современном мире с миллиардами устройств и сложными сетями ОС обеспечивает работу всей системы и поддерживает многозадачность, безопасность и взаимодействие.
- Главные темы курса: процессы, потоки, планирование, виртуальная память, файловые системы, взаимодействие с устройствами, сети, безопасность и распределённые системы.
- Практическая часть курса: работа с системным программированием на C, управление проектами в группах, отладка, использование систем контроля версий.
- Важный аспект — сложность современных систем и новые вызовы, связанные с многопоточностью, масштабируемостью и надёжностью.
Что такое операционная система?
Основные функции ОС
ОС — это специальный программный слой, который:
- Предоставляет приложениям абстракции сложного оборудования, чтобы им было удобно работать в едином среде.
- Обеспечивает защищённый доступ к ресурсам — памяти, процессорам, устройствам ввода-вывода.
- Управляет одновременным запуском множества процессов, создавая иллюзию выделенного процессора для каждого.
- Предоставляет базовые службы: файловая система, сетевые протоколы, интерфейсы для работы с устройствами.
- Обеспечивает безопасность и изоляцию процессов.
- Выполняет управление ресурсами — планирование, синхронизацию, защиту.
«Операционная система — это иллюзионист, создающий удобные модели ресурсов, и арбитр, который управляет их защитой и совместным использованием.»
Абстракции ОС
- Процесс — ключевая сущность, содержащая адресное пространство, один или несколько потоков, дескрипторы файлов и многое другое.
- ОС даёт пользователю видимость, что у него «свой собственный компьютер», хотя на самом деле ресурсы разделяются.
- Создаёт виртуальные машины на базе реального оборудования — например, виртуальная память, виртуальные файловые системы, виртуальные сетевые интерфейсы.
Почему ОС важны в современном мире?
Масштабы и сложность
- В мире насчитывается более 4,5 миллиардов устройств, соединённых в глобальную сеть Интернет.
- Каждый пользователь владеет десятками или сотнями устройств: смартфоны, ноутбуки, авто с сотнями процессоров, смарт-таунхаусы, и др.
- При этом все устройства связаны и взаимодействуют через ОС и сетевые протоколы.
«Интернет напоминает огромный мозг с миллиардом связей и множеством резервов — ОС помогают обуздать эту сложность.»
Многоуровневая защита и виртуализация
- ОС изолирует процессы друг от друга, защищая память и ресурсы.
- Реализует механизмы виртуализации — каждый процесс чувствует себя единственным владельцем ресурсов.
- Помогает избежать сбоев из-за плохого поведения отдельного приложения.
Распределённые системы и масштабирование
- Курс рассматривает не только локальные ОС, но и распределённые файловые системы, облачные хранилища и сетевые сервисы.
- Пример peer-to-peer систем, глобальных распределённых хранилищ, обеспечивающих консистентность и надёжность в огромных масштабах.
Основные темы курса CS162
Управление процессами и потоками
- Что такое процесс и как он создаётся.
- Планирование задач на едином процессоре для создания иллюзии многозадачности.
- Защита процессов и предотвращение конфликтов.
- Конкурентность и синхронизация: блокировки, взаимные исключения, дедлоки.
Виртуальная память
- Механизмы разделения и изоляции адресного пространства.
- Структуры данных: таблицы страниц, TLB.
- Защита памяти и управление кешем.
Файловые системы и устройства
- Абстракция файлов поверх дисков или других хранилищ.
- Работа с устройствами, управление вводом-выводом.
- Кэширование и буферизация для повышения производительности.
Сеть и коммуникации
- Основные протоколы коммуникации.
- Сокеты и маршрутизация.
- Безопасность на сетевом уровне, SSL и доверенные соединения.
Безопасность и надёжность
- Защита от несанкционированного доступа.
- Стратегии обработки ошибок и аварийных ситуаций.
- Мониторинг и восстановление.
Практическая работа и сотрудничество
- Студенты будут писать системные программы на С, используя Unix-подобную среду.
- Овладеют инструментами: git, отладка, инструменты построения.
- Работа в группах (по 4 человека), требующая коммуникации и взаимодействия, с обязательным использованием камер для поддержания живого контакта.
- Выполнение домашних заданий и проектов, включая проекты по виртуализации, файловым системам и параллелизму.
Актуальные проблемы в современных ОС
Сложность систем
- Современные ОС состоят из миллионов строк кода, сопоставимых по сложности с проектами вроде Firefox или Android.
- Программное обеспечение работает на разнообразном оборудовании, с разной перспективой отказов и под воздействием потенциальных атак.
«Сложность современных систем — это величайший вызов. Мы учимся создавать системы, которые работают не просто случайно, а по принципу правильного дизайна.»
Многопоточность и многопроцессорность
- Производительность перестала расти с частотой процессоров из-за проблем с потреблением энергии и теплом.
- Появились многоядерные процессоры с десятками и сотнями потоков.
- ОС должны эффективно управлять параллелизмом, синхронизацией и балансировкой нагрузки.
Эра сети и облаков
- Сеть и облачные технологии меняют представление об ОС — теперь это распределённые программные системы.
- Курс позволит взглянуть на ОС и с этой стороны, включая обсуждения облачных систем и их взаимодействие.
Логистика курса и требования
- Курс полностью виртуальный с лекциями и секциями по Zoom.
- Требуется постоянное участие на секциях с включёнными камерами — для эффективного взаимодействия и поддержания командного духа.
- Ограничение класса — 428 студентов, ранний срок отсечения для стабильности групп.
- Домашние задания и проекты с акцентом на глубокое понимание и практическую реализацию.
- Строгие политики честности, ограничивающие обмен кодом между группами.
Преподавательская команда и ресурсы
- Преподаватель — профессор Джон Кубатович, имеющий опыт в разработке ОС, распределённых систем, облачных технологий, квантовых вычислений.
- Помощь окажут сильная команда ТАС.
- Веб-сайт, площадка Piazza, официальные учебники и дополнительные материалы доступны всем студентам.
- Планируется обзорный семинар по языку C и системному программированию.
Итог
Операционные системы — это фундаментальный компонент современных вычислительных технологий, обеспечивающий структурированный, безопасный и эффективный доступ к ресурсам компьютеров и распределённых систем. Курс CS162 призван дать студентам глубокое понимание концепций ОС, практические навыки программирования и управления сложными системами, а также подготовить к вызовам постоянно меняющегося технологического мира.
«Без операционных систем сегодня весь этот гигантский и сложный мир устройств превратился бы в хаос. Они — то, что делает всё это возможным.»