Autor Tema: Simulación de Memoria y procesos (mapa de bits) en lenguaje JAVA...  (Leído 11015 veces)

Kadistu

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 7
    • Ver Perfil
Saludos a todos, alguien me puede ayudar con esto..

Simular memoria.

• Cada unidad de medida representa 5 bytes, si un proceso de tamaño de 20 bytes utilizará 4 unidades de almacenamiento. Un proceso de 13 bytes utilizará 3 unidades de almacenamiento (se redondea al múltiplo de 5 mayor, en este caso, a 15).
 
• El tamaño del mapa de bits será de 100 unidades, esto equivale a almacenar cierta cantidad de procesos, de diferentes tamaños que sumándolos no pueden superar los 500 bytes o 100 unidades de almacenamiento (100 X 5 = 500).
« Última modificación: 17 de Junio 2015, 13:02 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Re:Simulación de Memoria (mapa de bits) en lenguaje JAVA...
« Respuesta #1 en: 11 de Junio 2015, 08:13 »
Hola, puedes crear una clase Proceso para representar un proceso que tenga como atributo int size (tamaño del proceso)

Por otro lado puedes crear una clase Memoria que tenga un atributo tipo array o arreglo de tamaño 100 donde cada elemento del arreglo represente un bloque de 5 bytes de memoria.

En otra clase GestorDeMemoria puedes manejar la memoria para determinar qué bloques de memoria están ocupados o libres, asignarlos y desasignarlos,etc.

Finalmente en una clase de test deberías hacer una simulación de operación teniendo varios procesos y comprobando el funcionamiento de las clases.

te recomiendo seguir este curso paso a paso para poder resolver el problema: http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=68&Itemid=188

Vete pegando el código que vayas creando para ayudarte, lee cómo hacerlo en https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0

Salu2

Kadistu

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 7
    • Ver Perfil
Re:Simulación de Memoria (mapa de bits) en lenguaje JAVA...
« Respuesta #2 en: 12 de Junio 2015, 04:37 »
Gracias por las recomendaciones. ya digité algo de código que adjunto aquí, también algunos otros requerimientos del programa.

Especificaciones del programa.

1- El programa debe contar con una pantalla inicial, en dónde aparecerá el siguiente menú de opciones:

a. Incluir un proceso
b. Eliminar un proceso
c. Salir

2- Si se escoge la primera opción, el programa solicitará dos datos: nombre del archivo y tamaño; el nombre del proceso será una letra en mayúscula del abecedario, excepto la letra “H” ya que esta letra se utilizará para especificar los huecos en la memoria. El tamaño del proceso es un número entero, no mayor a 20. El usuario incluirá números para especificar el tamaño del proceso entre 1 y 20.

3-Si se trata de incluir un proceso de tamaño 0, o menor, o uno mayor de 20, se debe enviar un mensaje de error y no se tiene que permitir la entrada de esos datos inconsistentes.

Código: [Seleccionar]
package simuladormem;
import java.util.Scanner;

public class Memoria {
     String [] memoriatotal = new String [100]; // arreglo que define el tamaño de memoria.
    private Scanner teclado;
    public int[] vec;
    private Scanner let;
    private String letra;
    public void cargar() {
        teclado=new Scanner(System.in);
        let =new Scanner (System.in);
        System.out.println("Digite el nombre del proceso");//el nombre del proceso sera una letra
     
        letra = let.next() ;
        System.out.print("Digite el tamaño del proceso:");//un numero no mayor a 20
        int n;
        n=teclado.nextInt();
        vec=new int[n];
        System.out.println("el proceso ocupa "+ n +" espacios de memoria");
            for(int f=0;f<vec.length;f++)
            {           
            System.out.println(letra);
            }
    }
   
    public void acumularmemoriatotal() {//con este método pretendo cargar los procesos en el arreglo memoriatotal,,falta de implementar, tienes alguna sugerencia,, que                  debo cambiar o incluir???
        int suma=0;                     //
        for(int f=0;f<vec.length;f++) {
            suma=suma+vec[f];
        }
        System.out.println(" Los espacios de memoria utilizados son:"+suma);
    }
}   
    /*public static void main(String[] ar) {
        Memoria m =new Memoria();
        m.cargar();
        m.acumularEnMemoriaTotal();
    }
}
« Última modificación: 17 de Junio 2015, 13:03 por Ogramar »

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".