¿La hiperllamada tarda el mismo tiempo que una llamada al sistema Linux?

¿La hiperllamada tarda el mismo tiempo que una llamada al sistema Linux?

Desde el sitio web de Xen,

Una hiperllamada es para una llamada al sistema lo que un hipervisor es para un sistema operativo. Alternativamente, una hiperllamada es para un hipervisor lo que una llamada al sistema es para un kernel. Una hiperllamada es una trampa de software desde un dominio al hipervisor, al igual que una llamada al sistema es una trampa de software desde una aplicación al kernel. Los dominios utilizarán hiperllamadas para solicitar operaciones privilegiadas, como actualizar tablas de páginas. Al igual que una llamada al sistema, la hiperllamada es sincrónica, pero la ruta de retorno desde el hipervisor al dominio utiliza canales de eventos. Un canal de eventos es una cola de notificaciones asincrónicas y notifica el mismo tipo de eventos que las interrupciones de notificación en el hardware nativo. Cuando se programa un dominio con eventos pendientes en su cola, se llama al controlador de devolución de llamada de eventos del sistema operativo para que tome las medidas adecuadas.

  • ¿La hiperllamada toma el mismo tiempo que una llamada al sistema, asumiendo que ambos están haciendo lo mismo?
  • ¿Existe alguna diferencia en la forma en que el hipervisor maneja una hiperllamada y un kernel de Linux que maneja la llamada al sistema de la misma manera?

Respuesta1

Una hiperllamada es más lenta que una llamada al sistema. Esto se debe a que la hiperllamada primero debe llegar al host/hipervisor y luego navegar hasta la CPU para poder ejecutarse. Lo mismo ocurre con el camino de regreso. De hecho, los puntos de referencia en un núcleo similar, elhipernúcleohan demostrado que una hiperllamada tarda entre 3 y 4 veces más (página 15 del pdf de la página vinculada).

información relacionada