Introduction (рдкрд░рд┐рдЪрдп)
Computer system рдореЗрдВ CPU рд╕рдмрд╕реЗ important resource рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди system рдореЗрдВ рдПрдХ рд╕рдордп рдкрд░ рдХрдИ processes ready рд░рд╣рддреЗ рд╣реИрдВред
рдЕрдм рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ:
CPU рдХрд┐рд╕ process рдХреЛ рдкрд╣рд▓реЗ execute рдХрд░реЗ?
рдЗрд╕реА problem рдХреЛ solve рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП CPU Scheduling рдХрд╛ use рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
CPU Scheduling рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ
CPU Scheduling рд╡рд╣ process рд╣реИ рдЬрд┐рд╕рдореЗрдВ Operating System рдпрд╣ decide рдХрд░рддрд╛ рд╣реИ рдХрд┐ ready queue рдореЗрдВ рдореМрдЬреВрдж processes рдореЗрдВ рд╕реЗ рдХреМрди рд╕рд╛ process CPU рдХреЛ рдорд┐рд▓реЗрдЧрд╛ред

Simple Definition
CPU Scheduling рдПрдХ technique рд╣реИ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ OS processes рдХреЛ CPU allocate рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ system efficiently рдХрд╛рдо рдХрд░реЗред
Basic Idea
- System рдореЗрдВ рдХрдИ processes рд╣реЛрддреЗ рд╣реИрдВ
- рд╕рднреА processes рдПрдХ queue рдореЗрдВ wait рдХрд░рддреЗ рд╣реИрдВ (Ready Queue)
- OS рдЙрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ process рдХреЛ select рдХрд░рддрд╛ рд╣реИ
- CPU рдЙрд╕ process рдХреЛ execute рдХрд░рддрд╛ рд╣реИ
Process States (Important Concept)
CPU Scheduling рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП process states рдЬрд╛рдирдирд╛ рдЬрд░реВрд░реА рд╣реИ:
1. New
Process create рд╣реБрдЖ рд╣реИ
2. Ready
Process CPU рдХреЗ рд▓рд┐рдП wait рдХрд░ рд░рд╣рд╛ рд╣реИ
3. Running
Process CPU рдкрд░ execute рд╣реЛ рд░рд╣рд╛ рд╣реИ
4. Waiting
Process I/O operation рдХреЗ рд▓рд┐рдП wait рдХрд░ рд░рд╣рд╛ рд╣реИ
5. Terminated
Process complete рд╣реЛ рдЪреБрдХрд╛ рд╣реИ
Ready Queue Concept
- рд╕рднреА ready processes рдПрдХ queue рдореЗрдВ рд░рд╣рддреЗ рд╣реИрдВ
- OS scheduler рдЗрд╕ queue рд╕реЗ process рдЪреБрдирддрд╛ рд╣реИ
CPU Scheduler рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ
CPU Scheduler OS рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ:
- Ready queue рд╕реЗ process select рдХрд░рддрд╛ рд╣реИ
- CPU allocate рдХрд░рддрд╛ рд╣реИ
Dispatcher рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ
Dispatcher рд╡рд╣ component рд╣реИ рдЬреЛ:
- Selected process рдХреЛ CPU рджреЗрддрд╛ рд╣реИ
- Context switch рдХрд░рддрд╛ рд╣реИ
Context Switching
рдЬрдм CPU рдПрдХ process рд╕реЗ рджреВрд╕рд░реЗ process рдкрд░ switch рдХрд░рддрд╛ рд╣реИ, рдЙрд╕реЗ Context Switching рдХрд╣рддреЗ рд╣реИрдВред
рдЗрд╕рдореЗрдВ:
- Current process рдХрд╛ state save рд╣реЛрддрд╛ рд╣реИ
- Next process load рд╣реЛрддрд╛ рд╣реИ
Types of Scheduling
1. Non-Preemptive Scheduling
- Process CPU рддрдм рддрдХ рд░рдЦрддрд╛ рд╣реИ рдЬрдм рддрдХ рд╡рд╣ complete рди рд╣реЛ рдЬрд╛рдП
Example:
FCFS
2. Preemptive Scheduling
- OS process рдХреЛ рдмреАрдЪ рдореЗрдВ рд░реЛрдХрдХрд░ рджреВрд╕рд░реЗ process рдХреЛ CPU рджреЗ рд╕рдХрддрд╛ рд╣реИ
Example:
Round Robin
Example
рдорд╛рди рд▓реАрдЬрд┐рдП 3 processes рд╣реИрдВ:
- P1
- P2
- P3
Process flow:
- рд╕рднреА ready queue рдореЗрдВ рд╣реИрдВ
- OS P1 рдХреЛ select рдХрд░рддрд╛ рд╣реИ
- P1 execute рдХрд░рддрд╛ рд╣реИ
- рдлрд┐рд░ P2 рдФрд░ P3 рдХреЛ chance рдорд┐рд▓рддрд╛ рд╣реИ
Key Points
- CPU Scheduling = CPU allocation decision
- Ready Queue = waiting processes
- Scheduler = process select рдХрд░рддрд╛ рд╣реИ
- Dispatcher = process рдХреЛ CPU рджреЗрддрд╛ рд╣реИ
Conclusion
CPU Scheduling Operating System рдХрд╛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг concept рд╣реИ, рдЬреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ CPU рдХрд╛ рдЙрдкрдпреЛрдЧ efficiently рд╣реЛ рдФрд░ рд╕рднреА processes рдХреЛ рдЙрдЪрд┐рдд рд╕рдордп рдкрд░ execute рд╣реЛрдиреЗ рдХрд╛ рдореМрдХрд╛ рдорд┐рд▓реЗред