SISTEMAS OPERATIVOS II

Tercer curso Ingeniería Técnica de Sistemas. Curso 2003-2004

Práctica 3: Procesos en UNIX. Prioridades

Añadir al shell de la práctica anterior las siguientes funciones de manejo de las prioridades

prio pid valor
Establece la prioridad del proceso pid a valor. Si no se indica valor informa de la prioridad del proceso pid, y si no se indican ni valor ni pid informa de la prioridad del shell.
lim pid valor
Establece el límite de la prioridad del proceso pid a valor. Si no se indica valor informa de la prioridad del proceso pid, y si no se indican ni valor ni pid informa de la prioridad del shell.
@ inc com
Crea un proceso que ejecuta el programa especificado en com (ejecutable junto con parámetros) modificando su prioridad en el valor especificado por inc (inc es un incremento). Por jemplo, la siguiente orden ejecutaría el programa a.out dentro de un xterm en el que hemos disminuido su prioridad en 4.
# @ -4 xterm -e a.out
Debe ser compatible con la ejecución en segundo plano de manera que
# & @ -4 xterm -e a.out
haría lo mismo pero la ejecución del xterm sería en segundo plano.
recursiva n
Invoca a la función recursiva n veces. La función recursiva recibe como parámetro el número de veces que se tiene que invocar; tiene 3 variables, un array automatico de 100 caracteres, un array estático de 100 caracteres y un puntero a caracter.
char auto[100];
static char estatico[100];
char * puntero;
Lo que hace esta función es (en este orden)
direcciones
Imprime las direcciones de las funciones del programa y de todas las variables globales.

Información detallada de las llamadas al sistema y las funciones de la librería debe obternerse con man

La prioridades deben modificarse con priocntl. Tanto el comando prio como el comando lim, cuando se invocan sin argumentos deben mostrar el valor de la prioridad, el valor del límite y el valor devuelto por nice().

Para comprobar el funcionamiento de las prioridades puede utilizarse el programa e.c disponible en

http://www.dc.fi.udc.es/os/~afyanez/Practicas/sources/e.c
ejecutando varias instancias del mismo en sendos xterm con distintas prioridades. Ejemplo, si e es el ejecutable resultado de la compilación de e.c
#& @ -1 xterm -e e 1000
#& @ -30 xterm -e e 1000
#& @ -50 xterm -e e 1000
nos permitirá comprobar la influencia de la prioridad en la ejecución de procesos. Para una buena comprobación del funcionamiento de las prioridades, esta práctica DEBE ejecutarse en la máquina local (castro).

FORMA DE ENTREGA Va a ser utilizado el servicio de recogida de prácticas suministrado por el Centro de Cálculo de esta Facultad y parte del proceso de corrección de las prácticas va a ser automtico (compilación, listado de practicas entregadas etc) por lo cual deben entregarse exactamente como se indica a continuación:

FECHA DE ENTREGA VIERNES 19 DICIEMBRE 2003