λμμ± (Concurrency)
- νλμ μ½μ΄μμ μ¬λ¬ μ€λ λκ° λ²κ°μκ°λ©° μ€ν
- λμμ μ€νλλ κ²μ²λΌ 보μ
- μ±κΈ μ½μ΄, λ©ν° μ½μ΄μμ λͺ¨λ ꡬν κ°λ₯
- λ Όλ¦¬μ μΈ κ°λ
λμμ± νλ‘κ·Έλλ°μ λμμ μ¬λ¬ μμ
μ μννλ€.
λμΌλ‘ 보기μλ λμμ μ€νλλ κ²μ²λΌ 보μ΄μ§λ§,
μλΆν (Interleaving) κΈ°λ²μ νμ©νμ¬ CPUκ° μμ
λ§λ€ μκ°μ λΆν ν΄μ μ μ νκ² λ¬Έλ§₯ κ΅ν(context switching) νλ€.
λλ¬Έμ, λμμ μ€νλλ κ²μ²λΌ 보μ΄λ κ²μ΄λ€.
λμμ±μ ꡬννλ κ²λ λλ²κ·Ένλ κ²λ μ΄λ ΅λ€.
λμμ±μ ν΅μ¬ λͺ©νλ μ ν΄ μκ°(idle time)μ μ΅μννλ κ²μ΄λ€.
* μ ν΄ μκ°μ΄λ(idle time)?
μ»΄ν¨ν°κ° μλ κ°λ₯νλ°λ μμ μ νμ§ μλ μκ°μ μλ―Ένλ€.
Task 1 κ³Ό Task 2 λ₯Ό μͺΌκ°μ΄ λ²κ°μκ°λ©° μννμ¬ μ¬μ©μ μ
μ₯μμ λ μμ
μ΄ λμμ μΌμ΄λλ κ²μ²λΌ λκ»΄μ§κ² λλ€.
κ²°κ³Όμ μΌλ‘λ λ μμ
μ΄ λμμ μνλλ κ²μ΄ μλκΈ° λλ¬Έμ,
10λΆ + 10λΆ, μ΄ 20λΆμ΄ μμλλ€. (Context Switching κ³ λ €νμ§ μμ λ¨νΈμ μΈ μμ μ΄λ€.)
λ³λ ¬μ± (Parallelism)
- λ©ν° μ½μ΄μμ μ¬λ¬ μ€λ λλ₯Ό λμμ μ€ν
- μ€μ λ‘ λμμ μ¬λ¬ μμ μ΄ μ²λ¦¬ λ¨
- λ©ν° μ½μ΄μμλ§ κ΅¬ν κ°λ₯
- 물리μ μΈ κ°λ
λ³λ ¬μ±μ λμΌν μκ°μ λ
립μ μΈ μμ
μ μ€νν μ μμμ μλ―Ένλ€.
λμμ±κ³Όλ λ¬λ¦¬ μ¬λ¬ μμ
μ λ€λ₯Έ μ½μ΄, λ€λ₯Έ νλ‘μΈμ€, λ³λμ μ»΄ν¨ν° λ±μμ λμμ μ€νν μ μλ€.
κ·Έλμ λ³λ ¬ μ²λ¦¬κ° μ±λ₯ ν₯μμ νμμ μ΄λΌκ³ λ νλ€.
λ³λ ¬μ±μ μμ(CPU μ½μ΄)μ μ μ₯μμ μκΈ°λ μκΈ° ν μΌ 1κ°λ§ νλ κ²μ΄λ€.
λ°λΌμ, μμ(CPU μ½μ΄)μ΄ μ¬λ¬ κ°μΌ λ κ°λ₯νλ€.
Task 1 κ³Ό Task 2 κ° λ³λ ¬μ μΌλ‘ λμμ μνλλ€. μ΄λ 'λ©ν°μ½μ΄' μμ€ν μμ κ°λ₯ν μ΄μΌκΈ°μ΄λ€.
μ½μ΄ κ°κ°μ΄ Task 1, Task 2 λ₯Ό 맑μ μμ
μ μννλ©΄, μμ ν λμμ μνλλ κ²μ΄λ€.
λ°λΌμ, κ°κ° Task κ° 10λΆμ©μ΄λΌλ©΄, μ΅μ’
μ μΌλ‘ 10λΆμ΄ μμλλ κ²μ΄λ€. μ΄ κ²½μ° Context Switching μ΄ μΌμ΄λμ§ μλλ€.
λμμ±κ³Ό λ³λ ¬μ±μ 곡λΆν μ΄μ
μλλ‘μ΄λλ₯Ό 곡λΆνλ€ λ³΄λ©΄ Treadμ Coroutineμ λ§λκ² λλ€.
Treadμ Coroutineμ 'λμμ± νλ‘κ·Έλλ°' μ μν κΈ°μ μ΄λ€.
'λμμ±'μ 보μ₯νκΈ° μν΄ λ±μ₯ν λ κΈ°μ μ μ΄ν΄νκΈ° μν΄μλ λμμ±κ³Ό λ³λ ¬μ±μ μ΄ν΄λ νμμ΄λ€.
λν, μ΄μ체μ μ Mutil Processλ₯Ό μ΄ν΄νκΈ° μν΄μλ λμμ±κ³Ό λ³λ ¬μ±μ μμμΌνλ€.
μ°Έκ³
https://yeonyeon.tistory.com/270
'π» Computer Science > μ΄μ체μ ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
ν¬λ μ(Forensic)μ΄λ ? λμ§νΈ ν¬λ μμ΄λ? μ리 (0) | 2023.08.11 |
---|---|
[μ΄μ체μ ] Memory λ? (paging, segmentation, κ°μλ©λͺ¨λ¦¬) (1) | 2023.05.27 |
compile(μ»΄νμΌ)κ³Ό runtime(λ°νμ) μ°¨μ΄ (0) | 2023.05.27 |
Process & Thread λ? (multi process & multi thread & Deadlock μ 리) (0) | 2023.05.23 |