Modo protegido


El modo protegido es un modo operacional de los CPUs compatibles x86 de la serie 80286 y posteriores.
El modo protegido tiene un número de nuevas características diseñadas para mejorar la multitarea y la estabilidad del sistema, tales como la protección de memoria, y soporte de hardware para memoria virtual como también la conmutación de tarea. A veces es abreviado como p-mode y también llamado Protected Virtual Address Mode (Modo de Dirección Virtual Protegido) en el manual de referencia de programador del iAPX 286 de Intel, (Nota, iAPX 286 es solo otro nombre para el Intel 80286). En el 80386 y procesadores de 32 bits posteriores se agregó un sistema de paginación que es parte del modo protegido.

La mayoría de los sistemas operativos x86 modernos se ejecutan en modo protegido, incluyendo GNU/Linux, FreeBSD, OpenBSD, NetBSD, Mac OS X y Microsoft Windows 3.0 y posteriores. (Windows 3.0 también se ejecutaba en el modo real para la compatibilidad con las aplicaciones de Windows 2.x).

El otro modo operacional principal del 286 y CPUs posteriores es el modo real, un modo de compatibilidad hacia atrás que desactiva las características propias del modo protegido, diseñado para permitir al software viejo ejecutarse en los chips más recientes. Como una especificación de diseño, todos los CPUs x86 comienzan en modo real en el momento de carga (boot time) para asegurar compatibilidad hacia atrás con los sistemas operativos heredados, excepto el Intel 80376 diseñado para aplicaciones en sistemas embebidos. Estos procesadores deben ser cambiados a modo protegido por un programa antes de que esté disponible cualquier característica de este modo. En computadores modernos, este cambio es generalmente una de las primeras tareas realizadas por el sistema operativo en el tiempo de carga.

Mientras que la multitarea en sistemas ejecutándose en modo real es ciertamente posible mediada por software, las características de protección de memoria del modo protegido previenen que un programa erróneo pueda dañar la memoria "propia" de otra tarea o del núcleo del sistema operativo. El modo protegido también tiene soporte de hardware para interrumpir un programa en ejecución y cambiar el contexto de ejecución a otro, permitiendo pre-emptive multitasking.

Índice

Compatibilidad con aplicaciones de modo real


El Manual de Referencia del Programador del iAPX 286 de Intel indica que el modo protegido es solo una cubierta sobre el conjunto de instrucciones del 80186, y de hecho, para los programadores de aplicaciones, el modo protegido 80286 no agregó mucho más allá de tener acceso de hasta 16 MiB de memoria física y de 1 GiB de memoria virtual (512 MiB global, 512 MiB local). También era compatible con el código del modo real a nivel binario, así que en teoría, el código de aplicación del 8086 y 80186 podía ejecutárse en modo protegido si seguía las siguientes reglas, (aunque se ejecutaría más lento que en el modo real porque la carga de registros de segmento es más lenta):

En realidad, casi todos los programas de aplicaciones del DOS violaron estas reglas, por la carencia de reemplazo de llamadas del DOS o del BIOS, o debido al insuficiente nivel de desempeño de tales llamadas. Las violaciones más comunes eran aritmética de segmento y el acceso directo del hardware. También algunas de las interrupciones del BIOS usaban números que fueron reservados por Intel. En otras palabras, el modo protegido era menos compatible con aplicaciones de DOS que con aplicaciones de modo real y por lo tanto había una necesidad del modo 8086 virtual, que vino con el 386.

Niveles privilegiados


En modo protegido, hay cuatro niveles de privilegio o anillos, numerados de 0 a 3. El código del núcleo (kernel) del sistema operativo, que necesita usar instrucciones privilegiadas se ejecuta en el anillo 0, y las aplicaciones del usuario se ejecutan normalmente en el anillo 3.

El sistema operativo puede asignar los anillos 1 y 2 a servicios de sistema, como protocolos de red o la gerencia de ventanas, que las aplicaciones pueden llamar. El hacer esto, le permite a los servicios acceder directamente los datos de la aplicación, mientras que se protegen de éstas, así como el núcleo queda protegido de los servicios. Sin embargo, esto requiere, al sistema operativo, especificar la protección de memoria a nivel de segmento (porque en el 80386, la protección de nivel de página no puede distinguir entre los anillos 0, 1, y 2) y puede ser difícil si el sistema operativo necesita ser portable a procesadores que soporten solamente dos anillos. En lugar de ello, un sistema operativo puede alcanzar una protección equivalente o más fuerte al ejecutar los servicios en el anillo 3 pero en un diferente espacio de dirección. Sin embargo, esto cuesta más, al tener una conmutación de contexto más compleja a la hora de la llamada, a menos que al servicio le sea dado un Task State Segment (segmento de estado de tarea) separado, el procesador primero debe cambiar al anillo 0 para cambiar el espacio de dirección, y después volver al anillo 3 para ejecutar el servicio.

El procesador comprueba niveles de privilegio en las siguientes situaciones. Si el código que se ejecuta no tiene suficientes privilegios, el resultado es generalmente una excepción que el sistema operativo puede manejar; pero también están las instrucciones que hacen los mismos chequeos sin levantar excepciones.

El RPL en el registro CS (segmento de código) es siempre el nivel actual de privilegio. La lectura de este registro no puede ser atrapada, lo que complica la virtualización nativa de sistemas operativos, puesto que éstos normalmente esperan tener el anillo 0 para sí mismos. Ver virtualización x86.

Extensiones del 386 al modo protegido


Éstas incluyen:

Algunas de ellas usaron lo qué estaba documentado como bits reservados en el anterior procesador 286 en el manual de referencia del programador del iAPX 286 de Intel.

Véase también


Referencias


Enlaces externos











Categorías: Modos de operación de los microprocesadores x86




A partir de: 03.12.2020 03:22:37 CET

Fuente: Wikipedia (Autores [Historia])    Licencia: CC-BY-SA-3.0

Modificaciónes: Se eliminaron todas las imágenes y la mayoría de los elementos de diseño relacionados con ellos. Algunos iconos fueron reemplazados por FontAwesome-Icons. Algunas plantillas se eliminaron (como "el artículo necesita expansión) o se asignaron (como" notas de sombrero "). Las clases CSS fueron eliminadas o armonizadas.
Se eliminaron los enlaces específicos de Wikipedia que no conducen a un artículo o categoría (como "Enlaces rojos", "enlaces a la página de edición", "enlaces a portales"). Cada enlace externo tiene un FontAwesome-Icon adicional. Además de algunos pequeños cambios de diseño, se eliminaron los contenedores de medios, mapas, cuadros de navegación, versiones habladas y Geo-microformatos.

Tenga en cuenta: Debido a que el contenido dado se toma automáticamente de Wikipedia en el momento dado, una verificación manual fue y no es posible. Por lo tanto, LinkFang.org no garantiza la precisión y la actualidad del contenido adquirido. Si hay una información que es incorrecta en este momento o tiene una pantalla incorrecta, no dude en Contáctenos: e-mail.
Ver también: Información legal & Política de privacidad.