Операционные системы и язык C
Курс для подготовки к экзамену по операционным системам: язык C с нуля, устройство ядра, процессы и потоки, сигналы, виртуальная память и TLB, файловые системы и VFS, разделяемая память и синхронизация, пакеты. Теория с наглядными схемами и симуляторами, задания с автопроверкой и подробные разборы всех типов экзаменационных задач.
Язык C: основы
Всё, что нужно, чтобы свободно читать и писать системные программы на C.
- Первая программа на C и этапы компиляции
- Типы данных, переменные, printf и scanf
- Операторы, условия и циклы
- Функции, области видимости и классы памяти
- Указатели и адресная арифметика
- Массивы и строки
- Динамическая память: malloc, free и ошибки памяти
- Структуры, typedef, объединения и перечисления
- Препроцессор, заголовочные файлы и make
- Компоновка, статические и динамические библиотеки, ldd
- Системные вызовы из C, errno и файловый ввод-вывод
Вычислительная система и ядро
Из каких уровней состоит компьютерная система и как программа общается с ядром.
Процессы и потоки
Как ядро создаёт, запускает, планирует и завершает процессы.
Сигналы
Асинхронные уведомления процессов: свойства каждого сигнала, обработка и блокировка.
Виртуальная память
Страницы, таблицы страниц, TLB, страничные отказы и замещение страниц.
Файловые системы
Файлы и дескрипторы, индексные дескрипторы, ссылки, VFS и монтирование.
Взаимодействие процессов и синхронизация
Каналы, гонки, критические секции, семафоры, мьютексы и атомарные операции.
Пакеты и программное обеспечение
Как устанавливаются программы: пакеты, зависимости, скрипты и конфигурационные файлы.
Подготовка к экзамену
Подробные разборы всех задач экзамена и пробный экзамен с автопроверкой.
- Разбор задачи 1: таблица свойств сигналов
- Разбор задачи 2: уровни вычислительной системы
- Разбор задач 3 и 4: fork, потоки, init, VFS и ссылки
- Разбор задач 5 и 6: биты A/D и пакеты
- Разбор задачи 7: TLB и служебные обращения к памяти
- Разбор задачи 8: fork, разделяемая память и синхронизация
- Пробный экзамен