SISTEMAS OPERATIVOS II

Tercer curso Ingeniería Informática. Curso 2010-2011

Práctica 3: Procesos en Unix: Credenciales, prioridades y redirección

Continuar la codificación de un intérprete de comandos (shell) en UNIX. Nótese que los comandos aquí descritos deben interpretarse de la siguiente manera

Además deben tenerse en cuenta las siguientes indicaciones

En está práctica el shell permitira que se redireccione la entrada, la salida y/p el error estándar de los procesos desde el lanzados. También permitirá que se lancen desde él procesos con la prioridad cambiada. Las redirecciones de la entrada, salida y error estándar deben ser compatibles entre sí, con el cambio prioridad y con la especificación de un entorno; deben además estar disponibles tanto para la ejecución en primer plano, segundo plano y la ejecución sin crear proceso. Además, si el shell recibe un argumento de línea de comando, entenderá que este es el nombre de un fichero y se ejecutará con su entrada estándar redirigida a ese fichero.

Comandos a implementar en esta práctica

priority
[-set|-sched] [arg...] Muestra o establece la prioridad de un proceso o del propio shell

uid
[-get|-set] [args] Nuestra o establece las credenciales de usuario del proceso

 $$
Modificar la ejecución en primer plano, segundo plano y sin crear proceso, para que se pueda especificar una prioridad. La manera de hacerlo será con el símbolo "@" seguido del valor de la prioridad al final de los argumentos al ejecutable (y antes del "&" si lo hubiere)
 $$
Modificar la ejecución en primer plano, segundo plano y sin crear proceso para que se pueda realizar la redirección de la entrada, salida y/o error estándar. La manera de hacerlo es indicando in:fichero_entrada, out:fichero_salida y/o err:fichero_error después de la lista de variables del entorno y antes del ejecutable La sistaxis completa de la ejecución de programas quedaría de esta manera
[exec] [LISTAVARIABLES] [in:f1] [out:f2] [err:f3] prog [arg1...] [@pri] [&]
prog1
args ...| prog2 args ...[&] Crea un proceso que ejecuta prog1 con sus argumentos y redirecciona su salida a la entrada del proceso que ejecuta prog2. La ejecución es en primer plano o en segundo plano, si se especifica &

 $$
Modificar el shell de manera que si es invocado con un argumento, este argumento es el nombre de un fichero y el shell se ejecutará con su entrada estándar redirigida a ese fichero. Si dicho fichero no existe el shell terminará con un mensaje de error.

Información detallada de las llamadas al sistema y las funciones de la librería debe obternerse con man (open, close, sup, pipe, setuid, getpwent ...)

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 29 ABRIL DE 2011