Está en la página 1de 4

Proyecto I

Computacin II (ci-2126)
Secciones 5 y 6

El planificador de tareas.

Profesor Darwin Rocha


Abril-julio 2016

El planificador de tareas es dispositivo electrnico que se utiliza para


organizar la realizacin de ciertas tareas que piden los usuarios va
internet. El principal objetivo es atender a varios usuarios a la vez; l
debe dar repuestas a todos en la brevedad de lo posible, aunque esta
respuesta sea parcial.
Un usuario debe solicitar al menos la ejecucin de una tarea y un
mximo que se establece por cada planificador, las solicitudes se hacen
todas en una sola peticin, en caso que un usuario se conecte y no tengas
tareas, se considera rechazado, si hubiese en una peticin ms
solicitudes que las permitidas por el planificador, solo se atendern las
permitidas y la otras se consideran rechazadas e ignoradas.
Una peticin, est compuesta por solicitudes de ejecucin de tareas, cada
solicitud tiene mximo una tarea. El usuario puede solo hacer una
peticin por cada conexin, pero se puede conectar varias veces, es
importante saber cuntas veces se ha conectado.
Las tareas, son la ejecucin de ciertos algoritmos que se nombran a
continuacin: suma, resta, multiplicacin, divisin, raz cuadrada y
elevacin. Los datos necesarios para la operacin vienen en el mismo
archivo que la peticin y, las respuestas estarn en el archivo de salida.

El planificador, lleva un orden circular de los usuarios que est


atendiendo, si llega un nuevo usuario, se le asigna una ip y se incorpora
a este orden. El planificador tiene un lmite en las ip a asignar, si an
usuario no se le puede asignar una ip se considera rechazado. Para la
asignacin de la ip se sigue las siguientes polticas:
hay una pila de ips disponibles, de la cual se toma el tope.
Si no hubiese ip disponibles, se revisa las ip liberadas, si hubiesen,
se llena la pila de ips disponibles de tal forma que, en el tope,
quede la primera ip en ser liberada.

Si no hubiese ip disponibles, ni liberadas, se rechaza la conexin


del usuario.
El manejo del planificador, sobre los usuarios es el siguiente:
Si un usuario intenta conectarse y no tiene tareas, es rechazado.
Si es admitido se colocar de ultimo en el orden circular.
para usuario que se haya admitido y se ejecutaron todas sus tareas,
se considera atendido, sale del orden circular y su ip es liberada.
El planificador adems, puede recibir rdenes especiales a las que
llamaremos token, que no es ms que un nmero entero, que en caso de
ser recibido se ejecuta una accin particular segn se explica en la
siguiente seccin.
El planificador almacena las tareas, hasta un mximo, hasta que recibe el
token= -1 en ese momento se ejecutan en orden de llegada todas la
tareas almacenadas, por cada usuario solo se puede ejecutar una tarea a
la vez y se debe dar tiempo de ejecucin al siguiente usuario, esta
planificacin se conoce como round-robin y se aplicar sobre las tareas
de los usuarios. Cuando se hayan ejecutados las tareas almacenadas, no
se volver a almacenar ms tareas, hasta recibir el token=-2 y se
almacenaran, hasta alcanzar el mximo de tareas que puede almacenar.
El planificador termina su labor cuando:
se atendieron todos los usuarios admitidos y ya no hay ms
usuarios haciendo solicitudes
O se recibe le tokem=-10 (salida abrupta, finalizan todas las
ejecuciones)
De los usuarios que harn conexin, se tiene la siguiente informacin:
1. Identificador, alfanumrico de mximo 10 caracteres.
2. Numero de tareas a realizar

3. Tareas a realizar en una sola lnea, separadas por * entre tareas y #


los datos.
Ejemplo: 1#5#7*6#3#3*5#4
Suma 5 y 7, eleva 3 a la 3 y obtn la raz cuadrada de 4
Donde 1 para suma, 2 para resta, 3, para multiplicacin, 4 para divisin,
5 para raz cuadrada, 6 para elevacin

Se requiere que usted, haga un programa en C que simule todos los


procesos del planificador es importante que su proyecto pueda ser
ejecutado en LINUX
Usted recibir como insumos de su proyecto un archivo llamado: data.in
que contendr toda la informacin referente al planificador, sus usuarios
y sus tareas, puede haber varios casos de prueba y un archivo plan.confi
que tendr la configuracin del planificador
Su programa deber generar un archivo de salida con el nombre:
planificador.out
Que contendr la siguiente informacin:

Cantidad de usuarios que hicieron conexin


Cantidad de usuarios rechazados, admitidos y atendidos.
Por cada usuario la cantidad de tareas admitidas y rechazadas
Por cada usuario, se debe especificar: la tarea, valores y resultado.
Recuerde que un usuario se puede conectar varias veces.
Si hay ips liberadas: cuantas y cuales
si la salida fue abrupta se debe especificar en la cabecera de la salida:
salida abrupta y aadir todo lo anterior ms:
Usuarios pendientes (en el orden circular) y sus tareas
almacenadas para ejecucin