PUERTA | PUERTA CS 1997 | Pregunta 72

Un sistema concurrente consta de 3 procesos que utilizan un recurso compartido R de manera no prioritaria y mutuamente excluyente. Los procesos tienen prioridades únicas en el rango 1…..3, siendo 3 la prioridad más alta. Es necesario sincronizar los procesos de modo que el recurso siempre se asigne al solicitante de mayor prioridad. El pseudocódigo del sistema es el siguiente.

Shared Data
mutex:semaphore = 1:/* initialized to 1*/
process[3]:semaphore = 0; /*all initialized to 0 */
R_requested [3]:boolean = false; /*all initialized to false */
busy: boolean = false; /*initialized to false */
Code for processes
begin process
my-priority:integer;
my-priority:=____; /*in the range 1...3*/
repeat
    request_R(my-priority);
    P (proceed [my-priority]);
    {use shared resource R}
    release_R (my-priority);
forever
end process;
Procedures
procedure request_R(priority);
P(mutex);
if busy = true then
    R_requested [priority]:=true;
else
 begin
    V(proceed [priority]);
    busy:=true;
 end
V(mutex);

Proporcione el pseudocódigo para el procedimiento release_R .

Respuesta:
Explicación:
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 *