Skip to main content

Системные вещи. Ответы Часть 3.

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

Что такое виртуальная память?

Виртуальная память  — технология управления памятью для многозадачных операционных систем. Позволяет увеличить эффективность использования памяти несколькими одновременно работающими программами, организовав множество независимых адресных пространств, и обеспечить защиту памяти между различными приложениями. Также позволяет программисту использовать больше памяти, чем установлено в компьютере, за счет откачки неиспользуемых страниц на вторичное хранилище.

Применение механизма виртуальной памяти позволяет:

  • упростить адресацию памяти клиентским программным обеспечением;
  • рационально управлять оперативной памятью компьютера (хранить в ней только активно используемые области памяти);
  • изолировать процессы друг от друга (процесс полагает, что монопольно владеет всей памятью).

Читать дальше

Системные вещи. Ответы Часть 2.

Режим ядра и режим пользователя

Продолжаю публиковать ответы на вопросы на наших собеседованиях. Вопрос про режимы ядра и многие последующие вопросы привязаны к той ОС, в которой вы работаете. В нашей компании активно разрабатываются проекты в Windows и Linux. Однако, так как большинство кандидатов лучше знают Windows, то и ответы будут публиковаться для Windows, если это не оговорено дополнительно. Кстати, по всем системным вещам Windows стоит обращаться к замечательной книге М. Руссинович, Д. Соломон — Внутреннее устройство Microsoft Windows. В ней даны подробные ответы на все системные вопросы нашего собеседования. Если же вам больше интересно как все работает внутри Linux, то я рекомендую обратиться к книге Таненбаум Э. — Современные операционные системы.

Что такое режим ядра и режим пользователя?

Для предотвращения доступа приложений к критически важным данным операционной системы и устранения риска их модификации Windows использует два режима доступа к процессору: пользовательский (user mode) и ядра (kernel mode). Код приложений работает в пользовательском режиме, тогда как код операционной системы (например, системные сервисы и драйверы устройств) — в режиме ядра. B режиме ядра предоставляется доступ ко всей системной памяти и разрешается выполнять любые машинные команды процессора. Предоставляя операционной системе более высокий уровень привилегий, чем прикладным программам, процессор позволяет разработчикам операционных систем реализовать такие архитектуры, которые не дают возможности сбойным приложениям нарушать стабильность работы всей системы.

Читать дальше

Системные вещи. Ответы Часть 1.

Системные вещи

Как и обещал, начинаю потихоньку публиковать ответы. Начнем с системных вещей. Многие вопросы очень обширны и обсуждать их подробно с каждым кандидатом нет смысла.

Стоит отметить, что у нас никто не ждет от кандидатов заученные наизусть статьи и мануалы. Мы хотим узнать, понимает ли человек вопрос и может ли пояснить, что это такое. С первых же вопросов отмечается поведение кандидата. Если человек не знает точного ответа, но пытается думать и рассуждать логически, то это идет ему в плюс. Так же в плюс идет искренний интерес к правильному ответу на вопрос, если кандидат не уверен в своих знаниях или никогда не сталкивался с каким-то понятием или технологией.

Я напишу некоторый минимум, который мы хотели бы услышать от кандидата по каждому вопросу.

Читать дальше