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; 
}