Занимает ли гипервызов столько же времени, сколько системный вызов Linux?

Занимает ли гипервызов столько же времени, сколько системный вызов Linux?

С сайта Xen,

Гипервызов для системного вызова — то же самое, что гипервизор для ОС. С другой стороны, гипервызов для гипервизора — то же самое, что системный вызов для ядра. Гипервызов — это программная ловушка из домена в гипервизор, точно так же, как системный вызов — это программная ловушка из приложения в ядро. Домены будут использовать гипервызовы для запроса привилегированных операций, таких как обновление таблиц страниц. Как и системный вызов, гипервызов является синхронным, но обратный путь от гипервизора к домену использует каналы событий. Канал событий — это очередь асинхронных уведомлений, и уведомляет о тех же типах событий, которые прерывают уведомление на собственном оборудовании. Когда запланирован домен с ожидающими событиями в его очереди, вызывается обработчик событий обратного вызова ОС для выполнения соответствующего действия.

  • Занимает ли гипервызов столько же времени, сколько и системный вызов, при условии, что они оба выполняют одно и то же действие?
  • Есть ли разница в том, как гипервизор обрабатывает гипервызовы, по сравнению с ядром Linux, которое обрабатывает системные вызовы таким же образом?

решение1

Гипервызов медленнее системного вызова. Это происходит потому, что гипервызов должен сначала достичь хоста/гипервизора, а затем пройти свой путь к ЦП, чтобы быть выполненным. То же самое и для обратного пути. Фактически, бенчмарки на похожем ядре,Гиперядропоказали, что гипервызов занимает примерно в 3–4 раза больше времени (страница 15 в формате PDF по ссылке).

Связанный контент