GATEverse
← GATE CSE 1997

Q73

NATMarks unknown

A concurrent system consists of 33 processes using a shared resource RR in a non-preemptible and mutually exclusive manner. The processes have unique priorities in the range 1…31 \dots 3, 33 being the highest priority. It is required to synchronize the processes such that the resource is always allocated to the highest priority requester. The pseudo code for the system is as follows. Shared data mutex:semaphore = 1:/* initialized to 1*/ process[3]:semaphore = 0; /*all initialized to 0 */ R_requested [3]:boolean = false; /*all initialized to flase */ 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) Give the pseudo code for the procedure release_R.

Sign in to save attempts.

Loading…