Logo_GRSST





























































LABORATORIO DE TELEMATICA

Práctica 2

Duración: 5 horas
Puntuación: 1.5 pto.

Objetivos:

El objetivo de esta práctica es comprender ciertos aspectos del empleo del multiproceso en UNIX, así como de su implementación. Para ello se ha elegido el scheduler como proceso estrella del problema.

Enunciado:

Cree un programa que responda a la siguiente página de manual:

NOMBRE

ownsched - Realiza un scheduling Round Robin entre varios procesos.

SYNOPSIS

ownsched [-s segs] [file...]

DESCRIPTION

Ownsched es una utilidad que permite repartir el uso de la CPU entre varios comandos que se ejecutan concurrentemente. Para ello suspende y reanuda la ejecución de los mismos simulando a alto nivel un algoritmo RR de asignación de recursos.
Los programas no han de requerir parámetros de entrada ni precisar el empleo de la entrada estándar.

OPCIONES

-s segs

Especifica la duración en segundos del segmento de tiempo de ejecución que se le concede a un proceso ante de ser suspendido en favor de otro.

(FIN)

Pruebe el comando con segmentos de unos 5 segundos de duración.

Cuestiones:

  • Qué sucede si el segmento de tiempo es muy pequeño, del orden de un par de segundos?
  • Modifique el programa para que responda a la estructura:

    ownsched2 [-s segs] [-n nanosegs] [file...]

    Donde en este caso se puede especificar el segmento de tiempo con precisión de nanosegundo.
    Tiene sentido intentar especificar tanta precisión en el segmento de tiempo? En qué medida es real el scheduling que realiza el comando?
  • Podría implementarse otra estrategia de scheduling diferente a Round Robin? De ser así, Cómo?

Otras funciones de utilidad:

kill(2) , sleep(3) , nanosleep(2)

Presentación:

En el directorio practica2 en su home deben existir uno o varios ficheros .c y .h así como un makefile que compile el programa mencionado. Para la corrección de la práctica se borrarán todos los ejecutables, se hará un touch a todos los ficheros fuente y se recompilará mediante el makefile, así que no servirá de nada dejar en el directorio ejecutables o ficheros objeto.

daniel.morato@unavarra.es