domingo, 15 de noviembre de 2015

EL TERMINAL

Se trata de un dispositivo que permite al usuario comunicarse con el sistema y que está presente en todos
los sistemas de propósito general actuales. Está formado típicamente por un teclado que permite introducir
información y una pantalla que posibilita su visualización.

Hay una gran variedad de dispositivos de este tipo, los terminales serie y los proyectados en memoria.

Modo de operación del terminal

El modo de operación básico de todos los terminales es bastante similar a pesar de su gran diversidad. La
principal diferencia está en qué operaciones se realizan por hardware y cuáles por software. En todos ellos
existe una relativa independencia entre la entrada y salida.

Entrada

Cuando el usuario pulsa una tecla en un terminal, se genera un código de tecla que la identifica. Este código
de tecla debe convertirse en el carácter ASCII correspondiente teniendo en cuenta el estado de las teclas
modificadoras (típicamente, Control, Shift y Alt). Así, por ejemplo, si está pulsada la tecla Shift al teclear la
letra “a”, el carácter resultante será “A”.

Salida

Una pantalla de vídeo está formada por una matriz de pixels. Asociada a la misma existe una memoria de
vídeo que contiene información que se visualiza en la pantalla. El controlador de vídeo es el encargado de
leer la información almacenada en dicha memoria y usarla para refrescar el contenido de la pantalla con la
frecuencia correspondiente. Para escribir algo en una determinada posición de la pantalla sólo es necesario
modificar las direcciones de memoria de vídeo correspondientes a esa posición.
Cuando un programa solicita escribir un determinado carácter ASCII en la pantalla, se debe obtener el
patrón rectangular que representa la forma de dicho carácter, lo que dependerá del tipo de fuente de texto
utilizado. El controlador visualizará dicho patrón en la posición correspondiente de la pantalla.

Además de escribir caracteres, un programa necesita realizar otro tipo de operaciones, tales
como borrar la pantalla o mover el cursor a una nueva posición. Este tipo de operaciones están
generalmente asociadas a ciertas secuencias de caracteres.

Cuando un programa escribe una de estas secuencias, no se visualiza información en la pantalla sino que se
lleva a cabo la operación de control asociada a dicha secuencia. Típicamente, por razones históricas, estas
secuencias suelen empezar por el carácter Escape.

Hardware del terminal

Terminales proyectados en memoria



El teclado genera una interrupción cuando se aprieta una tecla (en algunos sistemas también se genera
cuando se suelta). Cuando se produce la interrupción, el código de la tecla pulsada queda almacenado en un
registro de entrada/salida del controlador del teclado. Observe que tanto la conversión desde el código de
tecla hasta el carácter ASCII como el tratamiento de las teclas modificadoras los debe realizar el software.
En este tipo de terminales, la memoria de vídeo está directamente accesible al procesador. Por tanto, la
presentación de información en este tipo de terminales implica solamente la escritura del dato que se
pretende visualizar en las posiciones correspondientes de la memoria de vídeo, no requiriéndose el uso de
interrupciones para llevar a cabo la operación.

Con respecto a la información que se escribe en la memoria de vídeo, va a depender de si el modo de operación del terminal es alfanumérico o gráfico.
En el modo alfanumérico se considera la pantalla como una matriz de caracteres, por lo que la memoria de vídeo contiene el código ASCII de cada carácter presente en la pantalla. Durante una operación de refresco de la pantalla, el controlador va leyendo de la memoria cada carácter y el mismo se encarga de obtener el patrón de bits correspondiente al carácter en curso y lo visualiza en la pantalla.

Por lo que se refiere al modo gráfico, en este caso la pantalla se considera una matriz de pixeis y la
memoria de vídeo contiene información de cada uno de ellos. Cuando un programa solicita escribir un
carácter, debe ser el software el encargado de obtener el patrón de bits que define dicho carácter.
El trabajo con un terminal de este tipo no se limita a escribir en vídeo. El controlador de vídeo contiene un
conjunto de registros de entrada/salida que permiten realizar operaciones como mover la posición del cursor
o desplazar el contenido de la pantalla una o varias líneas.
Un último aspecto que conviene resaltar es que en este tipo de terminales el tratamiento de las secuencias
de escape debe ser realizado por el software.

Terminales serie

En este tipo de terminales, como se puede apreciar en la Figura, el terminal se presenta ante el resto
del sistema como un único dispositivo conectado, típicamente a través de una línea serie RS-232. al
controlador correspondiente denominado UART (Universal Asynchronous Receiver Transmitter,
Transmisor-Receptor Universal Asíncrono). Además de la pantalla y el teclado, el terminal tiene algún tipo
de procesador interno que realiza parte de la gestión del terminal y que permite también al usuario
configurar algunas de las características del mismo. Para poder dialogar con el terminal, se deben
programar diversos aspectos de la UART tales como la velocidad de transmisión o el número de bits de
parada que se usarán en la transmisión.

Al igual que ocurre con los terminales proyectados en memoria, la entrada se gestiona mediante interrupciones. Cuando se pulsa una tecla, el terminal envía a través de la línea serie el carácter pulsado. La
UART genera una interrupción al recibirlo. A diferencia de los terminales proyectados en memoria, el
carácter que recoge de la UART ya es el código ASCII de la tecla pulsada puesto que el procesador del
terminal se encarga de pasar del código de la tecla al código ASCII y de comprobar el estado de las teclas
modificadoras.

Para la visualización de información en este tipo de terminales se debe cargar el código ASCII del carácter
deseado en un registro de la UART y pedir a ésta que lo transmita. Una vez transmitido, lo que puede llevar un tiempo considerable debido a las limitaciones de la transmisión serie, la UART produce una interrupción para indicar este hecho. Por lo que se refiere al terminal, cuando recibe el carácter ASCII se encarga de obtener su patrón y visualizarlo en la pantalla, manejando asimismo las secuencias de escape.

No hay comentarios:

Publicar un comentario