Архитектура компьютеров и операционные системы 2026 — различия между версиями
(Новая страница: «==О курсе== Операционные системы — неотъемлемая часть всех компьютеров, и любая прикладн…») |
|||
| (не показаны 4 промежуточные версии этого же участника) | |||
| Строка 16: | Строка 16: | ||
==Программа курса== | ==Программа курса== | ||
Формат: очный | Формат: очный | ||
| + | |||
Форма контроля: дифференцированный зачёт | Форма контроля: дифференцированный зачёт | ||
| − | + | {|class="wikitable" | |
| + | |- | ||
| + | !Неделя!!Лекции!!Домашние задания и контесты | ||
| + | |- | ||
| + | |1||Вводная лекция: устройство компьютера, что такое ОС, системные вызовы, POSIX и libc.|| | ||
| + | |- | ||
| + | |2||Представление данных: целые и вещественные числа, IEEE 754, кодировки, порядок байт, выравнивание структур.|| | ||
| + | |- | ||
| + | |3||Файлы: файл как абстракция, VFS, файловые дескрипторы, основные системные вызовы.|| | ||
| + | |- | ||
| + | |4||Ассемблер x86, часть 1: регистры, флаги, основные инструкции.|| | ||
| + | |- | ||
| + | |5||Ассемблер x86, часть 2: стек, соглашения о вызовах, стековый кадр, x87 и SIMD.|| | ||
| + | |- | ||
| + | |6||Память: сегментная модель, виртуальная память и многоуровневые таблицы страниц, mmap и page cache.|| | ||
| + | |- | ||
| + | |7||Процессы: модель процесса, ELF, состояния и атрибуты.|| | ||
| + | |- | ||
| + | |8||Синхронизация, часть 1: модель памяти, атомики, базовые примитивы, lock-free и ABA-проблема.|| | ||
| + | |- | ||
| + | |9||Синхронизация и IPC, часть 2: сигналы, межпроцессное взаимодействие.|| | ||
| + | |- | ||
| + | |10||Компьютерные сети, часть 1: модель OSI, Ethernet, IP, TCP и UDP.|| | ||
| + | |- | ||
| + | |11-12||Компьютерные сети, часть 2: DHCP, маршрутизация, автономные системы, NAT, туннелирование.|| | ||
| + | |- | ||
| + | |13||Контейнеры в Linux: namespaces, cgroups, образы, как устроен Docker.|| | ||
| + | |- | ||
| + | |14||Статическая и динамическая линковка, релокации.|| | ||
| + | |- | ||
| + | |15||Лекция на свободную тему.|| | ||
| + | |} | ||
| + | |||
| + | == Коммуникация == | ||
| + | За каждой группой закреплён семинарист и ассистент, к которым можно обращаться за помощью. | ||
| + | |||
| + | Чат курса (Telegram) | ||
| + | |||
| + | == Прогресс студентов == | ||
| + | Таблица с оценками, доступная студентам | ||
==Критерии оценивания и формы контроля успеваемости== | ==Критерии оценивания и формы контроля успеваемости== | ||
| Строка 29: | Строка 69: | ||
==Материалы курса== | ==Материалы курса== | ||
| − | [Запись курса] | + | |
| + | [https://gitlab.carzil.ru/mipt-os-basic/lectures Лекции и презентации курса 2025/2026 года] | ||
| + | |||
| + | [Запись курса 2026/2027] | ||
Текущая версия на 12:39, 19 мая 2026
Содержание
О курсе
Операционные системы — неотъемлемая часть всех компьютеров, и любая прикладная программа исполняется в рамках, которые задаёт ОС. На курсе АКОС мы изучаем, как взаимодействовать с операционной системой из пользовательского кода: какие у неё интерфейсы, какие абстракции она предоставляет и как этим грамотно пользоваться.
В рамках курса вы:
- разберётесь, как процессор исполняет код, и научитесь читать x86-ассемблер;
- поймёте, как устроена память процесса — от стека и кучи до виртуальной памяти и mmap;
- освоите работу с файлами, процессами, сигналами и IPC через системные вызовы;
- узнаете, что такое модель памяти и почему атомики и lock-free сложнее, чем кажется;
- разберётесь, как работают TCP/IP, NAT и DHCP — и почему «интернет вообще работает»;
- увидите изнутри, что такое контейнер и как Docker использует возможности ядра Linux;
- поймёте, что делает компоновщик и почему .so/.a — это не одно и то же.
Пререквизиты (что студенты должны знать и уметь, приступая к курсу)
Программа курса
Формат: очный
Форма контроля: дифференцированный зачёт
| Неделя | Лекции | Домашние задания и контесты |
|---|---|---|
| 1 | Вводная лекция: устройство компьютера, что такое ОС, системные вызовы, POSIX и libc. | |
| 2 | Представление данных: целые и вещественные числа, IEEE 754, кодировки, порядок байт, выравнивание структур. | |
| 3 | Файлы: файл как абстракция, VFS, файловые дескрипторы, основные системные вызовы. | |
| 4 | Ассемблер x86, часть 1: регистры, флаги, основные инструкции. | |
| 5 | Ассемблер x86, часть 2: стек, соглашения о вызовах, стековый кадр, x87 и SIMD. | |
| 6 | Память: сегментная модель, виртуальная память и многоуровневые таблицы страниц, mmap и page cache. | |
| 7 | Процессы: модель процесса, ELF, состояния и атрибуты. | |
| 8 | Синхронизация, часть 1: модель памяти, атомики, базовые примитивы, lock-free и ABA-проблема. | |
| 9 | Синхронизация и IPC, часть 2: сигналы, межпроцессное взаимодействие. | |
| 10 | Компьютерные сети, часть 1: модель OSI, Ethernet, IP, TCP и UDP. | |
| 11-12 | Компьютерные сети, часть 2: DHCP, маршрутизация, автономные системы, NAT, туннелирование. | |
| 13 | Контейнеры в Linux: namespaces, cgroups, образы, как устроен Docker. | |
| 14 | Статическая и динамическая линковка, релокации. | |
| 15 | Лекция на свободную тему. |
Коммуникация
За каждой группой закреплён семинарист и ассистент, к которым можно обращаться за помощью.
Чат курса (Telegram)
Прогресс студентов
Таблица с оценками, доступная студентам
Критерии оценивания и формы контроля успеваемости
На каждую тему — контест с 3–4 практическими задачами; по каждой сданной задаче проводится устная защита у семинариста или ассистента.
Команда курса
Лектор курса: Андреев Александр Николаевич
Материалы курса
Лекции и презентации курса 2025/2026 года
[Запись курса 2026/2027]