Sistemas operativos modernos

bajo aunque podrían estar colocados en la misma máquina que el programa X en sí. X consi­ dera fiable esta conexión, en el sentido de que el software de trabajo con redes maneja los men­ sajes perdidos y repetidos, y X no tiene que preocuparse por errores de comunicación. Por lo regular se usa TCPAP entre el cliente y el servidor. Hay cuatro tipos de mensajes que se transmiten por la conexión: 1. Comandos de dibujo del programa a la estación de trabajo. 2. Contestaciones de la estación de trabajo a preguntas del programa. 3. Anuncios de sucesos de teclado, ratón y otros. 4. Mensajes de error La mayoría de los comandos de dibujo se envía del programa a la estación de trabajo co­ mo mensajes unidireccionales; no se espera una respuesta. El motivo de este diseño es que cuando los procesos cliente y servidor están en diferentes máquinas, un comando podría lardar un tiempo apreciable en llegar al servidor y ejecutarse. Bloquear el programa de aplicación du­ rante este tiempo lo haría innecesariamente lento. En cambio, cuando el programa necesita in­ formación de la estación de trabajo, tan sólo espera hasta que llega la contestación. Al igual que Windows, X está controlado en gran medida por sucesos. Éstos fluyen de la estación de trabajo al programa, casi siempre en respuesta a alguna acción humana, como pul­ saciones en el teclado, movimientos del ratón o destape de una ventana. Cada mensaje de su­ ceso es de 32 bytes. El primero indica el tipo de suceso y los otros 31 bytes proporcionan información adicional. Existen varias docenas de tipos de sucesos, pero a un programa sólo se le envían los que está dispuesto a manejar. Por ejemplo, si un programa no quiere enterarse de cuándo se suelta una tecla, no se le envían sucesos de liberación de teclas. Al igual que en Win­ dows, los sucesos se ponen en colas, y los programas leen sucesos de la cola. Sin embargo, a diferencia de Windows, el sistema operativo nunca invoca por su cuenta procedimientos den­ tro del programa de aplicación; de hecho, ni siquiera sabe cuál procedimiento se encarga de cuál suceso. Un concepto clave en X es el recurso. Un recurso es una estructura de datos que contiene cierta información. Los programas de aplicación crean recursos en estaciones de trabajo. Dichos recursos pueden compartirse entre varios procesos en la estación de trabajo; tienden a ser efímeros y no sobreviven cuando esta última se reinicia. Como recursos representativos po­ demos mencionar las ventanas, fuentes, mapas de color (paletas de colores), mapas de píxeles (mapas de bits), cursores y contextos gráficos. Estos últimos sirven para asociar propiedades a ventanas y son similares en lo conceptual a los contextos de dispositivo en Windows. En la figura 5-46 se muestra una estructura burda e incompleta de un programa X. Lo pri­ mero que hace es incluir algunos encabezados que necesita y declarar ciertas variables. Luego se conecta con el servidor X especificado como parámetro de XOpenDisplay. A continua­ ción el programa asigna un recurso de ventana y guarda en win un identificador para ese recur­ so. En la práctica, aquí se asignarían algunos valores iniciales. Después, el programa informa al administrador de ventanas de la existencia de una nueva ventana para que pueda administrarla.

RkJQdWJsaXNoZXIy MjI4NDcx