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

Что не так, если программа проводит много времени в Kernel space и мало времени в User space

Если программа проводит много времени в kernel space, это может указывать на одну из следующих проблем:

  1. Частые системные вызовы – например, множество мелких read/write вместо буферизированных операций.
    python
    # Плохо: много мелких системных вызовов
    with open('file.txt', 'r') as f:
        for line in f:  # Каждый read() – syscall
            pass
  1. Блокирующие операции – ожидание I/O (диск, сеть) без асинхронности.

    python
    # Лучше: использовать asyncio/aiohttp для сетевых запросов
    async def fetch():
        async with aiohttp.ClientSession() as session:
            await session.get('http://example.com')
  2. Ошибки синхронизации – contention в многопоточном коде (GIL, lock contention).

  3. Неоптимальные алгоритмы – например, сортировка в ядре через os.system('sort file.txt').

Как диагностировать:

  • Используйте strace -c для подсчета syscall.
  • Профилируйте код (cProfile, py-spy).
  • Проверьте нагрузку на I/O (iotop, vmstat).

Оптимизация: минимизировать syscall, использовать асинхронность, буферизацию (например, io.BufferedReader).

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

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

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

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