Fcfs fss

14

Transcript of Fcfs fss

Page 1: Fcfs   fss
Page 2: Fcfs   fss

Algoritmo FCFS (First come-First

served)

Page 3: Fcfs   fss

posee un alto tiempo de

respuesta de la CPU pues el proceso no

abandona la CPU hasta no haber

concluido pues es un algoritmo Sin

Desalojo (No Apropiativo)

La planificación FCFS elimina la

noción e importancia de las prioridades de los

procesos.

Para elegir el proceso al cual se

le asignará la CPU, se escoge el

que lleva más tiempo listo

(primero en la cola).

Page 4: Fcfs   fss

El proceso que se está ejecutando solo cede la CPU por dos razones:

Que se bloquee voluntariamente en espera de un evento. (Impresora,

fichero, etc)

Cuando termina su ejecución

Ventaja

• fácil implementación

Desventaja

• no es válido para entornos interactivos ya que un proceso de mucho cálculo de CPU hace aumentar el tiempo de espera de los demás procesos.

Page 5: Fcfs   fss
Page 6: Fcfs   fss

Ejemplo en Java

import java.util.*;

public class FCFS {

/*ESTA CLASE RECIBE UN VECTOR CON TODOS LOS DATOS QUE SE NECESITAN PARA

EMPEZAR A EJECUTAR EL ALGORITMO, EN ESTE SE EMPIEZAN A

EJECUTAR LOS PROCESOS A COMO FUERON LLEGANDO*/

Vector VectorProcesos;

private double DoubleTiempoEspera=0;

private int DoubleTiempoEspera1=0;

private int vectoraux[];

private int NumeroProceso[];

private String ProcesosNombres[];

private double vectoraux1[];

/*EN EL CONTRUCTOR SE RECIBE EL VECTOR CON TODOS LOS DATOS DE LOS

PROCESOS*/

public FCFS(Vector VectorProcesos){

this.VectorProcesos = VectorProcesos;

vectoraux=new int[VectorProcesos.size()];

NumeroProceso=new int[VectorProcesos.size()];

ProcesosNombres=new String[VectorProcesos.size()];

vectoraux1=new double[VectorProcesos.size()];

}

Page 7: Fcfs   fss

/*EN ESTA PARTE SE CALCULA EL TIEMPO PROMEDIO DE ESPERA DEL ALGORTIMO*/public double getTiempoEsperaPromedio(){for (inti=0;i DoubleTiempoEspera+=((Procesos)VectorProcesos.elementAt(i)).getIntTiempoRafaga();DoubleTiempoEspera1+=((Procesos)VectorProcesos.elementAt(i)).getIntTiempoRafaga();ProcesosNombres[i]=((Procesos)VectorProcesos.elementAt(i)).getStringNombre();NumeroProceso[i]=((Procesos)VectorProcesos.elementAt(i)).getIntTiempoLlegada()+1;vectoraux[i]=DoubleTiempoEspera1;vectoraux1[i]=DoubleTiempoEspera;}DoubleTiempoEspera=0;for (int i=0;i DoubleTiempoEspera+=vectoraux1[i];}DoubleTiempoEspera=DoubleTiempoEspera/VectorProcesos.size();return DoubleTiempoEspera;}/*SE DEVUELVEN LOS TIEMPOS DE RAFAGA*/public int[] getValores(){return vectoraux;}

Page 8: Fcfs   fss

/*SE DEVUELVEN EL TIEMPO DE RAFAGA*/

public String[] getNombre(){

return ProcesosNombres;

}

/*SE DEVUELVE EL NUMERO DE PROCESO*/

public int[] getNumeroProceso(){

return NumeroProceso;

}

/*SE DEVUELVE EL TIEMPO PROMEDIO DE ESPERA*/

public double imprimeResultado(){

System.out.println(DoubleTiempoEspera);

return DoubleTiempoEspera;

}

}

Page 9: Fcfs   fss

Algoritmo FSS-Panificador por reparto equitativo

Utilizado en sistemas multiusuario con procesos

paralelos (hilos)

cómo se comporta el conjunto de procesos de usuario que constituyen

una aplicación.

cada usuario dispone de una parte del procesador

Page 10: Fcfs   fss

la planificación se lleva 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

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

La FSS tiene en cuenta el historial de ejecución de un grupo a fin de procesos, junto con el historial de ejecución individual de cada proceso

Page 11: Fcfs   fss

La planificación se lleva a cabo por prioridades. Cuanto mayor es el valor numérico de la prioridad menor es ésta. Se tiene en cuenta para la asignación de prioridades:

Prioridad Básica del proceso

Uso de CPU recientemente por parte del proceso

Uso de CPU recientemente por parte del grupo al que pertenec2

Page 12: Fcfs   fss

Ejemplo en UNIX Los recursos no utilizados por un grupo de porción justa se distribuyen a otros grupos en proporciona sus

necesidades relativas.

Page 13: Fcfs   fss
Page 14: Fcfs   fss

Diego Camilo Aguirre Lora

Gracias