|
||||||
![]() |
|
|
LinkBack | Herramientas | Desplegado |
|
|
#1 |
|
Elite
![]() Fecha de Ingreso: Apr 2009
Mensajes: 969
Gracias: 0
Agradecido 38 veces en 24 mensajes.
|
[Intro Arquitectura PSP] 7. Modos de operación Esta lección es cortita, pero fundamental para entender la diferencia entre modo kernel y modo usuario que tanto se habla en todos los foros de la escena PSP. Para hacerle la vida más fácil a los programadores, las CPUs modernas (entre ellas el derivado de R4000 que es el Allegrex) implementan muchas de las características que un sistema operativo moderno necesita. Por ejemplo el hecho de distinguir entre usuarios normales y administradores. Para ello las CPU cuentan con diferentes modos de funcionamiento (modo real y protegido de Intel, por ejemplo), cada uno con sus carcterísticas y restricciones hardware a las operaciones que se pueden realizar o a las direcciones de memoria a las que se puede acceder/modificar. Esto aumenta sin duda la seguridad que implementan los sistemas operativos al añadir un nivel más. Los procesadores MIPS disponen de 4 modos de operación: usuario, supervisor, kernel y depuración. El modo de operación está definido en los campos KSU, EXL y ERL del registro 12 (Status) del coprocesador de control del sistema (CP0). El modo de depuración se controla con el bit DM en el registro Debug también del coprocesador de control del sistema (CP0) y se usa con la extensión de depuración de hardware estándar IEEE 1149.1. En nuestro caso, el Allegrex sólo usa 2 de los 4 modos (aunque todos son accesibles): modo usuario y modo kernel. El modo usuario (KSU = 10; EXL = 0; ERL = 0) se utiliza para los juegos y las aplicaciones. El modo kernel (KSU = 00; EXL = 1; ERL = 1) lo usa el sistema operativo de la PSP para acceder al hardware y demás operaciones que Sony haya considerado que no deberían acceder las aplicaciones. Esto implica que el modo usuario no puede acceder a ciertos recursos directamente, sino sólo recurriendo a las funciones que le provee el sistema operativo para ello, a través de las llamadas al sistema. Ya veremos cómo funciona esto de manera más detallada cuando hablemos del kernel. Específicamente, el modo usuario sólo tiene acceso a la mitad baja del espacio de direccionamiento, esto es, desde la dirección 0x00000000 hasta la 0x7FFFFFFF, ambas incluídas. Cualquier intento de acceder a una dirección fuera de este rango (concretamente con el bit 31 puesto a 1) hará saltar una excepción hardware de dirección no válida. Esta división es importante para que una aplicación no corrompa memoria que no le corresponde y así cuelgue toda la PSP o peor, modifique algún componente de manera que deje de funcionar. También es imprescindible para un buen funcionamiento de la multitarea (múltiples hilos en el caso de la PSP). Espero os haya servido, ¡hasta la próxima!
__________________
|
|
|
|
![]() |
| 7, arquitectura, de, intro, modos, operación, psp |
| (0 miembros y 1 visitantes) | |
| Herramientas | |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| [Intro Arquitectura PSP] 1. Introducción | m0skit0 | Programación | 1 | Hace 2 Semanas 03:58 AM |
| [Intro Arquitectura PSP] By Moskito | m0skit0 | Programación | 23 | 26-04-2010 04:38 PM |
| [Intro Arquitectura PSP] 8. Coprocesadores | m0skit0 | Programación | 6 | 12-05-2009 02:14 PM |
| [Intro Arquitectura PSP] 3. CPU | m0skit0 | Programación | 0 | 01-05-2009 02:01 PM |
| [Intro Arquitectura PSP] 6. Funciones | m0skit0 | Programación | 0 | 30-04-2009 10:39 PM |