CSC/ECE 506 Spring 2011/ch7 jp: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
| Line 1: | Line 1: | ||
=Peterson's Algorithm= | =Peterson's Algorithm= | ||
Peterson’s algorithm, also known as Peterson’s solution, is an algorithm that addresses the critical section problem by meeting the 3 criteria of the problem: mutual exclusion, progress, and bounded waiting. | |||
int turn; // turn for execution | |||
int interested[2]; // the processors interested | |||
void enter_region(int process) | |||
{ | |||
int otherProcess; | |||
otherProcess = 1 - process; | |||
interested[process]=1; | |||
turn = process; | |||
while(turn == process && interested[otherProcess] == 1) | |||
{ | |||
// busy wait | |||
} | |||
} | |||
void leave_region(int process) | |||
{ | |||
interested[process] = 0; | |||
} | |||
=Page tables= | =Page tables= | ||
Revision as of 22:03, 20 March 2011
Peterson's Algorithm
Peterson’s algorithm, also known as Peterson’s solution, is an algorithm that addresses the critical section problem by meeting the 3 criteria of the problem: mutual exclusion, progress, and bounded waiting.
int turn; // turn for execution
int interested[2]; // the processors interested
void enter_region(int process)
{
int otherProcess;
otherProcess = 1 - process;
interested[process]=1;
turn = process;
while(turn == process && interested[otherProcess] == 1)
{
// busy wait
}
}
void leave_region(int process)
{
interested[process] = 0;
}