CPU μ€μΌμ€λ§ (CPU Scheduling)
- νλ‘κ·Έλ¨μ΄ μ€νλ λλ CPU μ€μΌμ€λ§ μκ³ λ¦¬μ¦μ΄ μ΄λ€ νλ‘κ·Έλ¨μ CPU μμ κΆμ μ€ κ²μΈμ§ κ²°μ ν©λλ€.
- CPU μ΄μ©λ₯ μ λκ², μ£Όμ΄μ§ μκ°μ λ§μ μΌμ νκ², μ€λΉ ν(ready queue)μ μλ νλ‘μΈμ€λ μ κ², μλ΅ μκ°μ μ§§κ² μ€μ νλ κ²μ λͺ©νλ‘ ν©λλ€.
- μ μ ν μ€μΌμ€λ§κ³Ό λΉμ μ ν μ€μΌμ€λ§μ΄ μμ΅λλ€.
β» CPUλ ?
CPU(Central Processing Unit)λ μ°μ λ Όλ¦¬μ°μ°μ₯μΉ, μ μ΄μ₯μΉ, λ μ§μ€ν°λ‘ ꡬμ±λμ΄ μλ μ»΄ν¨ν° μ₯μΉλ₯Ό λ§νλ©°, μΈν°λ½νΈμ μν΄ λ¨μν λ©λͺ¨λ¦¬μ μ‘΄μ¬νλ λͺ λ Ήμ΄λ₯Ό ν΄μν΄μ μ€ννλ μΌκΎΌμ λλ€.
1. λΉμ μ ν λ°©μ (non-preemptive)
νλ‘μΈμ€κ° μ€μ€λ‘ CPU μμ κΆμ ν¬κΈ°νλ λ°©μμ΄λ©°, κ°μ λ‘ νλ‘μΈμ€λ₯Ό μ€μ§νμ§ μμ΅λλ€. λ°λΌμ 컨ν μ€νΈ μ€μμΉμΌλ‘ μΈν λΆνκ° μ μ΅λλ€. λͺ¨λ νλ‘μΈμ€μ λν μꡬλ₯Ό 곡μ νκ² μ²λ¦¬ν μ μμ§λ§ 짧μ μμ μ μννλ νλ‘μΈμ€κ° κΈ΄ μμ μ’ λ£ μκΉμ§ λκΈ°ν΄μΌν μλ μμ΅λλ€.
FCFS / FIFO ( Frist Come, First Served / First In Frist Out) |
β κ°μ₯ λ¨Όμ μ¨ κ²μ κ°μ₯ λ¨Όμ μ²λ¦¬νλ μκ³ λ¦¬μ¦ β λ¨μ : κΈΈκ² μνλλ νλ‘μΈμ€ λλ¬Έμ μ€λΉ νμμ μ€λ κΈ°λ€λ¦¬λ νμ(convoy effect)μ΄ λ°μ |
SJF ( Shortest Job First ) |
β μ€ν μκ°μ΄ κ°μ₯ 짧μ νλ‘μΈμ€λ₯Ό κ°μ₯ λ¨Όμ μ€ννλ μκ³ λ¦¬μ¦ β λ¨μ : κΈ΄ μκ°μ κ°μ§ νλ‘μΈμ€κ° μ€νλμ§ μμ κΈ°μ νμμ΄ μΌμ΄λλ©° νκ· λκΈ° μκ°μ΄ κ°μ₯ 짧μ. |
μ°μ μμ ( Priority ) |
β κ° νλ‘μΈμ€ λ³λ‘ μ°μ μμλ₯Ό ν λΉνκ³ , μ°μ μμμ λ°λΌ cpuλ₯Ό ν λΉνλ μκ³ λ¦¬μ¦ β SJF μ€μΌμ€λ§μ κ²½μ° κΈ΄ μκ°μ κ°μ§ νλ‘μΈμ€κ° μ€νλμ§ μλ νμμ΄ μλ€. μ°μ μμλ₯Ό λΆμ¬ν¨μΌλ‘μ λ¨μ μ 보μν μκ³ λ¦¬μ¦ |
2. μ μ ν λ°©μ (preemptive)
νλ μ΄μ체μ κ° μ°λ λ°©μμ΄λ©°, μ§κΈ μ¬μ©νκ³ μλ νλ‘μΈμ€λ₯Ό μκ³ λ¦¬μ¦μ μν΄ μ€λ¨μμΌ λ²λ¦¬κ³ κ°μ λ‘ λ€λ₯Έ νλ‘μΈμ€μ cpu μμ κΆμ ν λΉνλ λ°©μμ λλ€. λΉκ΅μ μλ΅μ΄ λΉ λ₯Έ μ₯μ μ΄ μμ§λ§ λμ μ°μ μμ νλ‘μΈμ€λ€μ΄ κ³μ λ€μ΄μ€λ κ²½μ° μ€λ²λ λλ₯Ό μ΄λν©λλ€.
λΌμ΄λλ‘λΉ ( RR, Round Robin ) |
β νλ μ»΄ν¨ν°κ° μ°λ μ€μΌμ€λ§μΈ μ°μ μμ μ€μΌμ€λ§(priority scheduling)μ μΌμ’
β κ° νλ‘μΈμ€λ λμΌν ν λΉ μκ°μ μ£Όκ³ κ·Έ μκ° μμ λλμ§ μμΌλ©΄ λ€μ μ€λΉ ν (ready queue)μ λ€λ‘ κ°λ μκ³ λ¦¬μ¦ |
SRF ( Shortest Remain Time ) |
β SRFλ μ€κ°μ λ 짧μ μμ μ΄ λ€μ΄μ€λ©΄ μννλ νλ‘μΈμ€λ₯Ό μ€μ§νκ³ ν΄λΉ νλ‘μΈμ€λ₯Ό μννλ μκ³ λ¦¬μ¦ |
λ€λ¨κ³ ν ( MLQ, MultiLevel Queue ) |
β μ°μ μμμ λ°λ₯Έ μ€λΉ νλ₯Ό μ¬λ¬ κ° μ¬μ©νκ³ , νλ§λ€ λΌμ΄λ λ‘λΉμ΄λ FCFS λ± λ€λ₯Έ μ€μΌμ€λ§ μκ³ λ¦¬μ¦μ μ μ©ν κ² β ν κ°μ νλ‘μΈμ€ μ΄λμ΄ μ λλ―λ‘ μ€μΌμ€λ§ λΆλ΄μ΄ μ μ§λ§ μ μ°μ±μ΄ λ¨μ΄μ§λ νΉμ§μ΄ μλ€ β κ° νλ μμ λ§μ λ μμ μΈ μ€μΌμ€λ§μ κ°μ§λ€. |
Reference.
λμ: λ©΄μ μ μν CS μ 곡μ§μ λ ΈνΈ (κΈΈλ², μ£Όνμ² )
λΈλ‘κ·Έ: νλ€λ¦¬λ©° νΌλ κ½ - [μ΄μ체μ ] CPU μ€μΌμ€λ§ (μ μ & λΉμ μ ) (tistory.com)
'π¨π»βπ» programming > β½ μ΄μ체μ ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
(OS) λ€νΈμν¬ κΈ°κΈ° (3) | 2022.12.14 |
---|---|
(OS) TCP/IP, UDP κ³μΈ΅κ΅¬μ‘°, OSI (2) | 2022.09.20 |
(OS) λ€νΈμν¬ κΈ°μ΄ (0) | 2022.09.07 |
(OS) νλ‘μΈμ€μ μ€λ λ (1) | 2022.08.03 |
(OS) μ΄μ체μ μ λ©λͺ¨λ¦¬ (0) | 2022.07.29 |
μ νλ κ² λ³΄λ€ λ«κ² μ§
ν¬μ€ν μ΄ μ’μλ€λ©΄ "μ’μμβ€οΈ" λλ "ꡬλ ππ»" ν΄μ£ΌμΈμ!