Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Kadistu en 11 de Junio 2015, 03:08
-
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).
-
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
-
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.
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();
}
}