Встречается на собеседованиях • сегодня

Какой вывод сделаешь, если программа проводит много времени в Kernel space и мало времени в User space

Программа проводит много времени в Kernel space, когда часто выполняет системные вызовы или операции ввода-вывода (I/O-bound). Это может указывать на:

  1. Интенсивные I/O операции — чтение/запись файлов, сетевые запросы.
  2. Системные вызовы — например, частые fork(), exec(), mmap().
  3. Блокировки — ожидание ресурсов (мьютексы, семафоры).
  4. Драйверы устройств — работа с "тяжелыми" устройствами (GPU, диски).

Пример диагностики в Python:

python
import cProfile

def io_heavy():
    with open('large_file.txt', 'r') as f:
        data = f.read()  # Системный вызов read()

cProfile.run('io_heavy()', sort='tottime')

Вывод cProfile покажет время в системных вызовах.

Что делать:

  • Оптимизировать I/O (буферизация, асинхронность).
  • Уменьшить число системных вызовов (например, os.walkscandir).
  • Проверить на contention (GIL, блокировки).

Если CPU-bound задача "висит" в Kernel — возможно, проблема в драйверах или настройках ОС.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы