ask dr kevin
We illustrate a classic software-based solution to the critical section to the critical solution problem known as peterson's solution.
janina
goodd
Peterson's solution:- (AKA Peterson's solution) is a concurrent programming algorithm for mutual exclusion that allows two processes to share a single-use resource without conflict, using only shared memory for communication. It was formulated by Gary L. Peterson in 1981.While Peterson's original formulation worked with only two processes, the algorithm can be generalized for more than two.Mutual exclusionP0 and P1 can never be in the critical section at the same time: If P0 is in its critical section, then either flag is false (meaning P1 has left its critical section) or turn is 0 (meaning P1 is just now trying to enter the critical section, but graciously waiting). In both cases, P1 cannot be in critical section when P0 is in critical section.
distributed Mutual exclusion, in computer science, refers to the problem of ensuring that no two processes or threads (henceforth referred to only as processes) can be in their critical section at the same time. Here, a critical section refers to a period of time when the process accesses a shared resource, such as shared memory. The problem of mutual exclusion was first identified and solved by Edsger W. Dijkstra in his seminal 1965 paper titled: Solution of a problem in concurrent programming control..hope it helps:)
Sonnets are divided in two sections, the first section providing the theme or problem. The second section consists of the solution or conclusion.
The Critical section problem occurs when the processors are in a Network. For eg consider that 3 processors share same database at a time, if one processor wants to update the database then no other process will get the access to that database. This point is called as critical section. Temporarily the connection between the other 2 system will be dropped.
Under Reinforced Section
The wheels and axle
lock
Ceserean Section
while(1) { // thread i (0 <= i < n) for (j=1 ; j<n ; j++) { flag[i]=j; last[j]=i; for (k=0 ; k<n ; k++) { if (k==i) continue; while (flag[k]>=flag[i] && last[j]==i) { sleep(random()); } } } // critical section ... // end of critical section flag[i]=0; // not critical section ... // end of not critical section }