Direct I/O instructions - Instrucciones privilegiadas

Direct I/O instructions - Instrucciones privilegiadas

de Juan Ignacio Sanchez Sampayo -
Número de respuestas: 1

Buenas, tengo la siguiente consulta:

Si la forma de acceso a los registros de una controladora se hace de forma directa, a través de instrucciones como IN / OUT, ¿Se ven penalizaciones de rendimiento en los dispositivos asociados a dicha controladora?

Mi duda viene por el lado de que IN y OUT deben ser instrucciones privilegiadas y estas conllevan toda una serie de pasos adicionales para aumentar el nivel de ejecución, como dice en la página 9 de las diapositivas:

Como ejemplo: Parar el procesador, Cambiar el vector de interrupciones, etc., o como sea que se haya implementado el protocolo se seguridad.

¿Esto es así, o no estoy entendiendo algo?

Saludos

En respuesta a Juan Ignacio Sanchez Sampayo

Re: Direct I/O instructions - Instrucciones privilegiadas

de Jorge Merlino -

No es así. Lo único que hace la cpu es verificar si esta en modo monitor cada vez que ejecuta una instrucción privilegiada. Es solo chequear el valor de un bit. Si no está en modo monitor genera una excepción.

A lo que se refiere la diapositiva 9 es que se debe tener algún protocolo que haga que cada vez que un proceso de usuario quiera hacer I/O se debe pasar el control a un proceso de confianza (el sistema operativo) para que lo haga por él. Ese proceso es una system call que vamos a ver en detalle la clase que viene. Pero esto se hace siempre que un proceso de usuario quiere hacer I/O. El mecanismo no es que trate de hacerla el proceso mismo y que el sistema operativo lo intercepte de alguna manera. El proceso de usuario debe pedirle al sistema operativo que quiere hacer I/O usando un system call. Esto vale igual para memory mapped o direct I/O. El proceso de usuario no tiene ni por que saber como maneja la I/O la arquitectura.