You are on page 1of 8

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)
{
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];
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);
else
particles[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);
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;
}
}

}
EJECUCIÓN DEL PROGRAMA
CREAMOS UN PROCESO CON LA PRIMERA OPCION, Y DESPUÉS LE DAMOS SU
TAMAÑO.
EN ESTE EJEMPLO CREAMOS TRES PROCESOS Y DESPUÉS EL PROGRAMA NOS
MUESTRA LA SIMULACIÓN