Modo de usuario: cuando se inicia un programa en un sistema operativo, digamos Windows, se inicia el programa en modo de usuario. Y cuando un programa en modo usuario solicita ejecutarse, Windows crea un proceso y un espacio de direcciones virtuales (espacio de direcciones para ese proceso). Los programas de modo de usuario tienen menos privilegios que las aplicaciones de modo de usuario y no se les permite acceder a los recursos del sistema directamente. Por ejemplo, si una aplicación en modo de usuario desea acceder a los recursos del sistema, primero deberá pasar por el kernel del sistema operativo mediante llamadas al sistema.
Modo Kernel: El kernel es el programa central en el que se basan todos los demás componentes del sistema operativo, se utiliza para acceder a los componentes de hardware y programar qué procesos deben ejecutarse en un sistema informático y cuándo, y también administra la interacción entre el software y el hardware de la aplicación. . Por lo tanto, es el programa más privilegiado, a diferencia de otros programas, puede interactuar directamente con el hardware. Cuando los programas que se ejecutan en modo de usuario necesitan acceso al hardware, por ejemplo, una cámara web, primero tiene que pasar por el núcleo mediante una llamada al sistema y, para llevar a cabo estas requests, la CPU cambia del modo de usuario al modo de núcleo en el momento de la ejecución. Después de completar finalmente la ejecución del proceso, la CPU vuelve a cambiar al modo de usuario .
Diferencia entre el modo Kernel y el modo Usuario:
Criterios |
Modo de núcleo |
Modo de usuario |
---|---|---|
Modo Kernel vs Modo Usuario | En modo kernel, el programa tiene acceso directo y sin restricciones a los recursos del sistema. | En modo usuario, el programa de aplicación se ejecuta y se inicia. |
Interrupciones | En el modo Kernel, todo el sistema operativo puede dejar de funcionar si se produce una interrupción | En el modo de usuario, un solo proceso falla si ocurre una interrupción. |
Modos | El modo kernel también se conoce como modo maestro, modo privilegiado o modo de sistema. | El modo de usuario también se conoce como modo sin privilegios, modo restringido o modo esclavo. |
Espacio de direcciones virtuales | En modo kernel, todos los procesos comparten un único espacio de direcciones virtuales. | En el modo de usuario, todos los procesos obtienen un espacio de direcciones virtuales separado. |
Nivel de privilegio | En el modo kernel, las aplicaciones tienen más privilegios que en el modo usuario. | Mientras está en modo usuario, las aplicaciones tienen menos privilegios. |
Restricciones | Como el modo kernel puede acceder tanto a los programas del usuario como a los programas del kernel, no hay restricciones. | Mientras que el modo de usuario necesita acceder a los programas del kernel, ya que no puede acceder a ellos directamente. |
Valor de bit de modo | El bit de modo de kernel-mode es 0. | Tiempo; el bit de modo del modo de usuario es 1. |
Referencias de memoria | Es capaz de hacer referencia a ambas áreas de memoria. | Solo puede hacer referencias a la memoria asignada para el modo de usuario. |
Fallo del sistema | Un bloqueo del sistema en modo kernel es grave y complica las cosas. |
En el modo de usuario, se puede recuperar un bloqueo del sistema simplemente reanudando la sesión. |
Acceso | Solo la funcionalidad esencial puede operar en este modo. | Los programas de usuario pueden acceder y ejecutarse en este modo para un sistema dado. |
Funcionalidad | El modo kernel puede hacer referencia a cualquier bloque de memoria en el sistema y también puede dirigir la CPU para la ejecución de una instrucción, lo que lo convierte en un modo muy potente y significativo. | El modo usuario es un modo de visualización estándar y típico, lo que implica que la información no puede ejecutarse por sí sola ni hacer referencia a ningún bloque de memoria; necesita una interfaz de protocolo de aplicación (API) para lograr estas cosas. |