PUERTA | PUERTA CS 1999 | Pregunta 68

[Pregunta de 5 puntos]

una. Cierto procesador proporciona una instrucción de «prueba y configuración» que se utiliza de la siguiente manera:

 TEST register, flag

Esta instrucción copia atómicamente la bandera en el registro y establece la bandera en 1. Proporcione un pseudocódigo para implementar el código de entrada y salida en una región crítica usando esta instrucción.

b. Considere la siguiente solución al problema productor-consumidor utilizando un búfer de tamaño 1. Suponga que el valor inicial de cuenta es 0. Suponga también que la prueba de cuenta y la asignación a cuenta son operaciones atómicas.

Producer:      
   Repeat 
       Produce an item;
       if count = 1 then sleep;
       place item in buffer.
       count = 1;
       Wakeup(Consumer);
  Forever 

Consumer:
  Repeat
      if count = 0 then sleep;
      Remove item from buffer;
      count = 0;
      Wakeup(Producer);
      Consume item;
  Forever;

Muestre que en esta solución es posible que ambos procesos estén durmiendo al mismo tiempo.

Respuesta:
Explicación:
Cuestionario de esta pregunta
. Comente a continuación si encuentra algo incorrecto en la publicación anterior.

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 *