PDF de programación - SmartHunter marcador

Imágen de pdf SmartHunter marcador

SmartHunter marcadorgráfica de visualizaciones

Publicado el 14 de Enero del 2017
536 visualizaciones desde el 14 de Enero del 2017
101,7 KB
7 paginas
Creado hace 12a (17/01/2012)
SmartHunter marcador

Programación concurrente y Distribuída

Curso 2011-12

Miguel Telleria, Laura Barros, J.M. Drake

telleriam AT unican.es

Computadores y Tiempo Real

http://www.ctr.unican.es

Computadores y Tiempo Real
Universidad de Cantabria

Programación concurrente y distribuída

SmartHunter marcador

Objetivo

● En el programa SmartHunter crear una partición marcador

para llevar la cuenta de:
● Jets inofensivos
● Misiles lanzados (por batería)
● Jets que han impactado.

● Jets ofensivos sin misil
● Jets derribados (por baterias)

inofensivos: 0 no asignados: 0 impactos: 0
con misil/explotados: E -> 0/0 N -> 0/0 O -> 0/0 S -> 1/0

● Lo complicºado:

● Saber donde poner las llamada ← Esto os lo daremos hecho siempre
● Gestionar la concurrencia

● Lo fácil

● Distribuirlo

17 Enero 2012

Miguel Telleria de Esteban telleriam AT unican.es)

Página 2 de 7

Computadores y Tiempo Real
Universidad de Cantabria

Programación concurrente y distribuída

SmartHunter marcador

Interfaz

public interface Marcador
{

// Se llama para esperar a que se inicialicen los datos
public void init();

// Lo llama AirRaid cuando genera un nuevo jet inofensivo
public void nuevo_jet_inofensivo();

// Lo llama AirRaid cuando genera un nuevo jet ofensivo
public void nuevo_jet_ofensivo();

// Lo llama AirRaid cuando detecta el impaco
public void nuevo_impacto();

// Lo llama missil cuando se le asigna un jet
public void nuevo_misil_lanzado(String cardinalidad);

// Lo llama SpeedFalcon cuando se le hace explotar
public void jet_explotado(String cardinalidad);

}

17 Enero 2012

Miguel Telleria de Esteban telleriam AT unican.es)

Página 3 de 7

Computadores y Tiempo Real
Universidad de Cantabria

Programación concurrente y distribuída

SmartHunter marcador

Datos que mantiene

public class Marcador
{

private Object lock_num_jets_inofensivos;
private int num_jets_inofensivos;

private Object lock_num_jets_no_asignados;
private int num_jets_no_asignados;

private Object lock_num_impactos;
private int num_impactos;

private Hashtable<String, Object> locks_num_misiles_asignados;
private Hashtable<String, Integer> nums_misiles_asignados;

private Hashtable<String, Object> locks_num_misiles_explotados;
private Hashtable<String, Integer> nums_misiles_explotados;
private Object lock_print;

// Estos se inicializan los primeros
private boolean inicializados = false;
private Object lock_init = new Object();

...

17 Enero 2012

Miguel Telleria de Esteban telleriam AT unican.es)

Página 4 de 7

Computadores y Tiempo Real
Universidad de Cantabria

Programación concurrente y distribuída

SmartHunter marcador

Inicializacion

public Marcador()
{

lock_num_jets_inofensivos = new Object();
num_jets_inofensivos = 0;
...

locks_num_misiles_asignados = new Hashtable<String,Object>();
nums_misiles_asignados = new Hashtable<String,Integer>();
locks_num_misiles_explotados = new Hashtable<String, Object>();
nums_misiles_explotados = new Hashtable<String, Integer>();

for (String cardinalidad : GeoData.BATTERY_NAME)
{

locks_num_misiles_asignados.put(cardinalidad, new Object());
nums_misiles_asignados.put(cardinalidad, 0);
locks_num_misiles_explotados.put(cardinalidad, new Object());
nums_misiles_explotados.put(cardinalidad, 0);

}
...
// Cuando ya esta todo inicializado

synchronized(lock_init)
{

inicializados = true;
lock_init.notify();

}

17 Enero 2012

}

Miguel Telleria de Esteban telleriam AT unican.es)

Página 5 de 7

Computadores y Tiempo Real
Universidad de Cantabria

Programación concurrente y distribuída

SmartHunter marcador

Sincronismo de espera en inicialización

public void init()
{

synchronized(lock_init)
{

while (!inicializados)
{

try {

lock_init.wait();

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}

17 Enero 2012

Miguel Telleria de Esteban telleriam AT unican.es)

Página 6 de 7

Computadores y Tiempo Real
Universidad de Cantabria

Programación concurrente y distribuída

SmartHunter marcador

Distribución
● Partiendo de la versión monoprocesador

● Distribuir el marcador a una partición distinta con RMI
● Distribuir el marcador a una partición distinta con ICE

● Desactivar el lanzamiento de misiles para testear la detección de

los impactos.

● Nota sobre la implementación de Ice y funciones con '_':
Ice no soporta por defecto identificadores con subrayados en slice.



● A partir de ice 3.4, sí se pueden usar dando la opción –underscore al

slice2java.

slice2java --tie --underscore SmartHunterMarc.ice

17 Enero 2012

Miguel Telleria de Esteban telleriam AT unican.es)

Página 7 de 7
  • Links de descarga
http://lwp-l.com/pdf1042

Comentarios de: SmartHunter marcador (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad