Title | Entregable 1 - Nota 10 |
---|---|
Course | Aplicacions i Serveis Telematics |
Institution | Universitat Politècnica de Catalunya |
Pages | 4 |
File Size | 37.1 KB |
File Type | |
Total Downloads | 112 |
Total Views | 178 |
Nota 10...
public class LockEA {
//Completar... static VectorBool vb=new VectorBool(2);
//-----------------------------SOLUCIÓ ALTERNATIVA-------------------------/*public void lock(int id) { // while(torn!=id); }
public void unlock(int id) { //torn=1-id; }*/ //Aquesta solució funciona de forma excepcional en aquest cas però la que jo //uso té un caràcter més general sempre que s'usin 2 processos sinó caldria //usar també l'Algoritme de Peterson doncs no és suficient amb els flags //--------------------------------------------------------------------------
public void lock(int id) {
vb.set(id, true); while(vb.get(1-id)){ vb.set(id, false); while(vb.get(1-id)); vb.set(id, true); } // si els dos processos volen superar el lock,
// només un ho aconseguirà, i l'altre s'espera // fins que el que ho ha aconseguit // alliberi la ZC fent l'unlock. //Completar... }
public void unlock(int id) { vb.set(id, false); // el procés indica que la ZC queda lliure //Completar... }
public class Proces extends Thread {
private final int id; private final LockEA lock; public static int x = 0; //...