Sunteți pe pagina 1din 18

FACULTAD DE CIENCIAS

QUIMICAS, FISICAS Y
MATEMATICAS

CCPP INGENIERIA
INFORMATICA Y DE
SISTEMAS

DOCUMENTACION DEL PROYECTO


PLANIFICACION POR LOTERÍA

Curso : Sistemas de Operaciones I

Docente : Edwin Carrasco Poblete

Alumno : Conza Berrocal Mary Helen 051687-E

Cusco - Perú

2008
Planificación de Procesos: Planificación por lotería
Sistemas de Operaciones I

INTRODUCCION

La planificación de procesos es un área de exhaustiva investigación, su


desarrollo ha llegado a ser muy determinante en cuanto a la flexibilidad y eficiencia de
ejecución del proceso, los diversos tipos de planificaciones generalmente traen consigo
cálculos que suelen entretener al procesador a dedicarse a desarrollar los procesos,
esta doctrina de planificación puede desarrollar por igual cada uno de los procesos,
claro preocupándose también por los procesos que tienen mas tiempo de espera sin ser
ejecutados y hasta por la prioridad.

Vale la pena un método de planificación que maximiza el tiempo de ejecución del


procesador, y en el cual ninguno de los procesos puede morir de inanición.

Si bien hacer promesas a los usuarios y después complicarlas es una idea admirable,
es difícil de implementar. Podemos usar otro algoritmo para obtener resultados igualmente
predecibles con una implementación mucho más sencilla. El algoritmo se llama
planificación por lotería (Waldspurger y Weihl, 1994).

La idea básica consiste en dar a los procesos boletos de lotería para los diversos
recursos del sistema, como el tiempo de CPU: Cada vez que se hace necesario tomar una
decisión de planificación, se escoge al azar un boleto de lotería, y el proceso poseedor de
este boleto obtiene el recurso. Cuando se aplica a la planificación del tiempo de CPU, el
sistema podría realizar una lotería 50 veces por segundo, concediendo a cada ganador 20ms
de tiempo de CPU como premio.

Parafraseando a George Orwell, “todos los procesos son iguales, pero algunos son
más iguales que otros”. Podemos dar más boletos a los procesos más importantes, a fin de
aumentar sus posibilidades de ganar. Si hay 100 boletos pendientes, y un proceso tiene 20 de
ellos, tendrá una posibilidad del 20% de ganar cada lotería. A largo plazo, obtendrá cerca del
20% del tiempo de CPU. En contraste con los planificadores por prioridad, donde es muy
difícil establecer qué significa realmente tener una prioridad de 40, aquí la regla es clara: un
proceso posee una fracción f de los boletos obtendrá aproximadamente una f del recurso en
gestión.

La planificación por lotería tiene varias propiedades interesantes. Por ejemplo, si aparece un
proceso nuevo y se le conceden algunos boletos, en la siguiente lotería ya tendrá una
probabilidad de ganar que será proporcional al número de boletos que recibió. En otras
palabras, la planificación por lotería es de respuesta muy rápida.

Página 2 de 18
Planificación de Procesos: Planificación por lotería
Sistemas de Operaciones I

MARCO TEORICO
En un sistema de tiempo compartido monoprocesador, se pretende utilizar un
algoritmo de planificación expulsor conocido como algoritmo de “la lotería”, cuyo
funcionamiento se describe a continuación: cuando se crea un proceso se le asigna un
número de papeletas en blanco. Por ejemplo, si hay 3 procesos preparados P1, P2 y P3, que
cuentan respectivamente con 3, 1 y 5 papeletas, estarán ordenados en la cola como P3, P1 y
P2. Cuando hay que elegir un nuevo proceso a planificar, el sistema realiza un sorteo
generando un número aleatorio entre 1 y el número total de papeletas repartidas.

Papeletas

P3 P1 P2

Tras el sorteo, encontraremos al ganador si contamos papeletas desde el principio de


