Sistemas operativos modernos
5.6.3 Software de salida Las salidas son más sencillas que las entradas. En general, la computadora envía caracteres a la terminal, donde se exhiben. Por lo regular, en la terminal se escribe un bloque de caracteres, por ejemplo, una línea, con una sola llamada al sistema. El método que por lo general se usa en las terminales RS-232 es asociar búferes de salida a cada terminal. Éstos pueden tomarse de la misma reserva que los búferes de entrada, o ser exclusivos para una terminal, como en el ca so de las entradas. Cuando un programa escribe en la terminal, las salidas se copian primero en el búfer. Las salidas del eco también se copian allí. Después de copiar todas las salidas al bú fer, se envía a la salida el primer carácter y el controlador se duerme. Cuando llega la interrup ción. se envía el siguiente carácter, y así en forma sucesiva. Los editores de pantalla y muchos otros programas avanzados necesitan tener la capacidad de actualizar la pantalla en formas complejas, como sustituir una línea a la mitad de la panta lla. Para que esto pueda hacerse, casi todas las terminales reconocen una serie de comandos que mueven el cursor, insertan y borran caracteres o líneas en la posición del cursor, etc. Estos comandos se conocen como secuencias de escape. En la época de oro de la terminal RS-232, había cientos de tipos de terminales, cada una con sus propias secuencias de escape. Por ello, era difícil escribir software que funcionara en más de un tipo de terminal. Una solución, que se introdujo en Berkeley UNIX, fue una base de datos de terminales lla mada termcap. Este paquete de software definía varias acciones básicas, como trasladar el cur sor a (fila, columna). Para llevar el cursor a una posición dada, el software —por ejemplo, un editor— utilizaba una secuencia de escape genérica que después se convertía en la secuencia de escape real para la terminal en la que se estaba escribiendo. Así, el editor podía funcionar en cualquier terminal que tuviera una entrada en la base de datos termcap. Por último, la industria vio que era necesario estandarizar la secuencia de escape, así que se desarrolló un estándar ANSI. En la figura 5-37 se muestran algunos de los valores. Consideremos la forma en que un editor de texto podría usar estas secuencias de escape. Supongamos que el usuario teclea un comando para que el editor elimine toda la línea 3 y lue go cierre el hueco entre las líneas 2 y 4. El editor podría enviar la secuencia de escape siguien te a la terminal a través de la línea en serie: E S C [ 3 : 1 H E S C [ O K E S C [ 1 M (en este ejemplo ufilizamos espacios para separar los símbolos, pero dichos espacios no se transmiten). Esta secuencia coloca el cursor al principio de la línea 3, la borra toda y luego bo rra la línea vacía, haciendo que todas las líneas a partir de la 5 se desplacen una hacia arriba. Entonces lo que era la línea 4 se convierte en la 3; lo que era la línea 5 se convierte en la 4, y así en forma sucesiva. Pueden usarse secuencias de escape análogas para añadir texto en la par te central de la pantalla. También pueden añadirse o borrarse palabras de forma similar.
RkJQdWJsaXNoZXIy MjI4NDcx