Получить доступ

Процессы, потоки и память

Основа с Junior

Процесс и поток, стек и куча, виртуальная память, системные вызовы и файловые дескрипторы.

Что важно знать

  • Процесс — изолированное адресное пространство и ресурсы; поток — единица выполнения внутри процесса, потоки делят память.
  • Стек — локальные переменные и вызовы, у каждого потока свой; куча — объекты, общая для потоков.
  • Виртуальная память: у процесса иллюзия собственной памяти, ядро отображает её на физическую страницами.
  • Системный вызов — переход в ядро (чтение файла, сеть); дороже обычного вызова функции.
  • Файловый дескриптор — номер открытого файла или сокета; у процесса их число ограничено.
  • Переключение контекста между потоками стоит времени — тысячи потоков на ядро работают медленнее, чем десятки.

Критерии освоения

Junior ≈ 8 ч

  • Объясняет разницу процесса и потока и что у них общее
  • Объясняет, где хранятся локальные переменные и объекты — стек и куча

Практика. Запустить программу с несколькими потоками и посмотреть их в top -H или диспетчере задач, объяснить увиденное.

Middle ≈ 6 ч

  • Объясняет виртуальную память, переключение контекста и цену системного вызова
  • Находит причину «Too many open files» и утечку дескрипторов

Практика. Воспроизвести исчерпание файловых дескрипторов в учебном сервисе, найти утечку через lsof и исправить.

Вопросы с собеседований

← Вся карта «Backend-разработчик»

Закрытая бета

Знать тему — половина дела

На живом собеседовании sotto слышит вопрос интервьюера и показывает короткий ответ и план. Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем