Introducción a los Sistemas Operativos, Ing. Informática, UPV/EHU


Proyecto P08. Las singularidades de los dispositivos

Ya conocemos las características de la E/S en Linux y el manejo del sistema de ficheros. El hecho de que en Linux toda la E/S gire en torno a la abstracción de fichero proporciona a las aplicaciones una forma de tratar la E/S con independencia del dispositivo, un rasgo fundamental para simplificar la programación. Sin embargo, para abordar el desarrollo de aplicaciones interactivas de todo tipo sobre Linux, nos falta resolver algún detalle que ha quedado pendiente precisamente como consecuencia de la generalización extrema del concepto de E/S en Linux.

Actividad A08.1 ¿Cómo podemos cambiar las propiedades de los dispositivos?

Vamos a fijarnos en el funcionamiento de algunos dispositivos como teclado y el monitor de un terminal o ciertos dispositivos de comunicación en ciertas aplicaciones:

  • El hecho de pulsar una tecla, por ejemplo, la correspondiente al carácter ‘a’, lo identificamos como una operación de entrada, sin embargo, normalmente lleva asociada también una operación de salida: la escritura del carácter ‘a’ en un lugar determinado por el monitor. Otras veces sin embargo, por ejemplo, al introducir la contraseña, se escriben espacios en blanco o asteriscos.
  • Cuando pulsamos la tecla de borrar, se sustituye el último carácter escrito por un espacio en blanco y el cursor se retrasa una posición. Otros comportamientos singulares como este tienen lugar cuando se pulsa el salto de línea, una tilde…
  • Muchas aplicaciones interpretan las teclas a su manera: el comando more o el man interpretan el espacio en blanco y otros caracteres como órdenes. Lo mismo ocurre con el editor vi, o con cualquier juego.
  • Algunas aplicaciones muestran los caracteres en diferentes colores, o en negativo, o centelleantes…

¿Cómo manejan los programas estas situaciones? A veces se trata de modos de funcionamiento de muy bajo nivel. ¿Cómo las gestiona el sistema operativo y qué interfaz ofrece a los programas?

Qué hay que hacer

  1. El profesor os propondrá que exploréis el comando stty para conocer los modos de funcionamiento actual de vuestro terminal y os presentará los modos básicos de funcionamiento. Os sugerirá que probéis a cambiar el modo para eliminar el «eco» del teclado. Anota en el cuaderno las conclusiones.
  2. Disponemos del código fuente de una utilidad mas, con un funcionamiento análogo al comando more o less de Linux, aunque más sencilla. Compilad y probad esta utilidad, la especificación está en man mas .
  3. En el código que utilizaréis para ello, con la ayuda del profesor, identificaréis las estructuras de datos y las funciones relacionadas con la configuración de los dispositivos. Anota en el cuaderno las conclusiones.

Documentación

En el documento Material P08 se encuentra parte del material utilizado en clase por el profesor.

Dedicación

En clase dedicaremos 40 hora minutos a esta actividad.

Tiempo estimado a dedicar fuera de clase: 10 minutos.

(Esta actividad se explicará en clase por el profesor)

Entregables

Ninguno

Evaluación

En una actividad de evaluación posterior.

Actividad A08.2 Actualizar mypackzip para que gestione las propiedades del terminal

Seguimos ampliando las funcionalidades de la utilidad mypackzip. Esta nueva versión es totalmete abierta. Has trabajado con diferentes propiedades del terminal como el «echo» , «cocinado», «los colores», «cambio de cursor»,… Intenta aplicar ese tipo de propiedades a la aplicación que estáis desarrollando.

Qué hay que hacer:

  1. Completad (o añadid nuevas) las especificaciones de la aplicación mypackzip con nuevos requisitos que nos permitan trabajar con alguna «propiedad» del terminal.
  2. Elaborad los documentos de verificación con los casos de prueba que consideréis necesarios.
  3. Programad los cambios en las diferentes funciones y verificad su funcionamiento actualizando los correspondientes documentos de verificación.

Dedicación

En clase dedicaremos media hora a este proyecto.

Tiempo estimado a dedicar fuera de clase: 2 horas.

Entregables

El grupo deberá entregar los siguientes documentos:

  1. Código fuente y ejecutable del proyecto (formato .tar.gz).
  2. Documentos de especificación y verificación en formato pdf.

Evaluación

El código desarrollado en estas dos utilidades lo reutilizarás para construir el proyecto de E/S. por tanto, su evaluación se realizará en una actividad de evaluación posterior.

No obstante, puedes revisar los criterios que se utilizarán para evaluar este código en el proyecto.

Los criterios de evaluación son los siguientes:

  1. Que el código desarrollado sea razonablemente eficiente y esté expresado de forma clara y estructurada. En el apartado CEval 8 se describe el criterio de evaluación del código.
  2. Que la utilidad cumpla los requisitos funcionales de la especificación. En el apartado CEval 8 se describe el criterio de evaluación.
  3. Calidad de la verificación a través del documento de verificación. En el apartado CEval 9 se describe el criterio de evaluación.

No olvides rellenar la encuesta de dedicación de este proyecto. (Encuesta de Dedicación.)