domingo, 21 de noviembre de 2010

MANEJO DE BUFFERS DE ENTRADA

BUFFER
Área del almacenamiento primario destinada a contener datos durante transferencia de entrada salida.


Técnica de Pareja de buffers

 

·        Se divide en dos mitades de tamaño N (N= un bloque del disco (1024 o 4096)
·        Dos punteros: comienzo_lexema y delantero.
·        Al principio los dos igual y avanzo delantero hasta encontrar concordancia con patrón (un token).
·       Delantero se coloca en su carácter derecho.
·        Comienzo_lexema y delantero delimitan lexema.
·        Procesa lexema (devuelvo token) y coloco comienzo_lexema en delantero (primer carácter
·       del siguiente)
·        Cando termina una mitad, recarga la otra y continua hasta encontrar token.
         
Se mantienen dos apuntadores al buffer de entrada:
APUNTADOR DELANTERO examina hacia delante hasta encontrar una concordancia con un patrón.  Una vez determinado el siguiente lexema, el apuntador delantero se coloca en el carácter de su extremo derecho.
APUNTADOR DE LEXEMA se queda al inicio del lexema y lo procesa.

Técnica de Centinelas


Si se utiliza la pareja de buffers, cada vez que se mueva el apuntador delantero se debe comprobar si se ha salido de una mitad del buffer, si así ocurriera se deberá cargar la segunda mitad. 
Se pueden reducir estas dos pruebas a una si se amplía cada mitad del buffer para admitir un carácter centinela (EOF) al final.

No hay comentarios:

Publicar un comentario