Algoritmo filosofos comensales

Páginas: 2 (288 palabras) Publicado: 1 de diciembre de 2014
FILÓSOFOS COMENSALES

Érase una vez cinco filósofos que vivían juntos. La vida de cada filósofo consistía principal-mente en pensar y comer y, tras años de pensar, todos los filósofos sehabían puesto de acuerdo en que la única comida que contribuía a sus esfuerzos pensadores eran los espaguetis.

Los preparativos de la comida eran simples: una mesa redonda en la que había unagran fuente de espaguetis, cinco platos, uno para cada filósofo y cinco tenedores. Un filósofo que quiera comer irá a su lugar asignado en la mesa y, usando los dos tenedores de cada lado delplato, cogerá los espaguetis y se los comerá. El problema es el siguiente: Inventar un ritual (algoritmo) que permita comer a los filósofos. El algoritmo debe satisfacer la exclusión mutua (dosfilósofos no pueden emplear el mismo tenedor a la vez), además de evitar el interbloqueo y la inanición

Código en java de su solución

Creamos una clase llamada controlador
*
 * To change thistemplate, choose Tools | Templates
 * and open the template in the editor.
 */
package filosofos;

/**
 *
 * @author PERSONAL
 */
public class Controlador {
    private static finalint pensando = 0;
private static final int hambriento = 1;
private static final int comiendo = 2;
private int n; //numero de filosofos
private int estado[];  

public Controlador(intn) {
this.n = n;
estado = new int[n]; //estado del filosofo
}

// EL FILOSOFO id intenta SUS TENEDORES
public synchronized void tomarTenedores(int id) {

estado[id] =hambriento; // establece que tiene hambre
prueba(id);

while (estado[id] != comiendo) // ESPERA x 2 TENEDORES
try { wait(); 
} catch (Exception e) { System.out.println(e);}
}
// ELFILOSOFO id SUELTA SUS TENEDORES
public synchronized  void soltarTenedores(int id) {
int der, izq;
//calcula la posicion a su derecha e izq.
der=(id+1) % n; 
izq=id-1;
if (izq
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Filosofos Comensales
  • Filosofos comensales
  • Filósofos Comensales
  • Análisis Algoritmo Los Filósofos Pensantes
  • Algoritmo cena filosofos
  • Filosofos comensales
  • Filosofos Comensales
  • Problema De Los Filosofos Comensales

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS