miércoles, 7 de diciembre de 2011

2do ejercicio voluntario de Sistemas Operativos


Francisco Jesús Ropero Morales y Juan Carlos Rodriguez Rivas

Solución al problema de lectores / escritores con prioridad de escritores

Variables compartidas

  semáforo mutex1=1;
  semáforo mutex2=1;
 
  semáforo lectores=1;
  semáforo escritores=1;
 
  entero nLectores, nEscritores

Lector
inicio
    do
    {
       wait(lectores);
       wait (mutex1);
      
       nLectores++;
      
       if(nLectores==1)
          wait(escritores);
      
       signal(mutex1);
       signal(lectores);

       //código de lectura
      
       wait(mutex1);
       
       nLectores--;
       
       if(nLectores==0)
          signal(escritores);
         
       signal(mutex1);
       
    }while(TRUE);
fin
Escritor
inicio
    do
    {
       wait(mutex2);
      
       nEscritores++;
      
       if(nEscritores==1)
          wait(lectores);
      
       signal(mutex2);
       wait(escritores);

       //código de escritura

       signal(escritores);
       wait(mutex2);
      
       nEscritores--;
      
       if(nEscritores==0)
          signal(lectores);
      
       signal(mutex2);

    }while(TRUE);
 
fin

jueves, 13 de octubre de 2011

Evolución de los Sistemas Operativos y del Hardware desde 1996 hasta la actualidad,

Para visualizar correctamente pulsa el icono de pantalla completa que se encuentra en la esquina superior derecha del timeline