Introduction (рдкрд░рд┐рдЪрдп)
рд╣рдордиреЗ рдкрдврд╝рд╛ рдХрд┐ multiple processes shared resources use рдХрд░рддреЗ рд╣реИрдВ рдФрд░ synchronization рдЬрд░реВрд░реА рд╣реЛрддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди real systems рдореЗрдВ рдХреБрдЫ standard problems рдмрд╛рд░-рдмрд╛рд░ рдЖрддреА рд╣реИрдВ, рдЬрд┐рдирд╕реЗ synchronization techniques рдХреЛ рд╕рдордЭрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрдиреНрд╣реАрдВ рдХреЛ рдХрд╣рддреЗ рд╣реИрдВ:
Classical Problems of Synchronization
Classical Problems рдХреНрдпрд╛ рд╣реЛрддреЗ рд╣реИрдВ
рдпреЗ predefined problems рд╣реИрдВ рдЬреЛ process synchronization рдФрд░ coordination рдХреЛ рд╕рдордЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП use рдХреА рдЬрд╛рддреА рд╣реИрдВред
Main Classical Problems
рдЗрд╕ topic рдореЗрдВ рдореБрдЦреНрдпрддрдГ 3 problems рдкрдврд╝реА рдЬрд╛рддреА рд╣реИрдВ:
- Producer-Consumer Problem
- Dining Philosophers Problem
- Readers-Writers Problem
рдЕрдм рд╣рдо рдПрдХ-рдПрдХ рдХрд░рдХреЗ detail рдореЗрдВ рд╕рдордЭрддреЗ рд╣реИрдВред
1. Producer-Consumer Problem
Concept
- Producer data рдмрдирд╛рддрд╛ рд╣реИ
- Consumer data use рдХрд░рддрд╛ рд╣реИ
- рджреЛрдиреЛрдВ рдХреЗ рдмреАрдЪ buffer рд╣реЛрддрд╛ рд╣реИ
Problem
- рдЕрдЧрд░ buffer full рд╣реИ тЖТ producer wait рдХрд░реЗрдЧрд╛
- рдЕрдЧрд░ buffer empty рд╣реИ тЖТ consumer wait рдХрд░реЗрдЧрд╛
Example
- Producer тЖТ data create рдХрд░рддрд╛ рд╣реИ
- Consumer тЖТ data consume рдХрд░рддрд╛ рд╣реИ
Main Issue
- Synchronization рдЬрд░реВрд░реА рд╣реИ
- Buffer рдХрд╛ overflow рдпрд╛ underflow avoid рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИ
Solution Idea
Semaphores рдХрд╛ use:
- empty тЖТ buffer empty slots
- full тЖТ buffer filled slots
- mutex тЖТ mutual exclusion
2. Dining Philosophers Problem
Concept
- 5 philosophers table рдкрд░ рдмреИрдареЗ рд╣реИрдВ
- рд╣рд░ philosopher рдХреЛ рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП 2 forks рдЪрд╛рд╣рд┐рдП
Problem
- рд╣рд░ philosopher рдПрдХ fork рдЙрдард╛ рд▓реЗрддрд╛ рд╣реИ
- рд▓реЗрдХрд┐рди рджреВрд╕рд░рд╛ fork рдирд╣реАрдВ рдорд┐рд▓рддрд╛
Result: рд╕рднреА wait рдХрд░рддреЗ рд░рд╣ рдЬрд╛рддреЗ рд╣реИрдВ
Issue
- Deadlock
- Starvation
рдЖрдЧреЗ рд╣рдореЗрдВ рдЗрдиреНрд╣реЗрдВ рдкрдвреЗрдВрдЧреЗ |
Solution Idea
- Resource allocation control рдХрд░рдирд╛
- рдПрдХ рд╕рдордп рдореЗрдВ рд╕рднреА рдХреЛ fork рди рд▓реЗрдиреЗ рджреЗрдирд╛
3. Readers-Writers Problem
Concept
- Readers тЖТ data read рдХрд░рддреЗ рд╣реИрдВ
- Writers тЖТ data modify рдХрд░рддреЗ рд╣реИрдВ
Problem
- Multiple readers allowed
- рд▓реЗрдХрд┐рди writer рдХреЗ рд╕рдордп рдХреЛрдИ reader рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП
Issue
- Data inconsistency
- Synchronization problem
Solution Idea
- Readers рдХреЛ parallel allow рдХрд░рдирд╛
- Writer рдХреЛ exclusive access рджреЗрдирд╛
Comparison (Quick Revision)
| Problem | Main Issue | Concept |
|---|---|---|
| Producer-Consumer | Buffer control | Data sharing |
| Dining Philosophers | Deadlock | Resource sharing |
| Readers-Writers | Data consistency | Read/Write control |
Important Concepts Covered
рдЗрди problems рд╕реЗ рд╣рдо рд╕реАрдЦрддреЗ рд╣реИрдВ:
- Mutual Exclusion
- Deadlock
- Starvation
- Synchronization
Real Life Understanding
- Producer-Consumer тЖТ factory system
- Dining Philosophers тЖТ limited resources sharing
- Readers-Writers тЖТ library system
Exam Focus Points
- рддреАрдиреЛрдВ problems рдХреЗ concept
- Problem рдХреНрдпрд╛ рд╣реИ
- Solution idea (Semaphore based)
- Deadlock рдФрд░ starvation
Conclusion
Classical Problems of Synchronization Operating System рдХреЗ important case studies рд╣реИрдВ, рдЬреЛ synchronization techniques рдХреЛ practically рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВред
рдЗрдирд╕реЗ рд╣рдореЗрдВ real-life system problems рдХреЛ solve рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдорд┐рд▓рддрд╛ рд╣реИред