Retroceder   PSPStation.org - Tu web de Scene y Tutoriales de PSP, PS3, PC. > Playstation Portable > Programación
Respuesta
LinkBack Herramientas Desplegado
Antiguo 12-05-2009   #1
Elite
Desarrollador
 
Avatar de m0skit0
 
Fecha de Ingreso: Apr 2009
Mensajes: 969
Gracias: 0
Agradecido 38 veces en 24 mensajes.
Predeterminado [Intro Arquitectura PSP] 7. Modos de operación

[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!
__________________
m0skit0 está desconectado  
Enviar a Digg este Mensaje!Compartir en FacebookComparte en MyspaceComparte en Twitter
Responder Citando
Publicidad Patrocinada
Respuesta

Etiquetas
7, arquitectura, de, intro, modos, operación, psp


(0 miembros y 1 visitantes)
 
Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los Códigos BB están Activado
Las Caritas están Activado
[IMG] está Activado
El Código HTML está Desactivado
Trackbacks están Activado
Pingbacks están Activado
Refbacks están Activado


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


La franja horaria es GMT +2. Ahora son las 01:53 AM.