Algoritmo FCFS (First come-First
served)
posee un alto
     tiempo de                              Para elegir el
 respuesta de la                          proceso al cual se
                      La planificación      le asignará la
   CPU pues el
                      FCFS elimina la     CPU, se escoge el
    proceso no
                          noción e          que lleva más
abandona la CPU
                    importancia de las       tiempo listo
  hasta no haber
                     prioridades de los     (primero en la
concluido pues es
                         procesos.               cola).
 un algoritmo Sin
   Desalojo (No
    Apropiativo)
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.
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()];
    }

    /*EN ESTA PARTE SE CALCULA EL TIEMPO PROMEDIO DE ESPERA DEL ALGORTIMO*/
    public double getTiempoEsperaPromedio(){
    for (int
    i=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;
    }
   /*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;
    }
    }
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
   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
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
Los recursos no utilizados por un grupo de porción
Ejemplo en UNIX   justa se distribuyen a otros grupos en proporciona sus
                  necesidades relativas.
Gracias
Diego Camilo Aguirre Lora

Fcfs fss

  • 2.
    Algoritmo FCFS (Firstcome-First served)
  • 3.
    posee un alto tiempo de Para elegir el respuesta de la proceso al cual se La planificación le asignará la CPU pues el FCFS elimina la CPU, se escoge el proceso no noción e que lleva más abandona la CPU importancia de las tiempo listo hasta no haber prioridades de los (primero en la concluido pues es procesos. cola). un algoritmo Sin Desalojo (No Apropiativo)
  • 4.
    El proceso quese 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.
  • 6.
    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()]; }
  • 7.
    /*EN ESTA PARTE SE CALCULA EL TIEMPO PROMEDIO DE ESPERA DEL ALGORTIMO*/ public double getTiempoEsperaPromedio(){ for (int i=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; }
  • 8.
    /*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; } }
  • 9.
    Algoritmo FSS-Panificador porreparto 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
  • 10.
    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
  • 11.
    La planificación selleva 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
  • 12.
    Los recursos noutilizados por un grupo de porción Ejemplo en UNIX justa se distribuyen a otros grupos en proporciona sus necesidades relativas.
  • 14.