A system has 5 active processes(A-E) and one type of resource, which there are 200 total unites available in the system. the current state of the system is shown in the table below.
the HOLDS column indicates the amount of the resource the process has allocated to it.
the REQUESTED column indicates the additional amount of the resource the process has asked teh system for and requires before it can finish execution. The MAX column indicates the maximum amount of the resource may need during its execution
Process Holds Requered Max
A 10 10 70
B 40 5 100
C 20 40 100
D 25 15 70
E 30 5 80
a. is the system currently deadlocked? is it in a safe state? if it is not deadlocked and/or safe be sure to show initermediae states that lead you to that conclusion
b. if the request of 40 unites were granted to C, would the system be deadlocked? would it be in a safe state? again explain© BrainMass Inc. brainmass.com October 24, 2018, 5:56 pm ad1c9bdddf
Deadlock is determined.
Derive an election algorithm for bidirectional rings that is more efficient than the ring algorithm:
The ring algorithm assumes that the links are unidirectional and that each process sends its message to the neighbor on the right. The main data structure used by the algorithm is the active list, a list that contains the priority numbers of all active processes in the system when the algorithm ends; each process maintains its own active list. The algorithm works as follows:
1. If process Pi detects a coordinator failure, it creates a new active list that is initially empty. It then sends a message "elect(i)" to its right neighbor and adds the number i to its active list.
2. If Pi receives a message "elect(i)" from the process on the left, it must respond in one of three ways:
a) If this is the first 'elect' message it has seen or sent, Pi creates a new active list with the numbers i and j. It then sends the message 'elect(i)', followed by the message 'elect(i)'.
b) If i does not equal j - that is, the message received does not contain Pi's number - then Pi adds j to its active list and forwards the message to its right neighbor.
c) If i = j - that is, Pi receives the message 'elect(i)' - then the active list for Pi now contains the numbers of all the active processes in the system. Process Pi can now determine the largest number in the active list to identify the new coordinator process.
How many messages are needed for n processes?
(There is no need to program the algorithm, but explain the algorithm idea with words.)
Additional info on Election algorithm:
Many distributed algorithms employ a coordinator process that performs functions needed by the other processes in the system. These functions include enforcing mutual exclusion, maintaining a global wait-for graph for deadlock detection, replacing a lost token, and controlling an input or output device in the system. If the coordinator process fails due to the failure of the site at which it resides, the system can continue execution only by restarting a new copy of the coordinator on some other site. The algorithms that determine where a new copy of the coordinator should be restarted are called election algorithms.
Election algorithms assume that a unique priority number is associated with each active process in the system, For ease of notation, we assume the priority of process Pi is i. To simplify the discussion, we assume a one-to-one correspondence between processes and sites and thus refer to both as processes, The coordinator is always the process with the largest priority number. Hence, when a coordinator fails, the algorithm must elect that active process with the largest priority number. This number must be sent to each active process in the system. In addition, the algorithm must provide a mechanism for a recovered process to identify the current coordinator.
The answer can be an existing algorithm on bi-directional ring election algorithm, it just has to be explained how it works.View Full Posting Details