Introduction
เคฎเคพเคจ เคฒเฅ system เคฎเฅเค 10 processes ready เคนเฅเคเฅค
เคฒเฅเคเคฟเคจ CPU เคเค เคธเคฎเคฏ เคฎเฅเค เคธเคฟเคฐเฅเคซ 1 process เคนเฅ เคเคฒเคพ เคธเคเคคเคพ เคนเฅเฅค
เค
เคฌ เคธเคตเคพเคฒ:
เคเฅเคจ เคธเคพ process เคชเคนเคฒเฅ เคเคฒเฅเคเคพ?
เคเฅเคจ wait เคเคฐเฅเคเคพ?
เคเคฟเคธเฅ เคเคฟเคคเคจเคพ time เคฎเคฟเคฒเฅเคเคพ?
เคเคธเฅ decision-making process เคเฅ เคเคนเคคเฅ เคนเฅเค:
Process Scheduling
Process Scheduling เคเฅเคฏเคพ เคนเฅเคคเคพ เคนเฅ
Process Scheduling เคตเคน mechanism เคนเฅ เคเคฟเคธเคฎเฅเค Operating System เคฏเคน decide เคเคฐเคคเคพ เคนเฅ เคเคฟ เคเฅเคจ เคธเคพ process CPU use เคเคฐเฅเคเคพ เคเคฐ เคเคฌ เคเคฐเฅเคเคพเฅค
Real Life Analogy
เคฎเคพเคจ เคฒเฅ bank เคฎเฅเค line เคฒเคเฅ เคนเฅ:
- เคธเคญเฅ เคฒเฅเค = processes
- Counter = CPU
- Manager = OS scheduler
Manager decide เคเคฐเคคเคพ เคนเฅ เคเคฟ เคเคฟเคธเฅ เคชเคนเคฒเฅ เคฌเฅเคฒเคพเคจเคพ เคนเฅ
Basic Flow (System เคฎเฅเค เคเฅเคฏเคพ เคนเฅเคคเคพ เคนเฅ)
- Processes Ready Queue เคฎเฅเค เคนเฅเคคเฅ เคนเฅเค
- Scheduler เคเคจเคฎเฅเค เคธเฅ เคเค process select เคเคฐเคคเคพ เคนเฅ
- Dispatcher CPU allocate เคเคฐเคคเคพ เคนเฅ
- Process execution เคถเฅเคฐเฅ เคนเฅเคคเคพ เคนเฅ
Schedulers เคเฅเคฏเคพ เคนเฅเคคเคพ เคนเฅ :
OS เคฎเฅเค different types เคเฅ schedulers เคนเฅเคคเฅ เคนเฅเค:
1. Long-Term Scheduler (Job Scheduler)
- Decide เคเคฐเคคเคพ เคนเฅ เคเฅเคจ เคธเฅ process system เคฎเฅเค เคเคเคเคเฅ
- New โ Ready state
Control เคเคฐเคคเคพ เคนเฅ system load
2. Short-Term Scheduler (CPU Scheduler)
- Ready queue เคธเฅ process select เคเคฐเคคเคพ เคนเฅ
- Ready โ Running
เคฏเคน เคธเคฌเคธเฅ fast scheduler เคนเฅเคคเคพ เคนเฅ
3. Medium-Term Scheduler
- Process เคเฅ temporarily remove (suspend) เคเคฐเคคเคพ เคนเฅ
- Memory management เคฎเฅเค help เคเคฐเคคเคพ เคนเฅ
Dispatcher เคเฅเคฏเคพ เคเคฐเคคเคพ เคนเฅ
Dispatcher เคตเคน component เคนเฅ เคเฅ:
- Selected process เคเฅ CPU เคฆเฅเคคเคพ เคนเฅ
- Context switching เคเคฐเคคเคพ เคนเฅ
- User mode โ Kernel mode switch เคเคฐเคคเคพ เคนเฅ
Context Switching (Core Concept)
เคเคฌ CPU เคเค process เคธเฅ เคฆเฅเคธเคฐเฅ process เคชเคฐ เคเคพเคคเคพ เคนเฅ:
- Current process เคเคพ data save
- Next process เคเคพ data load
Time เคฒเคเคคเคพ เคนเฅ โ overhead
Scheduling Queues
System เคฎเฅเค เค เคฒเค-เค เคฒเค queues เคนเฅเคคเฅ เคนเฅเค:
- Job Queue โ เคธเคญเฅ processes
- Ready Queue โ CPU wait เคเคฐเคจเฅ เคตเคพเคฒเฅ
- Device Queue โ I/O wait
Types of Scheduling
1. Preemptive Scheduling
- Process เคเฅ เคฌเฅเค เคฎเฅเค เคฐเฅเคเคพ เคเคพ เคธเคเคคเคพ เคนเฅ
- CPU เคฆเฅเคธเคฐเฅ process เคเฅ เคฆเฅ เคฆเคฟเคฏเคพ เคเคพเคคเคพ เคนเฅ
Example: Round Robin
2. Non-Preemptive Scheduling
- Process complete เคนเฅเคจเฅ เคคเค CPU เคฐเคเคคเคพ เคนเฅ
Example: FCFS
Example
เคฎเคพเคจ เคฒเฅ:
- P1, P2, P3 ready queue เคฎเฅเค เคนเฅเค
Process flow:
- Scheduler P1 เคเฅ select เคเคฐเคคเคพ เคนเฅ
- P1 running
- P1 I/O wait เคฎเฅเค เคเคฒเคพ เคเคฏเคพ
- Scheduler P2 เคเฅ CPU เคฆเฅเคคเคพ เคนเฅ
เคฏเคนเฅ scheduling เคนเฅ
Why Process Scheduling Important
- CPU idle เคจเคนเฅเค เคฐเคนเคคเคพ
- System performance improve เคนเฅเคคเคพ เคนเฅ
- Fairness maintain เคนเฅเคคเฅ เคนเฅ
- Multi-tasking possible เคนเฅเคคเคพ เคนเฅ
Key Points
- Scheduler types เคเคฐเฅเคฐ เคฏเคพเคฆ เคเคฐเฅ
- Dispatcher + Context Switching important
- Preemptive vs Non-preemptive เคชเฅเคเคคเคพ เคนเฅ
Conclusion
Process Scheduling Operating System เคเคพ heart เคนเฅ, เคเฅ system เคเฅ เคธเคญเฅ processes เคเฅ efficiently manage เคเคฐเคคเคพ เคนเฅ เคเคฐ CPU utilization เคเฅ maximize เคเคฐเคคเคพ เคนเฅเฅค
เคฏเคน เคคเคฏ เคเคฐเคคเคพ เคนเฅ เคเคฟ system smooth เคเคฐ fast เคเคฒเฅเฅค