programa de memoria fija

9
PROGRMA DE MEMORIA FIJA INTRODUCCIÓN La memoria estática es memoria que se reserva en el momento de la compilación, antes de comenzar a ejecutarse el programa. El inconveniente de la reserva estática es que la cantidad de memoria se reserva siempre antes de conocer los datos concretos del problema a resolver. Eso lleva a reservar siempre un máximo de memoria que en la mayor parte de las ocasiones no se va a necesitar. La reserva estática tampoco se adapta bien a la memoria real disponible en el ordenador en que se está ejecutando el programa. OBJETIVO Crear un programa de simulación de procesos, utilizando memoria fija. import java.awt.*; import javax.swing.*; import java.util.*; import java.awt.event.*; import java.awt.*; import java.applet.*; import java.util.Random; public class ParticleApplet extends Applet { protected Thread[] threads=null; protected final ParticleCanvas canvas = new ParticleCanvas(300); public int cont=0; public int segmentos[]=new int [5];

Upload: ionijohn

Post on 13-Nov-2014

114 views

Category:

Documents


8 download

DESCRIPTION

Pequeño gestor de memoria fija

TRANSCRIPT

Page 1: Programa de Memoria Fija

PROGRMA DE MEMORIA FIJA

INTRODUCCIÓN

La memoria estática es memoria que se reserva en el momento de la compilación, antes de comenzar a ejecutarse el programa. El inconveniente de la reserva estática es que la cantidad de memoria se reserva siempre antes de conocer los datos concretos del problema a resolver. Eso lleva a reservar siempre un máximo de memoria que en la mayor parte de las ocasiones no se va a necesitar. La reserva estática tampoco se adapta bien a la memoria real disponible en el ordenador en que se está ejecutando el programa.

OBJETIVO

Crear un programa de simulación de procesos, utilizando memoria fija.

import java.awt.*;import javax.swing.*;import java.util.*;import java.awt.event.*;import java.awt.*;import java.applet.*;import java.util.Random;

public class ParticleApplet extends Applet {

protected Thread[] threads=null;protected final ParticleCanvas canvas = new ParticleCanvas(300);public int cont=0;public int segmentos[]=new int [5];

public void init() {

add(canvas);}

public void paint(Graphics g) { g.setColor(Color.black); g.fillRect(0,0,800,800);

}protected Thread makeThread(final Particle p){

Page 2: Programa de Memoria Fija

Runnable runloop=new Runnable(){

public void run(){System.out.println("runloop valor= "+p.valor+"de: "+p.nombre);

try{

System.out.println("runloop volumen= "+p.volumen);for(;;){

if(p.valor==0){

System.out.println("runloop volumen= "+p.volumen);

p.move();

canvas.repaint();

Thread.sleep(1300);}

}}catch(InterruptedException e){return;}

}};return new Thread(runloop);

}

public synchronized void start(){

segmentos[0]=300;segmentos[1]=500;segmentos[2]=800;segmentos[3]=1100;segmentos[4]=1400;int n=15;int v=15;int x1=15;int y2=101;

int e;if(threads==null){

Particle[] particles= new Particle[n];

Page 3: Programa de Memoria Fija

JOptionPane.showMessageDialog(null, "PROGRAMA DE ADMINISTRACÌÓN DE MEMORIA","MEMORIA",JOptionPane.INFORMATION_MESSAGE);

JOptionPane.showMessageDialog(null, "EL MAXIMO DE PROCESOS ES 4\n EL TAMAÑO MAX DE UN PROCESO ES DE 300","MEMORIA",JOptionPane.INFORMATION_MESSAGE);

do{System.out.println("Programa MEMORIA");String respc;

respc = JOptionPane.showInputDialog("1)Nuevo PROCESO \n2) VER PROCESOS");

e = Integer.parseInt(respc);if(e==1){

respc = JOptionPane.showInputDialog(" ¿ Cantidad de TAMAÑO ? ");

int c = Integer.parseInt(respc);if(c<301){

cont+=1;if((cont%5)==0){

y2+=200;x1=5;

}if(cont==1)

particles[cont-1]=new Particle("PROCESO "+cont,x1,y2,16,16,false,0,c);

elseparticles[cont-1]=new

Particle("PROCESO "+cont,x1,y2,16,16,false,v,c);v-=1;

y2+=73;}else

JOptionPane.showMessageDialog(null, "EL MAXIMO DE TIEMPO ES 300","MEMORIA",JOptionPane.INFORMATION_MESSAGE);

}}while(e!=2&&cont!=5);

Page 4: Programa de Memoria Fija

canvas.setParticles(particles);threads=new Thread[cont];

for(int i=0;i<cont;++i){

System.out.println("numero de hilos "+threads.length);threads[i]=makeThread(particles[i]);

threads[i].setPriority(i+1);threads[i].start();

}

}

}

public synchronized void stop(){if(threads != null){

for(int i=0;i<threads.length;++i)threads[i].interrupt();

threads=null;}

}

}

Page 5: Programa de Memoria Fija

EJECUCIÓN DEL PROGRAMA

Page 6: Programa de Memoria Fija

CREAMOS UN PROCESO CON LA PRIMERA OPCION, Y DESPUÉS LE DAMOS SU TAMAÑO.

Page 7: Programa de Memoria Fija

EN ESTE EJEMPLO CREAMOS TRES PROCESOS Y DESPUÉS EL PROGRAMA NOS MUESTRA LA SIMULACIÓN

Page 8: Programa de Memoria Fija