μ€λλ§μ μ½ν λ¬Έμ λ₯Ό νμ΄λ³΄μλ€.
ν μλ£κ΅¬μ‘°λ₯Ό μ΄μ©ν λ¬Έμ μΈλ°, μ£Όλ‘ μ°μ μμ νλ₯Ό μ΄μ©ν΄ λ¬Έμ λ₯Ό νλ©΄ λλ€λ κ²μ λ°°μ λ€.
νλ‘μ νΈ λλ¬Έμ μκ°μ΄ κ±°μ μ λλλ° μ§¬μ§¬ν νΈλ €κ³ λ Έλ ₯μ μ’ ν΄μΌκ² λ€.
νμ΄ κ³Όμ μ μ€λͺ νκ² λ€.
λ¬Έμ μ€λͺ
νλλμ€ν¬λ ν λ²μ νλμ μμ λ§ μνν μ μμ΅λλ€. λμ€ν¬ 컨νΈλ‘€λ¬λ₯Ό ꡬννλ λ°©λ²μ μ¬λ¬ κ°μ§κ° μμ΅λλ€. κ°μ₯ μΌλ°μ μΈ λ°©λ²μ μμ²μ΄ λ€μ΄μ¨ μμλλ‘ μ²λ¦¬νλ κ²μ λλ€.
μ ν μ¬ν
- jobsμ κΈΈμ΄λ 1 μ΄μ 500 μ΄νμ λλ€.
- jobsμ κ° νμ νλμ μμ μ λν [μμ μ΄ μμ²λλ μμ , μμ μ μμμκ°] μ λλ€.
- κ° μμ μ λν΄ μμ μ΄ μμ²λλ μκ°μ 0 μ΄μ 1,000 μ΄νμ λλ€.
- κ° μμ μ λν΄ μμ μ μμμκ°μ 1 μ΄μ 1,000 μ΄νμ λλ€.
- νλλμ€ν¬κ° μμ μ μννκ³ μμ§ μμ λμλ λ¨Όμ μμ²μ΄ λ€μ΄μ¨ μμ λΆν° μ²λ¦¬ν©λλ€.
λ¬Έμ ν΄μ
μ΄ λ¬Έμ λ μ°Ύμ보λ SJF μ€μΌμ€λ§μ ꡬννλ λ¬Έμ μ΄λ€
=> μμ μ μμ²λΆν° μ’ λ£κΉμ§ κ±Έλ¦° μκ°μ νκ· μ μ€μ΄λ κΈ°λ²
SJF(Shortest Job First)
- λ€μ μμ μκ°μ΄ κ°μ₯ μ§§μ μμΌλ‘ μ€μΌμ€λ§ (= λ€μ CPU λ²μ€νΈ μκ°μ΄ κ°μ₯ μ§§μ νλ‘μΈμ€ μμΌλ‘ μ€μΌμ€λ§)
- νκ· λκΈ° μκ° μΈ‘λ©΄μμλ μ΅μ μ κ°μ₯ κ°κΉμ
→ νμ§λ§ νλ‘μΈμ€μ λ€μ CPU λ²μ€νΈ μκ°μ μμΈ‘νλ κ²μ΄ μ΄λ €μ (μ΄λ¬ν μ΄μ λ‘ μ»΄ν¨ν° OSμμ SJF μ€μΌμ€λ§μ μ¬μ©νμ§ μλλ€)
- μ μ SJF = SRTF(Shortest Remaining Time First) : μ νλ‘μΈμ€κ° μ€λΉ νμ λμ°©νμ λ, μ΄ νλ‘μΈμ€μ νμ¬ μνμ€μΈ νλ‘μΈμ€μ λ¨μ μκ°μ λΉκ΅ν΄μ λ μ μΌλ©΄ κΈ°μ‘΄ νλ‘μΈμ€λ₯Ό κ°μ λ‘ μ’ λ£νκ³ μ νλ‘μΈμ€ ν λΉ
λ¬Έμ νμ΄
SJF μ€μΌμ₯΄λ§ μ΄λΌλ κΈ°λ²μ ꡬνν΄ λ¬Έμ μ μ μ©μν€λ €λ©΄ μ°μ μ μΌλ‘ μ°μ μμ νλ₯Ό μ μΈν΄μΌκ² λ€λ μκ°μ νλ€.
λ¨Όμ , μ€νμκ°μ΄ μ§§μ μμλλ‘ μ°μ μμ νλ₯Ό μ¬μ©νμ¬ μ λ ¬μ νκ³ , jobs λ°°μ΄μ μμ μκ° μμλλ‘ μ λ ¬μ νλ€.
while λ¬Έμ ν΅ν΄μ μ°μ μμ νμ λ¨μ μμ λ°°μ΄μ λ£μ΄μ£Όκ³ μμ°¨μ μΌλ‘ μ²λ¦¬νλ€.
λ§μ½ νκ° λΉμλ€λ©΄ λ€μ μμ λ°°μ΄λ‘ λμ΄κ°λ€.
νκ° λΉμ΄μμ§ μμ κ²½μ° poll()μ ν΅ν΄ μ μΌ μμ μμ λ°°μ΄μ κΊΌλ΄μ΄ μμ² λ° μ’ λ£ μκ°μ κ³μ°νλ€.
μμ² μκ°μ μμ μμ μκ°κ³Ό κ°κ³ , μ’ λ£ μκ°μ νμ¬ μκ°μμ μμ μ΄ λλλ μκ°μ λνκ³ μμ² μκ°μ λΉΌμ κ³μ°νλ€.
μ½λ
'π Algorithm > μ½λ©ν μ€νΈ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
2022.06.14 γLv.2 λ©μ©‘ν μ¬κ°νγ (0) | 2022.06.14 |
---|---|
2022.06.08 γLv.2 λ¬Έμμ΄ μμΆγ (0) | 2022.06.08 |
2022.05.24 γLv.3 μ κ΅μ¬μ¬γ (0) | 2022.05.24 |
2022.05.18 γLv.2 Heap λ λ§΅κ²γ (0) | 2022.05.18 |
2022.05.17 γLv.2 νλ¦°ν°γ (0) | 2022.05.17 |