Visita la versión flash
Propuestas
Visita el perfil del autor
Hablan del blog

SOM30


"Cómo hacer un Sistema Operativo en 30 días"
9/07/2010 23:34

Dividiendo el Espacio de Direcciones (II sector)

Comunicaciones de Red
Como hablé ayer, hoy terminaremos de matizar el tema del Espacio de Direcciones hablando del segundo sector, y en especial, de los controladores.

En primer lugar, matizar que el concepto de controlador que di hace un par de días no es para nada restrictivo, por lo que colocarlos en una posición conocida no determinará necesariamente su propósito. Me explico: los controladores serían un poco los puertos USB a bajo nivel de nuestra arquitectura; no hay puertos USB especiales para webcams o para lápices de memoria. Lo que sí hay es diferentes versiones del USB, compatibles, que los dotan de mayor velocidad de transferencia entre otras características; nuestros controladores también tendrán algo similar.

Bueno, ayer comentábamos que el segundo sector del Espacio de Direcciones "va desde la dirección 0x00.01.00 hasta la 0xFF.FF.FF", lo que nos deja "16.776.960 direcciones" disponibles, o lo que es lo mismo, casi 2 MegaBytes para mapear dispositivos y controladores. Mientras que en el primer sector sólo cabía el pequeño GAM, en este segundo sector hay gran cantidad de componentes:
  • El Gestor de Arranque Extendido: está en el comienzo del segundo sector.
    • Este dispositivo es un poco el GRUB del Sistema Informático.
    • Se encarga de cargar de un soporte lógico el iniciador del Sistema Operativo, ya que al iniciar el SIM no hay nada en memoria principal (RAM) cargado, y es necesario que se saque datos conocidos de un componente con información no volátil.
    • Es capaz de cargar esa información de discos ópticos (CDs, DVDs), discos flexibles (disquetes), discos sólidos (lápices de memoria) y discos duros.
    • También, gracias a la estandarización, es posible cargar de igual forma a través de la Red.
    • No es modificable por el Sistema Operativo, pero sí parametrizable: seleccionar el orden de los controladores a probar iniciar. Estos registros de lectura/escritura se encuentran al final del dispositivo.
  • El Gestor de Controladores (GeCo): está a continuación del GAE.
    • Tiene información sobre los controladores.
    • Ofrece una librería de bajo nivel para trabajar con ellos.
    • Se permite acceder a los registros clave de los controladores a través de llamadas a esa librería.
Y después de estos dos dispositivos, llegan los controladores. Como adelanté antes, los controladores tienen un propósito muy generalista: sirven para conectar soluciones informáticas al Espacio de Direcciones. Como cada solución informática es diferente, incluso en su propósito funcional, es difícil estandarizar todas bajo unos mismos parámetros. La forma con la que se estandariza, manteniendo una eficiencia alta, es usando el sistema de mensajes (o paquetes) del que ya comenté por alto en alguna ocasión.

El sistema de mensajes o de paquetes trata de convertir cualquier comunicación en el envío o recepción de un mensaje con un formato parcial o completamente determinado en tiempo de desarrollo o de ejecución. El sistema de Entrada/Salida se basa en este concepto: habrá un canal de salida (escritura) y otro de entrada (lectura), totalmente independiente uno del otro, por cada comunicación. Además, serán asíncronos: se podrá recibir varias entradas durante una lectura, etc. El funcionamiento correcto del Sistema estará determinado en todo momento por un valor binario independiente: on/off.

Llevando este concepto a los controladores, definamos el único tipo de controlador que tendremos: el Controlador Universal.

El controlador universal (CUW) es un componente con una distribución de bits muy sencilla:
  • Registro E0 (lanzador de escritura): es un registro (1 bit) que permite indicar cuándo el paquete de escritura (grupo E) se ha terminado de escribir y el controlador pueda recibirlo.
    • Mientras tenga el valor 0, el paquete de escritura no se enviará.
    • Si tiene el valor 1, el controlador recibirá el paquete de escritura. Volverá a poner el valor 0 en cuanto termine de interpretarlo.
  • Registros E (escritura): es un grupo de registros (de tamaño N) en el que Sistema Informático escribe un valor para que el controlador lo reciba.
  • Registro Central (estado): es un registro (1 bit) en el centro que indica el estado de la solución informática.
    • Si tiene el valor 0, indica que el controlador está ocupado, iniciando, o cualquier otro error.
    • Si tiene el valor 1, indica que el controlador está disponible.
  • Registros L (lectura): es un grupo de registros (de tamaño N) del que el Sistema Informático lee el valor que pone el controlador.
  • Registro L0 (lanzador de lectura): es un registro (1 bit) que permite saber cuándo el paquete de lectura (grupo L) está disponible para leer.
    • Mientras tenga el valor 0, es que el paquete de lectura no está disponible.
    • Si tiene valor 1, es que el paquete de lectura está disponible para leer. El Sistema Informático volverá a poner el valor 0 cuando termine de leerlo.
  • Adicionalmente, sin mapearse en el Espacio de Direcciones, incluye dos conectores de +5V y 0V para dar tensión al propio controlador.
