Simulate and visualize three classic synchronization problems in operating systems
The Producer-Consumer problem involves two processes sharing a fixed-size buffer. Producers add data to the buffer while consumers remove data from it.
The Readers-Writers problem involves multiple processes wanting to access a shared resource - some for reading (which can be done simultaneously) and some for writing (which requires exclusive access).
The Dining Philosophers problem involves N philosophers sitting around a circular table. Each philosopher needs two forks to eat, but there are only N forks in total (one between each pair of philosophers).