[Concurrency] κΈ°λ³Έκ°λ
λμμ±μ λν μ΄ν΄μ μ©μ΄ μ΅λμ μν΄ κΈ°λ³Έμ μΈ κ°λ λ€μ μ 리νλ€.
νλ‘μΈμ€(Process)
λμμ±μ μμ΄μ κ°μ₯ μ€μν κΈ°λ³Έλ¨μλ μ€λ λκ° μλλΌ νλ‘μΈμ€λ€.
μ¬κΈ°μ λ§νλ νλ‘μΈμ€λ OSμ νλ‘μΈμ€μλ λ€λ₯΄λ€.
νλ‘μΈμ€λ λ€μκ³Ό κ°μ μν μ μ΄λ₯Ό κ°μ§λ μΌλ ¨μ μμ λ¨μλ₯Ό λ§νλ€.
μ¬κΈ°μ νΉμ΄ν μ μ μ€ν μ€μ μΈμ λ "λκΈ° μν"λ‘ μ νλμλ€κ° λ€μ μ€ν μνλ‘ λμμ¬ μ μλ€λ μ μ΄λ€.
λκΈ° μνλ‘ μ νλλ μ΄μ μλ I/Oλ‘ μΈν λ°μ΄ν° λκΈ°, 리μμ€ λΆμ‘±μΌλ‘ μΈν λκΈ°, νΉμ ν μΌμ΄ μμλ 리μμ€λ₯Ό μλΌκΈ° μν΄μ λκΈ°νλ κ² λ±μ΄ μλ€.
λμμ±(Concurrency)κ³Ό λ³λ ¬μ±(Paralleism)
λμμ±μ 2κ° μ΄μμ νλ‘μΈμ€κ° λμμ κ³μ° μ€μΈ μνμ μλ€λ κ²μ λνλ΄λ μ©μ΄λ€.
μλΆν μ²λ¦¬ λ±μ ν΅ν΄ λμμ μ€νλλ κ²μ²λΌ 보μ΄λ κ²κ³Ό, λ©ν°μ½μ΄λ₯Ό ν΅ν΄ μ€μ λ‘ λμμ μ€νλλ κ²μ λͺ¨λ λμμ±μ΄λΌ λ§νλ€.
λ³λ ¬μ±λ μλ―Έκ° κ±°μ μ μ¬ν΄μ νΌμ©λλ κ²½μ°κ° λ§μλ°, 보ν΅μ λ©ν°μ½μ΄λ₯Ό ν΅ν΄ λμμ μ€νλλ κ²λ§μ κ°λ¦¬ν¬λ μ£Όλ‘ μ¬μ©νλ€.
λ³λ ¬μ±μ΄ λμμ±μ ν¬ν¨λλ κ°λ
μ΄λΌκ³ λ³Ό μ μλ€.

λ³λ ¬μ±μ μ’ λ₯
λ³λ ¬μ±μ΄λΌκ³ λΆλ₯΄λκ²λ κ΄μ μ λ°λΌ μ’ λ₯κ° μ’ κ°λ¦°λ€.
1. νμ€ν¬ λ³λ ¬μ±
μ¬λ¬κ°μ νμ€ν¬λ₯Ό λμμ μ€ννλ κ²μ λ§νλ€. μ¬κΈ°μ νμ€ν¬λ νλ‘μΈμ€λ μ€λ λμ κ°λ
κ³Ό κ±°μ κ°λ€.
λ³΄ν΅ λ©ν°μ€λ λλ₯Ό ꡬννλ€κ³ νλ©΄ νμ€ν¬ λ³λ ¬μ±μ μ μ©νλ κ²μ΄λ€.
2. λ°μ΄ν° λ³λ ¬μ±
λ°μ΄ν°λ₯Ό μ¬λ¬κ°λ‘ λΆν ν΄μ λ³λ ¬λ‘ μ²λ¦¬νλ λ°©λ²μ λ§νλ€.
μλ₯Ό λ€λ©΄ κ·Έλν½μ°μ°μμ 벑ν°μ°μ°μ νλ κ² λ±μ΄ μλ€.
3. μΈμ€νΈλμ
λ 벨 λ³λ ¬μ±
CPUμ μΈμ€νΈλμ
μμ€μμ λ³λ ¬νλ₯Ό μννλ κ²μ λ§νλ€.
μ»΄ν¨ν°κ΅¬μ‘°λ μ΄μ
λΈλ¦¬λ₯Ό λ°°μ λ€λ©΄ λ€μμ νμ΄νλΌμ΄λ(Pipelining)μ κ°λ
κ³Ό λμΌνλ€.
μ¬μ€ μ΄κ±΄ μ»΄νμΌλ¬κ° μννλ μ΅μ νλΌμ μΌλ° κ°λ°μκ° λ€λ£° μμμ μλλ€.
λμμ±μ΄ μ μ€μνκ°?
λμμ±μ΄ νμν μ΄μ λ ν¬κ² 2κ°μ§ μ λκ° μμ μ μλ€.
첫λ²μ§Έλ λΆν μ²λ¦¬λ₯Ό ν΅ν μ±λ₯ ν₯μμ΄λ€.
μ¬λ¬κ°μ μ½μ΄λ₯Ό λμμ νμ©ν΄μ ν° μμ
μ λΆν ν΄μ λ³΄λ€ λΉ λ₯΄κ² μμ
μ μνν μ μλ€.
λλ²μ§Έλ I/Oλ‘ μΈν λκΈ°μκ°μ μλΌλ κ²μ΄λ€.
I/Oλ μκ°λ³΄λ€ λ§μ λκΈ°μκ°μ΄ λ°μνκ³ ν° λλΉκ° λ°μνλ λΆλΆμ΄λ€. νλμ νλ‘κ·Έλ¨λ€μ μ±λ₯ μ νλ λλΆλΆ I/Oμμ λ°μνλ€.
I/Oλ‘ μΈν΄ λ°μνλ λκΈ°μκ°μ μ»΄ν¨ν
리μμ€λ‘ νμ©νκ³ μ΅μ νν μ μκ² ν΄μ£Όλ κ²μ΄ λμμ± νλ‘κ·Έλλ°μ΄λ€.