I have been studying Process Synchronization and inter-process communication in Operating Systems Engineering and have come across multiple problems like "Sleeping Barbers", "Producer Consumers", "Dining Philosophers" and "Reader Writers" . While working on these problems I found them very interesting and I get a sort of feeling that each problem has its special significance. I can visualize the situations in which "producer consumers problem" and "reader writers problem" can be applied but have been stuck with "Sleeping Barbers Problem" and "Dining Philosophers problem".
What are the examples of application of Sleeping Barbers problem and Dining Philosophers problem in computer science( primarily Operating Systems Design and Databases)?