Los controladores pueden tener cualquier valor natural de N, pero suele ser habitual tener unos valores concretos. La fórmula para saber el número total de bits de un controlador viene dado por esta fórmula 1+(1+N) + 1 + (N+1)+1, que representa respectivamente 1 bit de +5V + (1 bit del E0 + N bits de los registros E) + 1 bit central + (N bits de los registros L + 1 bit del L0) +1 bit de 0V. La característica para que sean estándares es que los N siempre sean potencia de 2, haciendo que los valores de bits mapeados en el Espacio de Direcciones (los que están inclinados) sean números primos. Los valores estándares son:
  • N = 2, lo que implica 1+(1+N) + 1 + (N+1)+1 = 1+7+1 = CUW9.
  • N = 4, lo que implica 1+(1+N) + 1 + (N+1)+1 = 1+11+1 = CUW13.
  • N = 8, lo que implica 1+(1+N) + 1 + (N+1)+1 = 1+19+1 = CUW21.
  • N = 32, lo que implica 1+(1+N) + 1 + (N+1)+1 = 1+67+1 = CUW69.
  • N = 64, lo que implica 1+(1+N) + 1 + (N+1)+1 = 1+131+1 = CUW133.
El número de controladores a partir del GeCo no está determinado. Generalmente se suelen incluir siete CUW133 (de paquetes de 64 bits) y once CUW69 (de paquetes de 32 bits) destinados para trabajar con vídeo, sonido, red, discos (duros, ópticos, sólidos, flexibles), ratón, teclado, impresoras, etc. El número y tamaño de estos controladores estará determinado por el GeCo.

Por último, hay que matizar que por una parte vamos a distinguir los controladores (soluciones electrónicas) y las controladoras (soluciones informáticas) o comúnmente conocidas como "drivers". Este último concepto de controladora lo explicaremos más adelante, pero para avanzar un poco el tema, adelantar que serán las controladoras las encargadas de indicar (a través del sistema de mensajes) qué tipo de solución informática nos encontraremos al otro lado del controlador.

Comentarios

No hay comentarios todavía.

Deja tu comentario


Se enviará usando la Red Social @visitante
¿Quieres responder con otra cuenta de TuEntidad.es?
Usa MonoMola o LoTienes.

Búsqueda

Calendario

- Día 1
- Día 2
- Día 3
- Día 4
- Día 5
- Día 6
- Día 7
- Día 8
- Día 9
- Día 10
- Día 11
- Día 12
- Día 13
- Día 14
- Día 15
- Día 16
- Día 17
- Día 18
- Día 19
- Día 20
- Día 21
- Día 22
- Día 23
- Día 24
- Día 25
- Día 26
- Día 27
- Día 28
- Día 29

Código

- Sistemas Informáticos
- Compilador
- GAM
- GAE
- Kérnel
- LiSi
- ViSi
- SAM
Licencia LSW

Comentan

- Día 1 (16) 8/06 02:28
- Día 29 (19) 13/03 04:10
- Día 10 (18) 23/01 22:16
- Día 3 (9) 10/12 08:55
- Día 2 (19) 10/12 08:54
- Día 7 (4) 5/11 21:29
- Día 11 (44) 25/10 01:39
- Día 4 (3) 24/09 13:45
- Día 28 (2) 6/04 04:01
- Día 26 (1) 17/07 01:21
- Día 27 (4) 29/05 14:50
- Día 8 (9) 29/05 05:35
- Día 24 (2) 18/01 05:16
- Día 17 (5) 18/01 05:10
- Día 13 (7) 6/12 18:44
- Día 15 (1) 30/08 08:53
- Día 6 (2) 25/08 02:14
- Día 5 (4) 7/04 00:50
- Día 21 (6) 26/06 21:26
- Día 18 (2) 26/06 03:09
- Día 23 (2) 22/04 13:45
- Día 25 (1) 11/03 21:34
- Día 19 (3) 19/01 17:33
- Día 14 (2) 7/01 22:06

Valid HTML 4.01 Transitional