|
|
| (не показана 1 промежуточная версия этого же участника) |
| Строка 1: |
Строка 1: |
| = Общие сведения =
| |
| * Формат: очный
| |
| * Форма контроля: дифференцированный зачет
| |
| * Запись вводного занятия
| |
|
| |
| = Команда курса =
| |
| * Андреев Александр Николаевич, лектор
| |
| * Манаков Данила Дмитриевич, ассистент
| |
| * Копанов Антон Олегович, ассистент
| |
| * Лыков Иван Александрович, ассистен
| |
|
| |
| == План курса ==
| |
|
| |
| * 1. Вводная лекция
| |
| * 2. Процессор и I/O устройства
| |
| * 3. Прерывания процессора и работа со временем
| |
| * 4. Работа с памятью в ОС: виртуальная память, кэши процессора, buddy и SLAB аллокаторы
| |
| * 5. Аллокация памяти в ОС
| |
| * 6. Процессы: пространство пользователя, переключение контекста и системные вызовы
| |
| * 7. Мультипроцессорность и особенности синхронизации в ОС
| |
| * 8. Файловые системы: FAT, Unix FFS и семество ext*, ReiserFS, log-structured, CoW
| |
|
| |
| Операционные системы – неотъемлимая часть всех компьютеров. На АКОС вы уже изучали как взаимодействовать с ОС и какие-то базовые принципы их построения. В курсе «Операционные системы 2» мы тоже будем рассматривать принципы построения современных ОС, но уже с «обратной стороны» – со стороны пространства ядра.
| |
|
| |
| Мы с вами:
| |
| * узнаем как ОС управляют виртуальной и физической памятью;
| |
| * изучим как они взаимодействуют с дисками, контроллерами прерываний и другой периферией;
| |
| * на примере актуальных файловых систем поймём как хранятся файлы и каталоги, и как устроен кэш дисковых страниц в Linux;
| |
| * посмотрим как создаются, планируются и изолируются процессы;
| |
| * вспомним уязвимость Meltdown, узнаем почему же её фикс замедляет работу всей ОС, причём здесь TLB и как с этим можно бороться;
| |
| * заново пройдём привычные примитивы синхронизации и увидим новые сложности, которые появляются в контексте ОС;
| |
| * и, конечно, почувствуем себя немного kernel hacker`ами 😏
| |
|
| |
| Курс состоит из семинаров, на которых мы будем изучать теоретический материал и реализацию игрушечной ОС. Также будет несколько лабораторных работ, в ходы выполнения которых вы реализуете недостающий функционал в HellOS.
| |
|
| |
| == Важные ссылки == | | == Важные ссылки == |
| * '''[https://docs.google.com/forms/d/e/1FAIpQLSdWprzsmMgWij2uAfhvRnga8aidd58wE8JgbW88g5oxtHuEfw/viewform?usp=header Регистрация на курс]'''
| |
| Ограничений по регистрации на курс нет.
| |
| * '''[https://t.me/+e7rYD9f8-Hc1MGI6 Телеграм-чат курса]''' | | * '''[https://t.me/+e7rYD9f8-Hc1MGI6 Телеграм-чат курса]''' |
| * '''[https://gitlab.carzil.ru/os-advanced/lectures Материалы курсa]'''
| |
|
| |
| == Требования ==
| |
| * Физтех-почта (домен phystech.edu)
| |
| * Аккаунт на GitHub
| |
| * Ноутбук на семинарах
| |