This document summarizes chapter 5 from the textbook "Operating System Concepts - 9th Edition" which covers process synchronization. It introduces the critical section problem where processes need orderly access to shared resources. Peterson's algorithm is presented as a solution using shared variables. Hardware synchronization methods like test-and-set instructions and semaphores are described. Classical synchronization problems like the bounded buffer problem are used to illustrate the use of semaphores. Deadlock and starvation issues are also discussed.