la cola de preparados. Por ejemplo, si sale ganadora la papeleta séptima, el ganador será el
proceso P1.

El proceso ganador tomará control de la CPU hasta que se bloquee voluntariamente o


el sistema le expulse porque haya consumido una porción de tiempo preestablecida. El
sorteo se repite siempre que haya que elegir un nuevo proceso a planificar, teniendo en
cuenta que, en cada sorteo, el número de procesos preparados puede ser distinto y por tanto,
el número total de papeletas a considerar también.

Proporcionar a los procesos boletos de lotería para los diversos recursos del sistema
(tiempo de CPU). Cada vez que sea necesario tomar una decisión de planificación se escoge
al azar un boleto de lotería y el proceso que tiene el boleto obtiene el recurso.

En el caso de tiempo de CPU el sistema puede realizar un sorteo 50 veces por segundo,
otorgando al ganador 20 ms de tiempo de CPU.

Debido a que unos procesos son mas importantes que otros, se les da mas boletos para
aumentar sus posibilidades (tendrá una probabilidad de 20 % de ganar tendrá cerca del 20%
del tiempo de CPU)

Si un proceso tiene una fracción de boletos, obtendrá una fracción del recurso en cuestión.

Página 3 de 18
Planificación de Procesos: Planificación por lotería
Sistemas de Operaciones I
Si aparece un proceso nuevo se le conceden algunos boletos, en la siguiente vuelta ya tendrá
la posibilidad de ganar (con una probabilidad proporcional al # de boletos que recibió).

COOPERACION ENTRE PROCESOS

Los procesos cooperativos pueden intercambiar boletos si así lo desean

EJEMPLO:

Si un proceso cliente envía un mensaje a un proceso servidor y luego se bloquea, puede


regalarle sus boletos al servidor (aumentar sus probabilidades de ejecución inmediata).

Una vez que el servidor termina devuelve los boletos para que el cliente pueda ejecutarse
otra vez.

Los procesos cooperativos pueden intercambiar boletos si así lo desean. Por ejemplo, si un
proceso cliente envía un mensaje a un proceso servidor y luego ese bloque, puede regalarle
todos sus boletos al servidor, a fin de incrementar la probabilidad de que el servidor se
ejecute a continuación. Una vez que el servidor termina, devuelve los boletos para que el
cliente pueda ejecutarse otra vez. De hecho, en ausencia de clientes los servidores no
necesitan boletos.

En esta metodología de planificación el usuario es el que ingresa los procesos que es algo
que el programa requiere necesariamente.

Luego, el microprocesador es otro actor que se encarga de sortear el tickets (sin realizar
cálculos que no pueden ocuparle lo mínimo de tiempo) y, ejecutar el proceso, que por
contener el ticket sorteado, es el que pasa a ejecutar. Claro que mientras se este ejecutando el
proceso no se puede realizar el sorteo, a menos que si hubiera un proceso de entrada/salida,

Página 4 de 18
Planificación de Procesos: Planificación por lotería
Sistemas de Operaciones I
en ese caso el proceso que se estaba ejecutando es llevado nuevamente a la cola de listos
(pues es expulsivo).

El sistema es el que asigna las papeletas a los procesos en cada ciclo de reloj beneficiando a
los que estén más tiempo sin ejecutarse y a también de acuerdo a la prioridad.

Página 5 de 18
Planificación de Procesos: Planificación por lotería
Sistemas de Operaciones I

PROCESO DE DESARROLLO
Los modelos presentados a continuación corresponden al proceso de desarrollo basado en el
trabajo que hace más de un lustro vienen realizando los “three amigos”, Grady Booch, James
Rumbauh e Ivar Jacobson, y ha tomado forma en el proceso unificado (United Process UP),
como guía metodológica y el lenguaje Unificado de Modelado(United Modeling
Language,UML), como notación para los modelos.

Página 6 de 18
Planificación de Procesos: Planificación por lotería
Sistemas de Operaciones I

DISEÑO DE LAS CLASES


Se implementaron dos clases:

La ClaseLista consta de procesos que el algoritmo proporciona aleatoriamente

ClaseLista:
Atributos:
• protected ClaseProceso aProceso;
 //Es el primer elemento de la lista
• protected ClaseLista aSubLista;
 //Es la lista sin considerar el aProceso

Constructores:
• public ClaseLista()
 //Inicializa con los atributos en null
• public ClaseLista(ClaseProceso aProceso, ClaseLista aSubLista)
 //Inicializa con los parámetros señalados

Constructores:
• public ClaseProceso(int aIdentificador, int aNroPapeletas, int
aTInicio, int aServidor, int aPrioridad)
 //crea el proceso con esos parámetros ingresados
• public ClaseProceso(int aTInicio)
 //crea proceso inicializando todo en 0 excepto el Tiempo de Inicio
Métodos y propiedades:
• get y set de cada atributo;
• public boolean EsVacia();
 //retorna “true” si la lista esta vacia
• public void Insertar(ClaseProceso Proceso)
 //inserta “Proceso” en la lista
• boolean ExisteElemento(ClaseProceso Proceso)
 //retorna “true” si existe elemento

Página 7 de 18
Planificación de Procesos: Planificación por lotería
Sistemas de Operaciones I
• public void Eliminar(int posicion)
 //elimina elemento que ocupa una determinada “posición”
en la lista
• public int Longitud()
 //retorna el numero de procesos que contiene la lista
• public ClaseProceso Iesimo(int i)
 //retorna proceso en la posición “i”
• public int Posicion(ClaseProceso Proceso)
 //devuelve la posición del “Proceso”

ClaseProceso:

Constructores:
• public ClaseProceso(int aIdentificador, int aNroPapeletas, int
aTInicio, int aServidor, int aPrioridad)
 //crea el proceso con esos parámetros ingresados
• public ClaseProceso(int aTInicio)
 //crea proceso inicializando todo en 0 excepto el Tiempo de Inicio

Atributos:
• protected int aIdentificador;
• //Es el identificador del proceso,
• protected int aNroPapeletas;
• //El número de papeletas del proceso, es el único atributo que
asignado por el //sistema, es el único que se modifica en cada ciclo
de reloj
• protected int aTInicio;
• //tiempo en el que inicio, asignado por “time t”
• protected int aServidor;
• //Indica su proceso servidor
• protected int aPrioridad;
- //Indica la prioridad de ejecución
• protected int aServ;
• //Indica el proceso servidor que aun no se ingresa en la cola de
listos, este //atributo sirve para retornarlos tickets al cliente cuando
su servidor ya se //ejecutó

Métodos y propiedades:
• get y set de cada atributo

NOTA: Todos los atributos son aleatorios, excepto el ID (que asume su valor en
orden secuencial), y el aTInicio (que toma su valor del “time t”).

Página 8 de 18
Planificación de Procesos: Planificación por lotería
Sistemas de Operaciones I

DISEÑO DE LA APLICACIÓN
La aplicación tendrá los siguientes módulos:
public void CrearProceso()
public void DaPapeletas()
public ClaseProceso ProcesoGanador(int k)
public int ProcesoNormal()
private void DevolverPapeletas(ClaseProceso Proceso)

Variables Globales:
Como se ha podido ver hay variables que se tienen que actualizar con cada ciclo de reloj,
pero otras no, aquí vemos las variables que tienen que actualizarse y que están en
disposición para todos los modulos.
int ID=0;
//Variable contador, para asignar identificador a cada proceso al rato de crearse
int tiempo=0;
//Variable contador de ciclos de reloj, cada ciclo aumenta en 1;
int TiempoEntroProcesador=0;
//Tiempo en el que el proceso ingresa al estado ejecutando
int TotalPapeletas=0;
//Variable acumulador de ticket en total, se va actualizándose al crear procesos, al
//ejecutar procesos y en cada ciclo de reloj
Random Aleatorio=new Random();
//Para realizar todo aleatoriamente como papeleta ganadora, tiempo para crear
//procesos y tiempo para eliminar procesos por pasar al estado ejecutando.
ClaseProceso Proceso=new ClaseProceso(0);
//Crea el objeto proceso con tiempo inicial 0;
ClaseLista Lista=new ClaseLista();
//Crea el objeto Lista con aProceso=null y aSubLista=null;

Página 9 de 18
Planificación de Procesos: Planificación por lotería
Sistemas de Operaciones I

INTERFAZ

Se puede observar:

Nuevo:Es el proceso que se guardará en la cola de Listos o si esta libre el procesador va al


procesador directamente.

Cola de listos: Es la cola donde esperan los procesos para ser ejecutados.

Ticket Sorteado: Es el ticket que ejecuta el microprocesador.

Proceso Ganador: Proceso poseedor del tickets, pasa al microprocesador para ejecutarse.

Ingrese función de Entrada y Salida: Boton que sirve para simular un proceso de
entrada/salida, al proceso que esta ejecutando lo lleva nuevamente a la
cola de listos.

Página 10 de 18
Planificación de Procesos: Planificación por lotería
Sistemas de Operaciones I
A continuación, se va a explicar los procesos Cliente/servidor y Entrada/Salida
mediante esta interfaz;

Página 11 de 18
Planificación de Procesos: Planificación por lotería
Sistemas de Operaciones I

CLIENTE/SERVIDOR

Primero la lista esta vacía, proceso 0 se está ejecutando.

Página 12 de 18
Planificación de Procesos: Planificación por lotería
Sistemas de Operaciones I

Segundo, ingresa a la cola de listos los procesos 1 y 2, observar que ambos no pueden
ejecutarse por ser clientes (debido la tercera fila).

Página 13 de 18
Planificación de Procesos: Planificación por lotería
Sistemas de Operaciones I

Tercero, ingresa el proceso tres la cola de listos, y su servidor 3 le presta sus tickets a su
servidor.

Página 14 de 18
Planificación de Procesos: Planificación por lotería
Sistemas de Operaciones I

Luego, 2 gana pero es cliente; entonces, se realiza un nuevo sorteo, en el que gana 3 y es
atendido, al estarse ejecutando este da permiso para que su cliente se pueda ejecutar, además
le devuelve sus tickets que este le había prestado para que se ejecute.

Página 15 de 18
Planificación de Procesos: Planificación por lotería
Sistemas de Operaciones I

ENTRADA/SALIDA

Para que este proceso se ejecute se debe presionar el botón que dice “Ingrese Función de
Entrada y salida”

Antes de que se presione el botón, el proceso 3 se estaba ejecutando.

Página 16 de 18
Planificación de Procesos: Planificación por lotería
Sistemas de Operaciones I

Después de que se presiona el botón, el proceso 3 es expulsado y vuelve a la cola de listos,


para concursar otra vez por el sorteo para ser ejecutado.

Página 17 de 18
Planificación de Procesos: Planificación por lotería
Sistemas de Operaciones I

REFERENCIAS
BIBLIOGRAFÍA
[1] TANENBAUH A.; "Sistemas de Operaciones Modernos". Prentice-Hall. 1992.
[2] ECKEL BRUCE; “Piensa en Java”. Pearson Educacion.S.A Madrid 2002.

WEBGRAFÍA

[1] http://www.dia.eui.upm.es/asignatu/sis_op1S/Examenes%20SOI/examenes/0304de2.doc
[2] http://www.ldc.usb.ve/~spd/Docencia/sop1.html
[3] http://www.planificacionprocesos.usb.ve/~spd/Docencia/sop1.html
[4] http://www.notasinformaticas/sop1.html
[5] http://www.sistemasoperativostodos/sop1.html

Página 18 de 18

S-ar putea să vă placă și