Introduction (рдкрд░рд┐рдЪрдп)
Operating System рдореЗрдВ рдХрдИ processes рдПрдХ рд╕рд╛рде run рдХрд░рддреА рд╣реИрдВред
рд▓реЗрдХрд┐рди рдХрдИ рдмрд╛рд░ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдПрдХ process рдХреЛ рджреВрд╕рд░реЗ process рд╕реЗ data рд▓реЗрдирд╛ рд╣реЛрддрд╛ рд╣реИ, рдпрд╛ рдХрд┐рд╕реА рджреВрд╕рд░реЗ process рдХреЛ рдХреБрдЫ information рднреЗрдЬрдиреА рд╣реЛрддреА рд╣реИред
рдпрд╣реАрдВ рдкрд░ Inter-Process Communication (IPC) рдХреА рдЬрд░реВрд░рдд рдкрдбрд╝рддреА рд╣реИред
Simple рд╢рдмреНрджреЛрдВ рдореЗрдВ рдХрд╣реЗрдВ, рддреЛ рдЬрдм рджреЛ рдпрд╛ рджреЛ рд╕реЗ рдЕрдзрд┐рдХ processes рдЖрдкрд╕ рдореЗрдВ information exchange рдХрд░рддреА рд╣реИрдВ, рдЙрд╕реЗ IPC рдХрд╣рддреЗ рд╣реИрдВред
IPC рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ
Inter-Process Communication рд╡рд╣ mechanism рд╣реИ рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ processes рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде data share рдХрд░рддреА рд╣реИрдВ рдФрд░ communication рдХрд░рддреА рд╣реИрдВред
Simple Definition
IPC = рджреЛ рдпрд╛ рдЕрдзрд┐рдХ processes рдХреЗ рдмреАрдЪ communication рдФрд░ data exchange рдХреА technique
IPC рдХреА рдЬрд░реВрд░рдд рдХреНрдпреЛрдВ рдкрдбрд╝рддреА рд╣реИ
Operating System рдореЗрдВ processes рд╣рдореЗрд╢рд╛ completely independent рдирд╣реАрдВ рд╣реЛрддреАрдВред
рдХрдИ рдмрд╛рд░ рдЙрдиреНрд╣реЗрдВ cooperation рдХреА рдЬрд░реВрд░рдд рд╣реЛрддреА рд╣реИред
IPC рдХреА рдЬрд░реВрд░рдд рдЗрди рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдкрдбрд╝рддреА рд╣реИ:
1. Information Sharing
рдПрдХ process рдЬреЛ data generate рдХрд░реЗ, рджреВрд╕рд░рд╛ process рдЙрд╕реЗ use рдХрд░ рд╕рдХреЗ
2. Computation Speed-up
рдХрд╛рдо рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ processes рдореЗрдВ divide рдХрд░рдХреЗ рдЬрд▓реНрджреА complete рдХрд░рдирд╛
3. Modularity
рдПрдХ рдмрдбрд╝реЗ task рдХреЛ рдЫреЛрдЯреЗ-рдЫреЛрдЯреЗ processes рдореЗрдВ divide рдХрд░рдирд╛
4. Convenience
User рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрдИ related tasks рдХрд░ рд╕рдХреЗ
Example
рдорд╛рди рд▓реЛ рдПрдХ process file рд╕реЗ data read рдХрд░ рд░рд╣реА рд╣реИ, рдФрд░ рджреВрд╕рд░реА process рдЙрд╕реА data рдХреЛ print рдХрд░ рд░рд╣реА рд╣реИред
рдпрд╣рд╛рдБ:
- рдкрд╣рд▓реА process data produce рдХрд░ рд░рд╣реА рд╣реИ
- рджреВрд╕рд░реА process рдЙрд╕ data рдХреЛ use рдХрд░ рд░рд╣реА рд╣реИ
рдЗрд╕ situation рдореЗрдВ рджреЛрдиреЛрдВ processes рдХреЗ рдмреАрдЪ communication рдЬрд░реВрд░реА рд╣реИред
рдпрд╣реА IPC рд╣реИред
IPC рдХреЗ Main Models
IPC рдХреЛ generally рджреЛ main models рдореЗрдВ divide рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
1. Shared Memory
2. Message Passing
рдЕрдм рджреЛрдиреЛрдВ рдХреЛ detail рдореЗрдВ рд╕рдордЭрддреЗ рд╣реИрдВред
1. Shared Memory
рдЗрд╕ method рдореЗрдВ рджреЛ рдпрд╛ рдЕрдзрд┐рдХ processes рдПрдХ common memory area рдХреЛ share рдХрд░рддреА рд╣реИрдВред
- OS рдПрдХ shared memory region create рдХрд░рддрд╛ рд╣реИ
- Processes рдЙрд╕ shared area рдХреЛ access рдХрд░рддреА рд╣реИрдВ
- Data рдЙрд╕реА shared memory рдореЗрдВ рд▓рд┐рдЦрд╛ рдФрд░ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ
Working
Process A data рдХреЛ shared memory рдореЗрдВ рд▓рд┐рдЦрддреА рд╣реИ
Process B рдЙрд╕реА data рдХреЛ shared memory рд╕реЗ read рдХрд░рддреА рд╣реИ
Advantage
- Fast communication
- Large amount of data transfer рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛
Problem
- Synchronization problem рд╣реЛ рд╕рдХрддреА рд╣реИ
- Multiple processes same data рдХреЛ рдПрдХ рд╕рд╛рде access рдХрд░ рд╕рдХрддреА рд╣реИрдВ
2. Message Passing
рдЗрд╕ method рдореЗрдВ processes directly data share рдирд╣реАрдВ рдХрд░рддреАрдВ, рдмрд▓реНрдХрд┐ messages send рдФрд░ receive рдХрд░рддреА рд╣реИрдВред
Working
- Process A message рднреЗрдЬрддреА рд╣реИ
- OS рдЙрд╕ message рдХреЛ Process B рддрдХ рдкрд╣реБрдБрдЪрд╛рддрд╛ рд╣реИ
Advantage
- Easy to implement
- Small data transfer рдХреЗ рд▓рд┐рдП useful
- Shared memory рдХреА рддреБрд▓рдирд╛ рдореЗрдВ safer
Problem
- Shared memory рд╕реЗ рдереЛрдбрд╝рд╛ slow рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
IPC Methods (Exam Point)
Practical рд░реВрдк рдореЗрдВ IPC рдХрдИ рддрд░реАрдХреЛрдВ рд╕реЗ implement рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ:
- Pipes
- Message Queues
- Shared Memory
- Sockets
- Signals
Exam рдореЗрдВ basic answer рдореЗрдВ Shared Memory рдФрд░ Message Passing рд╕рдмрд╕реЗ important рд╣реЛрддреЗ рд╣реИрдВред
Producer-Consumer Example
IPC рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рдмрд╕реЗ common example рд╣реИред
Producer
Data рдмрдирд╛рддрд╛ рд╣реИ
Consumer
Data use рдХрд░рддрд╛ рд╣реИ
Example:
- Producer process song data рддреИрдпрд╛рд░ рдХрд░рддреА рд╣реИ
- Consumer process speaker рдкрд░ рдЙрд╕реЗ play рдХрд░рддреА рд╣реИ
рджреЛрдиреЛрдВ рдХреЗ рдмреАрдЪ data transfer IPC рд╕реЗ рд╣реЛрддрд╛ рд╣реИред
Shared Memory vs Message Passing
| Basis | Shared Memory | Message Passing |
|---|---|---|
| Communication | Common memory area | Messages рднреЗрдЬрдХрд░ |
| Speed | Fast | рдереЛрдбрд╝рд╛ slow |
| Data Size | Large data рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ | Small data рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ |
| Synchronization | рдЬрд░реВрд░реА | comparatively less issue |
| Complexity | рдЬреНрдпрд╛рджрд╛ | рдХрдо |
IPC рдореЗрдВ Synchronization рдХреНрдпреЛрдВ рдЬрд░реВрд░реА рд╣реИ
рдЕрдЧрд░ рджреЛ processes рдПрдХ рд╣реА time рдкрд░ same data рдХреЛ access рдХрд░реЗрдВ, рддреЛ problem рд╣реЛ рд╕рдХрддреА рд╣реИред
Example:
- Process A data write рдХрд░ рд░рд╣реА рд╣реИ
- рдЙрд╕реА рд╕рдордп Process B data read рдХрд░ рд░рд╣реА рд╣реИ
рдЕрдЧрд░ proper coordination рдирд╣реАрдВ рд╣реБрдЖ, рддреЛ wrong output рдЖ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП IPC рдХреЗ рд╕рд╛рде synchronization рдмрд╣реБрдд important рд╣реЛрддрд╛ рд╣реИред
Real Life Analogy
рджреЛ students рдПрдХ рд╣реА notebook use рдХрд░ рд░рд╣реЗ рд╣реИрдВ:
- рдЕрдЧрд░ notebook рджреЛрдиреЛрдВ рдХреЗ рдмреАрдЪ share рд╣реЛ рд░рд╣реА рд╣реИ, рддреЛ рдпрд╣ Shared Memory рдЬреИрд╕рд╛ рд╣реИ
- рдЕрдЧрд░ рд╡реЗ notebook рдХреА рдЬрдЧрд╣ slips рдкрд░ message рднреЗрдЬ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдпрд╣ Message Passing рдЬреИрд╕рд╛ рд╣реИ
Advantages of IPC
1. Better Cooperation
Processes рдорд┐рд▓рдХрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддреА рд╣реИрдВ
2. Faster Processing
Different processes рдЕрд▓рдЧ-рдЕрд▓рдЧ part handle рдХрд░ рд╕рдХрддреА рд╣реИрдВ
3. Data Sharing
Information рдЖрд╕рд╛рдиреА рд╕реЗ exchange рд╣реЛрддреА рд╣реИ
4. Modular Design
Complex programs рдХреЛ рдЫреЛрдЯреЗ parts рдореЗрдВ divide рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
Disadvantages of IPC
1. Synchronization Issues
Shared data conflict рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
2. Complexity
System design complicated рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
3. Security Risk
Improper communication рд╕реЗ data leak рдпрд╛ corruption рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
Exam Focus Points
IPC topic рдореЗрдВ рдЕрдХреНрд╕рд░ рдпреЗ рдЪреАрдЬреЗрдВ рдкреВрдЫреА рдЬрд╛рддреА рд╣реИрдВ:
- IPC рдХреНрдпрд╛ рд╣реИ
- IPC рдХреА рдЬрд░реВрд░рдд
- Shared Memory рдФрд░ Message Passing
- Producer-Consumer example
- Shared Memory vs Message Passing difference
Conclusion
Inter-Process Communication Operating System рдХрд╛ рдмрд╣реБрдд important concept рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ modern systems рдореЗрдВ processes рдХреЛ рдЕрдХреНрд╕рд░ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде cooperate рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред
IPC рдХреА рдорджрдж рд╕реЗ processes data share рдХрд░ рд╕рдХрддреА рд╣реИрдВ, communication рдХрд░ рд╕рдХрддреА рд╣реИрдВ рдФрд░ complex tasks рдХреЛ efficiently complete рдХрд░ рд╕рдХрддреА рд╣реИрдВред