PRÁCTICAS DE LABORATORIO DE SISTEMAS OPERATIVOS

PRIMERA PRÁCTICA OBLIGATORIA (2001-02)

La ristra diabólica


  1. Enunciado.

    La práctica constará de dos ficheros fuente y su correspondiente makefile: demiurgo.c e hijo.c. La correcta compilación de estos programas dará dos ejecutables: demiurgo e hijo. El programa demiurgo admitirá un entero comprendido entre 1 y 7 como único argumento desde la shell y hará lo siguiente:
    El programa hijo, puede recibir los argumentos que consideréis como necesarios, incluso ninguno. Hará lo siguiente:

    Se puede (y es conveniente, por simplicidad) usar la función de biblioteca sleep para medir los tiempos.

  2. Plazo de presentación.

    Hasta el viernes 12 de abril, inclusive.

  3. Normas de presentación.

    Acá están.

  4. LPEs.

    1. Las tareas que tiene que realizar cada uno de los programas son variadas. Os recomiendo que vayáis programándolas y comprobándolas una a una. No es muy productivo hacer todo el programa de seguido y corregir los errores al final. Por ejemplo, podéis comenzar por hacer el programa demiurgo. Mirad que es posible pasarle un entero y que ese entero está dentro de los límites. Una vez hecho esto, compilad y ejecutad y, si es el caso, depurad esto. Una vez comprobado haced que tenga tantos hijos como el número que paséis a intervalos de 1 segundo. De nuevo, compilad, ejecutad y depurad esto antes de continuar.
    2. Evitad, en lo posible, el uso de variables globales. Tenéis la posibilidad de declarar variables estáticas.
    3. ¡IMPORTANTE! Tener hijos a intervalos de un segundo se ha de entender como: "esperar un segundo, tener un hijo, esperar un segundo, tener un hijo,..." y NO como "tener un hijo, esperar un segundo, tener un hijo, esperar un segundo,...". El tiempo es lo que se tarda en tener el hijo, no lo que se descansa entre hijo e hijo.
    4. ¿Qué hago cuando mi programa se desboca para no perjudicar el funcionamiento de la máquina?
      Solución.


  5. Prácticas propuestas años anteriores.


© 2002 Guillermo González Talaván.