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