Process Scheduling

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 เคšเคฒเฅ‡เฅค

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top