Introduction (рдкрд░рд┐рдЪрдп)
Computer system рдореЗрдВ CPU рд╕рдмрд╕реЗ important resource рд╣реЛрддрд╛ рд╣реИред
рдЕрдЧрд░ CPU idle (рдЦрд╛рд▓реА) рд░рд╣реЗ, рддреЛ system рдХреА efficiency рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИред
рдЗрд╕ problem рдХреЛ solve рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Multiprogramming concept use рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
Multiprogramming рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ
Multiprogramming рдПрдХ technique рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╣реА рд╕рдордп рдкрд░ memory рдореЗрдВ multiple programs рд░рдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ CPU рдЙрдирдХреЗ рдмреАрдЪ switch рдХрд░рддрд╛ рд░рд╣рддрд╛ рд╣реИред
рдЗрд╕рдХрд╛ main рдЙрджреНрджреЗрд╢реНрдп рд╣реИ:
CPU рдХреЛ рд╣рдореЗрд╢рд╛ busy рд░рдЦрдирд╛

Simple Definition
Multiprogramming рд╡рд╣ method рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрдИ programs рдПрдХ рд╕рд╛рде memory рдореЗрдВ рд░рд╣рддреЗ рд╣реИрдВ рдФрд░ CPU рдЙрдиреНрд╣реЗрдВ one by one execute рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ CPU idle рди рд░рд╣реЗред
Working (рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)
- Multiple programs memory рдореЗрдВ load рд░рд╣рддреЗ рд╣реИрдВ
- CPU рдПрдХ program рдХреЛ execute рдХрд░рддрд╛ рд╣реИ
- рдЬреИрд╕реЗ рд╣реА рд╡рд╣ program I/O operation рдХреЗ рд▓рд┐рдП wait рдХрд░рддрд╛ рд╣реИ
- CPU рддреБрд░рдВрдд рджреВрд╕рд░реЗ program рдХреЛ execute рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИ
рдЗрд╕рд╕реЗ CPU рдЦрд╛рд▓реА рдирд╣реАрдВ рд░рд╣рддрд╛ред
Example (рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП)
рдорд╛рди рд▓реАрдЬрд┐рдП рддреАрди programs рд╣реИрдВ:
- Program A (I/O heavy)
- Program B (CPU task)
- Program C (Calculation)
Process:
- CPU Program A рдЪрд▓рд╛рддрд╛ рд╣реИ
- A I/O рдХреЗ рд▓рд┐рдП wait рдХрд░рддрд╛ рд╣реИ
- CPU B рдкрд░ switch рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
- рдлрд┐рд░ C рдХреЛ execute рдХрд░рддрд╛ рд╣реИ
рдЗрд╕ рддрд░рд╣ рд╕рднреА programs progress рдХрд░рддреЗ рд░рд╣рддреЗ рд╣реИрдВред
Key Features
- Multiple programs in memory
- CPU switching between programs
- No CPU idle time
- Better resource utilization
Multiprogramming рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп
- CPU utilization рдмрдврд╝рд╛рдирд╛
- System performance improve рдХрд░рдирд╛
- Idle time рдХрдо рдХрд░рдирд╛
Advantages (рдлрд╛рдпрджреЗ)
- CPU рд╣рдореЗрд╢рд╛ busy рд░рд╣рддрд╛ рд╣реИ
- System efficiency рдмрдврд╝рддреА рд╣реИ
- Throughput (рдХрд╛рдо рдХреА рдорд╛рддреНрд░рд╛) рдмрдврд╝рддреА рд╣реИ
Disadvantages (рдХрдорд┐рдпрд╛рдБ)
- Memory management complex рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
- CPU scheduling рдХреА рдЬрд░реВрд░рдд рд╣реЛрддреА рд╣реИ
- System design рдереЛрдбрд╝рд╛ complicated рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
Multiprogramming vs Single Programming
| Feature | Single Programming | Multiprogramming |
|---|---|---|
| Programs | рдПрдХ рд╕рдордп рдореЗрдВ рдПрдХ | рдХрдИ programs |
| CPU usage | Idle рд╣реЛ рд╕рдХрддрд╛ рд╣реИ | рд╣рдореЗрд╢рд╛ busy |
| Efficiency | рдХрдо | рдЬреНрдпрд╛рджрд╛ |
Conclusion
Multiprogramming рдПрдХ important OS technique рд╣реИ рдЬреЛ CPU рдХреЛ idle рд╣реЛрдиреЗ рд╕реЗ рдмрдЪрд╛рддреА рд╣реИред
рдпрд╣ system рдХреА performance рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рддреА рд╣реИ рдФрд░ resources рдХрд╛ efficient use рдХрд░рддреА рд╣реИред