Sistemas operativos modernos

tuitivamente obvio para el programador cuánto cuesta una llamada al sistema. Por ejemplo, los programadores de UNIX esperan que la llamada al sistema Iseek sea menos costosa que la lla­ mada read, porque la primera sólo modifica un apuntador en la memoria, mientras que la se­ gunda realiza E/S de disco. Si los costos intuitivos están equivocados, los programadores escribirán programas ineficientes. 12.2.2 Paradigmas Una vez establecidas las metas, puede comenzar el diseño. Un buen punto de partida es pensar en cómo van a ver el sistema los clientes. Una de las cuestiones más importantes es cómo ha­ cer que todas las características del sistema formen un conjunto consistente y presenten lo que se conoce como coherencia arquitectónica. En este senfido, es importante disfinguir dos fi­ pos de “clientes” de los sistemas operativos. Por un lado están los usuarios, que interactúan con programas de aplicación; por el otro están los programadores, que los escriben. Los primeros tratan sobre todo con la GUI; los segundos tratan principalmente con la interfaz de llamadas al sistema. Si lo que se busca es tener una sola GUI para todo el sistema, como en la Macintosh, el diseño deberá comenzar ahí. En cambio, si la intención es manejar el mayor número posible de GUIs, como en UNIX, lo primero que debe diseñarse es la interfaz de llamadas al sistema. Crear primero la GUI es en esencia un diseño descendente. Las cuesfiones son qué caracterís­ ticas y funciones va a tener, cómo va a interactuar el usuario con ella y cómo debe diseñarse el sistema para que la maneje. Por ejemplo, si la mayoría de los programas exhibe iconos en la pantalla y luego espera hasta que el usuario haga clic en uno de ellos, eso sugiere un modelo controlado por eventos para la GUI, y quizá también para el sistema operativo. Por otra parte, si la pantalla está llena en su mayor parte de ventanas de texto, de seguro será mejor un mode­ lo en el que los procesos lean del teclado. Crear primero la interfaz de llamadas al sistema es un diseño ascendente. Aquí las cuestio­ nes son qué tipos de características necesitan generalmente los programadores. En realidad, no se necesitan muchas características especiales para manejar una GUI. Por ejemplo, el sistema de ventanas de UNIX, X, no es más que un programa grande en C que ejecuta llamadas read y write con el teclado, el ratón y la pantalla. X se desarrolló mucho después que UNIX y no requirió muchos cambios en el sistema operafivo para poder funcionar. La experiencia confirió validez a la idea de que UNIX era bastante completo. Paradigmas de interfaz de usuario Tanto para la interfaz en el nivel de GUI como para la interfaz de llamadas al sistema, el as­ pecto más importante es tener un buen paradigma (también llamado metáfora) que proporcio­ ne una forma de ver la interfaz. Muchas GUIs para máquinas de escritorio ufilizan el paradigma WIMP que vimos en el capítulo 5. En toda la interfaz, este paradigma utiliza acciones de apun­ tar y hacer clic, apuntar y hacer doble clic, arrastrar, entre otras, para conferir una coherencia arquitectónica a la totalidad. En muchos casos los programas fienen requisitos adicionales, co-

RkJQdWJsaXNoZXIy MjI4NDcx