martes, 21 de agosto de 2012

Planificación por reparto equitativo



Se usa en los sistemas multiusuario.
Cada usuario tiene asignado algún tipo de ponderación, que indica la parte de los recursos del sistema para el usuario como una fracción de la utilización total de dichos recursos. En particular, cada usuario dispone de una parte del procesador. Este esquema debe funcionar de una forma más o menos lineal, por lo que si un usuario A tiene un peso dos veces mayor que el de un usuario B, entonces, a la larga, el usuario A debe poder hacer el doble de trabajo que B. El objetivo de un planificador por reparto equitativo es supervisar el uso, de forma que se asignen menos recursos a los usuarios que han consumido más de lo que les corresponde y más recursos a los que han consumido menos de lo que le corresponde.

En un sistema multiusuario, si las aplicaciones o los trabajos de los usuarios pueden organizarse en forma de varios procesos (o hilos), se dispone de una estructura para el conjunto de procesos que no se identifica con ningún planificador tradicional. Desde el punto de vista del usuario, el interés no está en cómo se comporta un proceso en particular, sino en cómo se comporta el conjunto de procesos de usuario que constituyen una aplicación. Así pues, sería interesante poder tomar decisiones de planificación en función de estos grupos de procesos. Este enfoque se conoce generalmente como planificación por reparto equitativo.

La planificación se lleva a cabo por prioridades, teniendo en cuenta la prioridad básica del proceso, su utilización reciente de la CPU y la utilización reciente de la CPU por parte del grupo al que pertenece. Cuanto mayor es el valor numérico de la prioridad, menor es ésta. Las fórmulas siguientes se aplican al proceso j del grupo k.
CPUj(i) = CPUj(i - 1) / 2
GCPUk(i) = GCPUk(i - 1) / 2
Pj(i) = Basej + CPUj(i - 1) / 2 + GCPUk(i - 1) / (4 x Wk)
Donde:
CPUj(i) = Media ponderada de la utilización de la CPU del proceso j en el intervalo i.
GCPUk(i) = Media ponderada de la utilización de la CPU del grupo k en el intervalo i.
Pj(i) = Prioridad del proceso j al principio del intervalo i; los valores más bajos indican prioridades más altas.
Basej = Prioridad de base del proceso j.
Wk = Peso asignado al grupo k, con la restricción de 0 <= Wk <= 1 y S Wk = 1.

Cada proceso tiene asignada una prioridad de base. Esta prioridad desciende a medida que el proceso y el grupo al que pertenece utilizan la CPU. En el caso de la utilización del grupo, la media se normaliza dividiendo por el peso del grupo. Cuanto mayor es el peso asignado al grupo, menos afecta su utilización a la prioridad.














Implementación de acciones:

Cada segundo t1: programación a nivel de usuario
para cada usuario
Cada uso y actualización de los costos incurridos en los últimos segundos t1
Usado por usuario = usageuser × K1 + chargesuser
Restablecer recuento del costo
chargesuser = 0
Cada segundo T2: decaimiento de las prioridades del proceso
para cada proceso
priorityprocess priorityprocess = K2 × × (niceprocess + K3)
Cada segundo t3: ajuste de prioridad
prioritycurrent_process = prioritycurrent_process +
usagecurrent_user × active_processescurrent_user acciones 2
current_user
En cada evento de programación: el proceso de selección actual
chargescurrent_user = costo + chargescurrent_user + costo  del evento
ejecutar el proceso con prioridad más baja







Prioridad de normalización:
max_priorida = 0
for each process
if
max_priorida < priorityprocess ≤ priority_bound
then
max_priorida= priorityprocess
for each process
Scale priority to appropriate range
if
priorityprocess ≤ max_priorida
then
normalised_priorityprocess = (K4 − 1) ×
priorityprocess
max_priorida
else
normalised_priorityprocess = K4








Ajustando grupos:
for each group (descend hierarchy)
if
actual_machine_proportiongroup <  K6 ×  machine_proportion_duegroup
entonces
for each user in the group (descend hierarchy)
chargesuser = chargesuser  × actual_machine_proportiongroup K6 × machine_proportion_duegroup




Web Grafía  :



1 comentarios:

Sistemas Operativos dijo...
Este comentario ha sido eliminado por el autor.

Publicar un comentario

 

Algoritmos de Planificación Copyright © 2010 | Designed by: Compartidisimo