PUERTA | Puerta TI 2007 | Pregunta 54

La sincronización en el problema clásico de lectores y escritores se puede lograr mediante el uso de semáforos. En el siguiente código incompleto para el problema de lectores y escritores, se utilizan dos semáforos binarios mutex y wrt para obtener la sincronización

wait (wrt)
writing is performed
signal (wrt)
wait (mutex)  
readcount = readcount + 1
if readcount = 1 then S1
S2
reading is performed
S3
readcount = readcount - 1
if readcount = 0 then S4 
signal (mutex)

Los valores de S1, S2, S3, S4 (en ese orden) son
(A) señal (mutex), espera (wrt), señal (wrt), espera (mutex)
(B) señal (wrt), señal (mutex ), espera (mutex), espera (wrt)
(C) espera (wrt), señal (mutex), espera (mutex), señal (wrt)
(D) señal (mutex), espera (mutex), señal (mutex) , espera (mutex)

Respuesta: (C)
Explicación: Para S1: si el contador de lecturas =1 => el lector está leyendo ahora, por lo que no se debe ejecutar ningún escritor. Por lo tanto, S1 tiene que esperar (wrt)
Para S2: después de que se haya actualizado el recuento de lecturas, se hace a 1, para que otros lectores puedan ingresar a la sección de entrada. Se permiten lecturas múltiples. (Solo 1 a la vez puede estar en la sección de entrada), por lo tanto, señal (mutex)
Para S3:Ahora, a la vez, solo un proceso puede estar en la sección de salida y se usa el semáforo mutex para implementarlo (solo 1 a la vez puede estar en la sección de salida). Por lo tanto, espere (mutex)
para S4: si el recuento de lecturas es cero, es decir, ningún lector está leyendo , significa que el último lector completó la lectura, debería desbloquear recursos para que cualquier escritor que lo esté esperando pueda usarlos. De ahí la señal (wrt). Los valores anteriores de S1, S2, S3 y S4 no son más que implementar el problema del primer lector y escritor. .

Referencias:
Readers-writers-problem-set-1-introduction-and-readers-preference-solution/
https://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/6_Synchronization.html

Esta solución es aportada por Nitika Bansal

Conceptos relacionados:
Sincronización de procesos|Set1
Mutex Vs Semaphore
Monitors
Readers-writers_problem (Wikipedia)

Cuestionario de esta pregunta

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *