🐧

Операционные системы и язык C

Курс для подготовки к экзамену по операционным системам: язык C с нуля, устройство ядра, процессы и потоки, сигналы, виртуальная память и TLB, файловые системы и VFS, разделяемая память и синхронизация, пакеты. Теория с наглядными схемами и симуляторами, задания с автопроверкой и подробные разборы всех типов экзаменационных задач.

49уроков
268заданий
Начать обучение →
пройден начат не начат в разработке
Модуль 1

Язык C: основы

Всё, что нужно, чтобы свободно читать и писать системные программы на C.

  1. Первая программа на C и этапы компиляции 5 зад. · 20 мин
  2. Типы данных, переменные, printf и scanf 6 зад. · 25 мин
  3. Операторы, условия и циклы 6 зад. · 25 мин
  4. Функции, области видимости и классы памяти 6 зад. · 25 мин
  5. Указатели и адресная арифметика 6 зад. · 30 мин
  6. Массивы и строки 5 зад. · 25 мин
  7. Динамическая память: malloc, free и ошибки памяти 5 зад. · 25 мин
  8. Структуры, typedef, объединения и перечисления 5 зад. · 25 мин
  9. Препроцессор, заголовочные файлы и make 5 зад. · 25 мин
  10. Компоновка, статические и динамические библиотеки, ldd 5 зад. · 30 мин
  11. Системные вызовы из C, errno и файловый ввод-вывод 5 зад. · 30 мин
Модуль 2

Вычислительная система и ядро

Из каких уровней состоит компьютерная система и как программа общается с ядром.

  1. Что такое операционная система 4 зад. · 20 мин
  2. Уровни вычислительной системы 4 зад. · 30 мин
  3. Режим ядра, прерывания и системные вызовы 5 зад. · 30 мин
  4. Структура ядра, модули, /proc и /sys 5 зад. · 20 мин
  5. Загрузка системы и процесс init 5 зад. · 20 мин
Модуль 3

Процессы и потоки

Как ядро создаёт, запускает, планирует и завершает процессы.

  1. Процесс, его контекст и состояния 5 зад. · 25 мин
  2. Системный вызов fork: что делает ядро 6 зад. · 35 мин
  3. exec, exit и wait: зомби и сироты 6 зад. · 30 мин
  4. Потоки и их отличие от процессов 5 зад. · 30 мин
  5. Группы процессов, сеансы и терминал 5 зад. · 30 мин
  6. Планирование процессов 5 зад. · 25 мин
Модуль 4

Сигналы

Асинхронные уведомления процессов: свойства каждого сигнала, обработка и блокировка.

  1. Что такое сигналы и действия по умолчанию 6 зад. · 30 мин
  2. Обработка, блокировка и игнорирование сигналов 6 зад. · 35 мин
  3. Источники сигналов: аппаратура, ядро, программист 5 зад. · 30 мин
  4. Сигналы реального времени и «слипание» 5 зад. · 25 мин
  5. Практикум: таблица свойств сигналов 5 зад. · 30 мин
Модуль 5

Виртуальная память

Страницы, таблицы страниц, TLB, страничные отказы и замещение страниц.

  1. Виртуальная память и адресные пространства 4 зад. · 25 мин
  2. Страничная организация и таблицы страниц 6 зад. · 30 мин
  3. Многоуровневые и инвертированные таблицы страниц 6 зад. · 30 мин
  4. TLB и подсчёт обращений к памяти 7 зад. · 40 мин
  5. Страничные отказы, замещение страниц, биты A и D 6 зад. · 40 мин
  6. mmap, разделяемая память и копирование при записи 5 зад. · 35 мин
Модуль 6

Файловые системы

Файлы и дескрипторы, индексные дескрипторы, ссылки, VFS и монтирование.

  1. Файлы, каталоги и файловые дескрипторы 5 зад. · 30 мин
  2. Индексные дескрипторы, жёсткие и символические ссылки 5 зад. · 30 мин
  3. Виртуальная файловая система (VFS) 5 зад. · 35 мин
  4. Блочные устройства, разделы и монтирование 5 зад. · 25 мин
Модуль 7

Взаимодействие процессов и синхронизация

Каналы, гонки, критические секции, семафоры, мьютексы и атомарные операции.

  1. Каналы: pipe и FIFO 5 зад. · 30 мин
  2. Гонки и критические секции 5 зад. · 30 мин
  3. Семафоры, мьютексы, атомарные операции и взаимоблокировки 6 зад. · 40 мин
Модуль 8

Пакеты и программное обеспечение

Как устанавливаются программы: пакеты, зависимости, скрипты и конфигурационные файлы.

  1. Пакеты и пакетные менеджеры 5 зад. · 25 мин
  2. Скрипты пакета, reinstall и конфигурационные файлы 5 зад. · 30 мин
Модуль 9

Подготовка к экзамену

Подробные разборы всех задач экзамена и пробный экзамен с автопроверкой.

  1. Разбор задачи 1: таблица свойств сигналов 5 зад. · 35 мин
  2. Разбор задачи 2: уровни вычислительной системы 4 зад. · 25 мин
  3. Разбор задач 3 и 4: fork, потоки, init, VFS и ссылки 5 зад. · 40 мин
  4. Разбор задач 5 и 6: биты A/D и пакеты 5 зад. · 30 мин
  5. Разбор задачи 7: TLB и служебные обращения к памяти 9 зад. · 40 мин
  6. Разбор задачи 8: fork, разделяемая память и синхронизация 8 зад. · 50 мин
  7. Пробный экзамен 11 зад. · 60 мин