Foros del Web » Programación para mayores de 30 ;) » Programación General »

Programacion en POSIX utilzando varibles de condicion

Estas en el tema de Programacion en POSIX utilzando varibles de condicion en el foro de Programación General en Foros del Web. Me han mandado este trabajo y no tengo ni idea de como empezar, por favor si alguien sabe de esto que por lo menos me ...
  #1 (permalink)  
Antiguo 11/07/2007, 11:25
 
Fecha de Ingreso: julio-2007
Mensajes: 47
Antigüedad: 16 años, 9 meses
Puntos: 0
De acuerdo Programacion en POSIX utilzando varibles de condicion

Me han mandado este trabajo y no tengo ni idea de como empezar, por favor si alguien sabe de esto que por lo menos me oriente:

Implementar el problema de los lectores y escritores utilizando variables de
condición y los semáforos estrictamente necesarios.

Se ejecutarán N lectores y M escritores.

Los lectores y escritores comparten un fichero de claves del sistema. En dicho fichero
hay una línea por cada usuario.
Cada línea tiene el formato:

usuario:clave

Los lectores acceden para comprobar si la clave de un usuario es correcta. Los escritores
acceden para añadir
nuevos usuarios o modificar la clave de usuarios existentes.
  #2 (permalink)  
Antiguo 11/07/2007, 14:48
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 17 años, 11 meses
Puntos: 28
Re: Programacion en POSIX utilzando varibles de condicion

Podrías empezar contándonos que ideas se te ocurren para resolver el problema o como lo plantearías, así es más fácil ayudarte. Si estás esperando que alguien resuelva la tarea por ti estás en el lugar equivocado amigo mio.

Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
  #3 (permalink)  
Antiguo 16/07/2007, 10:36
 
Fecha de Ingreso: julio-2007
Mensajes: 47
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: Programacion en POSIX utilzando varibles de condicion

Si claro tengo algunas ideas de como controlar el acceso a la seccion critica, aki os pongo el codigo:

void Lector(void)
{
/* código del lector */
pthread_mutex_lock(&mutex_lectores);
n_lectores++;
if(n_lectores == 1)
pthread_mutex_lock(&mutex);
pthread_mutex_unlock(&mutex_lectores);

/* leer dato */

pthread_mutex_lock(&mutex_lectores);
n_lectores--;
if(n_lectores == 0)
pthread_mutex_unlock(&mutex);
pthread_mutex_unlock(&mutex_lectores);
pthread_exit(0);
}



void Escritor(void) /* código del escritor */
{
pthread_mutex_lock(&mutex);

/* modificar el recurso */

pthread_mutex_unlock(&mutex);
pthread_exit(0);
}
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:46.