Next: Nuestro primer driver de
Up: Módulos para dispositivos de
Previous: Informando al kernel de
  Índice General
  Índice de Materias
Informando al kernel de las características de nuestro dispositivo.
Además de esta estructura, el kernel mantiene una serie de arrays sobre sus
dispositivos de bloque, donde se almacenan algunas características descriptivas
de cada uno de ellos. Estos arrays almacenan aquella información que el kernel
necesita para optimizar sus accesos a dichos dispositivos.
Las iremos presentando una por una:
-
int blk_size[][]
: Describe el tamaño de cada dispositivo en
kilo bytes, está indexada por el número mayor y el menor. En caso de que para
un determinado número mayor, blk_size[mayor][] sea NULL,
entonces es que se han de permitir escrituras fuera del rango máximo.
-
int blksize_size[][]
: Almacena el tamaño de bloque en bytes de
cada dispositivo, el rendimiento del dispositivo se ve alterado por el tamaño
de sus bloques. Si para un determinado número mayor, esta lista apunta a
NULL, entonces se toma el tamaño de bloque por defecto, que es de 1KB.
-
int blkhardsect_size[][]
: Diferentes dispositivos pueden tener un
tamaño de
sector
físico distinto. En esta array se almacena el tamaño
en bytes de los sectores de cada dispositivo, por defecto es 512 bytes, es
decir por cada bloque leído, se accede dos veces al dispositivo (para bloques
de 1KB).
-
int read_ahead[]
: Este array esta indexado únicamente por el
número mayor. Le indica al kernel el número de bloques que debe pedir al
driver por cada bloque que necesite. Esto es una consecuencia del uso de una
política de
readahead
para el acceso a los dispositivos de bloque, que
mejora notablemente la respuesta de los mismos4.17.
Next: Nuestro primer driver de
Up: Módulos para dispositivos de
Previous: Informando al kernel de
  Índice General
  Índice de Materias
Alberto Cortés
2001-03-26