etc/μ 보μ²λ¦¬κΈ°μ¬
[μ 보μ²λ¦¬κΈ°μ¬ μ€κΈ°] μ€μΌμ€λ§(Scheduling)
minzhen
2022. 7. 22. 01:52
Scheduling
νλ‘μΈμ€κ° μμ±λμ΄ μ€νλ λ νμν μμ€ν μ μ¬λ¬ μμμ ν΄λΉ νλ‘μΈμ€μκ² ν λΉνλ μμ
- νλ‘μΈμ€κ° μμ±λμ΄ μλ£λ λκΉμ§ νλ‘μΈμ€λ μ¬λ¬ μ’ λ₯μ μ€μΌμ€λ§ κ³Όμ μ κ±°μΉκ² λ¨
μ€μΌμ€λ§μ μ’ λ₯
- μ₯κΈ° μ€μΌμ€λ§ : μ΄λ€ νλ‘μΈμ€μκ² μμ€ν μμμ ν λΉν μ§ κ²°μ → μ€λΉμν νλ‘ λ³΄λ΄λ μμ
- μ€κΈ° μ€μΌμ€λ§ : μ΄λ€ νλ‘μΈμ€λ€μ΄ CPUλ₯Ό ν λΉλ°μ κ²μΈμ§ κ²°μ
- λ¨κΈ° μ€μΌμ€λ§ : νλ‘μΈμ€ μ€νμ μν΄ CPU ν λΉμκΈ°, νΉμ νλ‘μΈμ€ μ§μ
μ€μΌμ€λ§μ λͺ©μ
- 곡μ μ± : λͺ¨λ νλ‘μΈμ€μ 곡μ νκ² ν λΉ
- μ²λ¦¬μ¨ μ¦κ° : λ¨μ μκ°λΉ νλ‘μΈμ€λ₯Ό μ²λ¦¬νλ λΉμ¨ μ¦κ°
- CPU μ΄μ©λ₯ μ¦κ° : CPUκ° μμνκ² νλ‘μΈμ€λ₯Ό μ€ννλ μμμκ° λΉμ¨ μ¦κ°
- μ°μ μμ μ λ : μ°μ μμκ° λμ νλ‘μΈμ€ λ¨Όμ μ€ν
- μ€λ²ν€λ μ΅μν : μ€λ²ν€λ μ΅μν
- μλ΅ μκ° μ΅μν : μμ μ μ§μνκ³ , λ°μνκΈ° μμνλ μκ° μ΅μν
- λ°ν μκ° μ΅μν : νλ‘μΈμ€λ₯Ό μ μΆν μκ°λΆν° μ€νμ΄ μλ£λ λκΉμ§ 걸리λ μκ°μ μ΅μνν¨
- λκΈ° μκ° μ΅μν : νλ‘μΈμ€κ° μ€λΉμν νμμ λκΈ°νλ μκ° μ΅μν
- κ· ν μλ μμμ μ¬μ© : λ©λͺ¨λ¦¬, μ ·μΆλ ₯ μ₯μΉ λ±μ μμμ κ· ν μκ² μ¬μ©
- 무ν μ°κΈ° ννΌ : μμμ μ¬μ©νκΈ° μν΄ λ¬΄νμ μ°κΈ°λλ μν ννΌ κ°λ₯
λΉμ μ (Non-Preemptive) μ€μΌμ€λ§
μ΄λ―Έ ν λΉλ CPUλ₯Ό λ€λ₯Έ νλ‘μΈμ€κ° κ°μ λ‘ λΉΌμμ μ¬μ©ν μ μλ μ€μΌμ€λ§ κΈ°λ²
- νλ‘μΈμ€κ° CPUλ₯Ό ν λΉλ°μΌλ©΄ ν΄λΉ νλ‘μΈμ€κ° μλ£λ λκΉμ§ CPUλ₯Ό μ¬μ©νλ€.
- νλ‘μΈμ€ μλ΅ μκ° μμΈ‘ μ©μ΄
- μΌκ΄ μ²λ¦¬ λ°©μμ μ ν©
μ’ λ₯
- FCFS (First Come Frist Service) : νλ‘μΈμ€κ° μ€λΉμν νμ λμ°©ν μμμ λ°λΌ CPU ν λΉ. κ°μ₯ κ°λ¨ν μκ³ λ¦¬μ¦.
- SJF (Shortest Job First) : μ€λΉμν νμμ λκΈ°μ€μΈ νλ‘μΈμ€ μ€ μ€νμκ°μ΄ κ°μ₯ μ§§μ νλ‘μΈμ€κ° μ’ λ£ μκΉμ§ μμ μ μ . κ°μ₯ μ μ νκ· λκΈ°μκ°μ μ 곡νλ μ΅μ μκ³ λ¦¬μ¦. κΈ°μ νμ λ°μ
- μ°μ μμ (Priority) : νλ‘μΈμ€λ³ μ°μ μμκ° μ£Όμ΄μ§κ³ , μ°μ μμμ λ°λΌ CPU ν λΉ
- HRN (Highest Response-ratio Next) : νμ¬ μλ΅λ₯ μ΄ κ°μ₯ λμ κ²μ μ ν → μ°μ μμ κ³μ°μ = ( λκΈ°μκ° + μλΉμ€(μ€ν)μκ° ) / μλΉμ€ μκ°. κΈ°μ νμ μ΅μν κΈ°λ²
- κΈ°νλΆ (Deadline) : μμ λ€μ΄ λͺ μλ μκ°μ΄λ κΈ°ν λ΄μ μλ£λλλ‘ κ³ν
μ μ (Preemptive) μ€μΌμ€λ§
ν νλ‘μΈμ€κ° CPUλ₯Ό ν λΉλ°μ μ€ν μ€μΌ λ μ°μ μμκ° λμ λ€λ₯Έ νλ‘μΈμ€κ° CPUλ₯Ό κ°μ λ‘ λΉΌμμ μ¬μ©ν μ μλ μ€μΌμ€λ§ κΈ°λ²
- μ°μ μμκ° λμ νλ‘μΈμ€λ₯Ό λΉ λ₯΄κ² μ²λ¦¬ κ°λ₯
- μ£Όλ‘ λΉ λ₯Έ μλ΅ μκ°μ μꡬνλ λνμ μλΆν μμ€ν μ μ¬μ©
- λ§μ μ€λ²ν€λ(Overhead) μ΄λ (*μ€λ²ν€λ : μ²λ¦¬μ λλ κ°μ μ μ²λ¦¬μκ°·λ©λͺ¨λ¦¬)
μ’ λ₯
- λΌμ΄λ λ‘λΉ(Round Robin) : κ°μ ν¬κΈ°μ CPU μκ° ν λΉ
- SRT(Shortest Remaining Time First) : κ°μ₯ μ§§μ μκ°μ΄ μμλλ νλ‘μΈμ€λ₯Ό λ¨Όμ μννκ³ , λ¨μ μ²λ¦¬ μκ°μ΄ λ μ§§λ€κ³ νλ¨λλ νλ‘μΈμ€κ° μ€λΉ νμ μκΈ°λ©΄ μΈμ λΌλ νλ‘μΈμ€κ° μ μ λ¨
- λ€λ¨κ³ ν(Multi Level Queue) : μμ λ€μ μ¬λ¬ μ’ λ₯ κ·Έλ£Ή λΆν
- λ€λ¨κ³ νΌλλ°± ν : νλ§λ€ μλ‘ λ€λ₯Έ CPUμκ° ν λΉλ λΆμ¬, FIFOμ λΌμ΄λ λ‘λΉ μ€μΌμ€λ§ κΈ°λ²μ νΌν©ν κ²