Операционные системы
Операционные системы
- Слайды лекций. Часть 1. Часть 2. Часть 3. Часть 4.
- Видео лекций
- Вопросы к экзамену
Лабораторные работы (Продвинутый трек)
Задания на лабораторные работы (pdf)
- Задание 1. Введение в Xv6
- Задание 2. Аллокатор
- Задание 3. Copy-on-write fork
- Задание 4.1 Файловая система в Linux
- Задание 4.2 Диспетчер корутин
Дополнительные файлы
Задания 1-3: Модификация учебной ОС Xv6: указания к ЛР, исходники, тестовая система
- Репозиторий: https://github.com/secs-dev/xv6-riscv
- Архив: os-lab-advanced-1-2-3-xv6.zip
Задание 4.1: указания к ЛР, шаблон с модулем ядра "привет, мир"
- Репозиторий: https://github.com/secs-dev/os-course/tree/main/lab/vtfs
- Архив: os-lab-advanced-4-linux-fs.zip
Задание 4.2: шаблон проекта
- Репозиторий: https://github.com/vityaman-edu/coroed
- Архив: os-lab-advanced-4-fiber.zip
Лабораторные работы (Базовый трек)
Лабораторная работа №1
Основная цель лабораторной работы - знакомство с системными инструментами анализа производительности и поведения программ. Для этого предлагается для выданной по варианту программы выяснить следующую информацию:
- Количество потоков создаваемое программой;
- Список файлов и сетевых соединений с которыми работает программа
- Карту памяти процесса;
- Содержимое передаваемых по сети данных;
- Построить графики:
- Потребления программой cpu;
- Нагрузки генерируемой программой на подсистему ввода-вывода;
- Нагрузки генерируемой программой на сетевую подсистему.
- Смены состояния исполнения потоков;
Содержание отчета:
- Описание шагов выполненных для сбора информации (включая исходные тексты всех использованных скриптов и вспомогательных программ);
- Полученные графики;
- Выводы по работе.
Темы для подготовки к защите лабораторной работы:
- Структура процесса;
- Виртуальная память;
- Системные утилиты сбора статистики ядра;
- Основы ввода-вывода (блочный и последовательный ввод-вывод);
- Файловая система procfs;
- Использование утилиты strace, ltrace, bpftrace;
- Профилирование и построение flamegraph'а и stap;