Архитектура компьютеров и операционные системы 2026: различия между версиями

Материал из Public ATP Wiki
Перейти к навигации Перейти к поиску
Новая страница: «==О курсе== Операционные системы — неотъемлемая часть всех компьютеров, и любая прикладн…»
 
 
(не показано 11 промежуточных версий этого же участника)
Строка 13: Строка 13:


Пререквизиты (что студенты должны знать и уметь, приступая к курсу)
Пререквизиты (что студенты должны знать и уметь, приступая к курсу)
==Команда курса==
'''Лектор курса:''' Андреев Александр Николаевич
'''Семинаристы:'''
<br>Манаков Данила Дмитриевич
<br>Исаченко Павел Игоревич
<br>Касымалиева Жанель
<br>Сенин Игорь Александрович
<br>Белов Максим Алексеевич
<br>Калмыков Андрей Сергеевич
<br>Драгун Константин Юрьевич
<br>Павлюковец Виталий Андреевич
<br>Лабутин Антон Александрович


==Программа курса==
==Программа курса==
Формат: очный
'''Формат:''' очный
Форма контроля: дифференцированный зачёт
 
 
'''Форма контроля:''' дифференцированный зачёт
 
{|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)
 
== Прогресс студентов ==
Таблица с оценками, доступная студентам


==Критерии оценивания и формы контроля успеваемости==
==Критерии оценивания и формы контроля успеваемости==
Строка 24: Строка 79:
по каждой сданной задаче проводится устная защита у семинариста или ассистента.
по каждой сданной задаче проводится устная защита у семинариста или ассистента.


==Команда курса==
==Материалы курса==
Лектор курса: Андреев Александр Николаевич


==Материалы курса==
[https://gitlab.carzil.ru/mipt-os-basic/lectures Лекции и презентации курса 2025/2026 года]
[Запись курса]

Текущая версия от 11:26, 14 августа 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 года