miércoles, 15 de junio de 2016

Sistema de Administración de Procesos FCFS (Firts-Come, First-Served) en Java

La administración de procesos mediante este método ejecuta los procesos según llegues en cola, lo que significa que el primer proceso que llegue será el primero en ser atendido y el primero en salir por eso mismo también se le conoce como el método FIFO (Firts Intput, Firts Output), loa cual significa que cada procesos tarde dependiendo del numero de procesos que se encuentran en cola, entonces tomando en principio del método se plantea el siguiente ejemplo:
Llegan tres procesos sean los cuales A = 23 , B = 12 y C = 1

Tiempo de espera de A es 0 ya que es el primero en llegar

A = 0

Tiempo de espera de B es 23  ya que espero a la ejecución del A

B = 0

Tiempo de espera de C es de 35 por la espera de  los procesos A y B

C=0

Ahora seguimos a la parte del código el cual esta realizado en el lenguaje Java.

Este es el método que hace todos los cálculos


public void fcfs(){
    //Se define el número de procesos       
    tamar=Integer.parseInt(nprocesos.getText()); 
    //Inicialización de Variables para el almacenamiento de los datos    
      int p[] = new int[tamar];
        int co[] = new int[tamar];
        int es[] = new int[tamar];
        int vuelta[] = new int[tamar];
    //Entrada de los valores de Cada procesos    
        for (int i = 0; i < tamar; i++) {
            co[i] = p[i] = Integer.parseInt(JOptionPane.showInputDialog("introduza el tamanio "
                    + "del proceso [" + (i + 1) + "]"));
        }
        //se imprime el valor de cada uno de los procesos
        for (int i = 0; i < p.length; i++) {
        
            txtoriginales.append("\nP[" + (i + 1) + "] : " + p[i] + "\t");
        
        }
        vuelta[0] = 0;
        //Se calcula el total de rondas que tadan los procesos
        for (int i = 1; i < tamar; i++) {
            vuelta[i] = vuelta[i - 1] + co[i - 1];
            total = total + vuelta[i];
        }
        //se calcula el tiempo de espera de cada una de los procesos
        for (int i = 0; i < p.length; i++) {
            es[i] = vuelta[i] + co[i];
            tiempo_espera += vuelta[i];
            tiempo_ida += es[i];

        }
        //Impresion de los datos Calculados
txtesta.append("\nProceso\ttamanio\tespera\tida" );
        for (int i = 0; i < p.length; i++) {
            txtesta.append("\np[" + (i + 1) + "] \t   " + co[i] + "\t   " + vuelta[i] + "\t" + es[i]);
        }
        //Se Calcula el promedio de las rondas y de las esperas de los procesos
        promedioespera.setText(""+ (tiempo_espera / tamar));
        promedioida.setText(""+ (tiempo_ida / tamar));
     }

Espero haya sido de ayuda.

Aquí te dejo el código:

FCFS



No hay comentarios.:

Publicar un comentario