μΆμ² : λ΄μΌλ°°μμΊ ν
Summary : μ°λ λλ νλ‘μΈμ€ λ΄ μ€νλλ μ€ν λ¨μλ‘, μ°λ λ νμ μ°λ λλ₯Ό 미리 μμ±νκ³ μμ μ²λ¦¬μ μ¬μ©λλ μ°λ λμ κ°μλ₯Ό μ ννλ€. κ·Έ μ°λ λλ‘ μμ νμ μλ μμ μ νλμ© μ²λ¦¬νλ€. μ°λ λ νμ μ₯μ μ μ°λ λλ₯Ό μμ±/μκ±°ν λ λΉμ©μ΄ λ€μ§ μκ³ μ°λ λ νμ 미리 λ§λ€μ΄ λκΈ° λλ¬Έμ μμλλ μμ€ν 리μμ€λ₯Ό μ΅μ νν μ μλ€. νμ§λ§ μ°λ λ νμ μ°λ λλ₯Ό λ무 λ§μ΄ μμ±νκ³ μ¬μ©νμ§ μλ κ²½μ°μλ λ©λͺ¨λ¦¬ λμλ‘ μ΄μ΄μ§λ€
0. νλ‘μΈμ€μ μ°λ λ
0 - 1. νλ‘κ·Έλ¨ μ€ν 주체 : νλ‘μΈμ€
(ex : νλμ 건물(μ»΄ν¨ν°)μμ λ€μν κ°κ²(νλ‘μΈμ€)κ° μκ³ , κ° κ°κ²μλ μ£Όλ¬Έμ μ²λ¦¬νλ μ§μ(μ°λ λ)κ° μλ€)
- κ° νλ‘μΈμ€λ λ°°μ λ 곡κ°κ³Ό λ©λͺ¨λ¦¬κ° μλ€
0 - 2. μμ μ²λ¦¬ 주체 : μ°λ λ
ex : μΉ΄μΉ΄μ€ν‘ μ λ©μΈμ§ λ°μ‘ μ°λ λ, λ©μΈμ§ μμ μ°λ λ λ±
- μ°λ λλ νμν λλ§λ€ μμ±λλ©°, νλ‘μΈμ€λ₯Ό μ‘°νν λ νμλλ μ°λ λ μλ νκ· μ€λ λμ κ°μλ₯Ό μλ―Ένλ€
- μΉν¨μ§ μ 곡κ°, μ¬λ£λ₯Ό 곡μ (μμ 곡μ )
νλ‘μΈμ€ vs μ°λ λ
νλ‘μΈμ€λ κ³ μ 곡κ°κ³Ό μμμ ν λΉλ°μ§λ§, μ°λ λλ λ€λ₯Έ μ°λ λμ 곡κ°κ³Ό μμμ 곡μ νλ€
1. μ°λ λ
1 - 1. νλ‘μΈμ€μ μ°λ λμ μ°¨μ΄μ
- νλ‘μΈμ€λ λ©λͺ¨λ¦¬ μμμ μ€ν μ€μΈ νλ‘κ·Έλ¨μ΄λ©°, μ°λ λλ νλ‘μΈμ€ μμμ μμ μ μ²λ¦¬νλ μ²λ¦¬ λ¨μλ€
- νλ‘μΈμ€λ μ΅μν νλμ μ°λ λκ° μμ΄μΌ νλ©° νλ‘μΈμ€μ μλ£κ΅¬μ‘°λ μ£Όμμ 곡κ°μ κ°κ° ν λΉλ°λλ€(Code, Heap, Stack)
~ λ§μ½ νλ‘μΈμ€μ μ°λ λ μμ΄ νλ‘μΈμ€λ§μΌλ‘ μμ μ μ²λ¦¬νλ€λ©΄
-> νλ‘μΈμ€ μμ±, 컨ν μ€νΈ μ€μμΉ μ μ€λ²ν€λκ° λ°μνκ³ μ»¨ν μ€νΈ μ€μμΉμ΄ λΉν¨μ¨μ μΌλ‘ λμνλ€
-> νλ‘μΈμ€ κ° ν΅μ μ΄ μ΄λ ΅λ€ : IPC(νλ‘μΈμ€ κ° ν΅μ λ©μ»€λμ¦), LPC, 곡μ λ©λͺ¨λ¦¬λ₯Ό μ¬μ©ν ν΅μ μ λΉμ©μ΄ λ§μ΄ λ λ€
- μ°λ λλ λ€λ₯Έ μ°λ λμ 곡κ°κ³Ό μμμ 곡μ νλ©° μ¬μ©νλ€
- μ°λ λλ μμ μ€ Stackλ§ λ°λ‘ ν λΉλ°κ³ λλ¨Έμ§ μμμ μ°λ λ κ° μλ‘ κ³΅μ νλ€. μ°λ λκ° μμ΄μ νλ‘μΈμ€λ³΄λ€ μμ λ¨μλ‘ μμ μ μ²λ¦¬ν μ μκ³ , νλ‘μΈμ€μ μμ± λ° μλ©Έμ λ°λ₯Έ μ€λ²ν€λκ° κ°μνλ€. μμ 곡μ λ‘ μΈν λΉ λ₯Έ 컨ν μ€νΈ μ€μμΉμ΄ κ°λ₯νλ©°, νλ‘μΈμ€ κ° ν΅μ μ μ΄λ €μμ λμ ν ν¨μ¨μ μΈ ν΅μ μ΄ κ°λ₯νλ€
1 - 2. νλ‘μΈμ€μ μ°λ λμ μ£Όμ곡κ°
νλ‘μΈμ€μ μ£Όμ곡κ°
νλ‘μΈμ€ : μ»΄ν¨ν°μμ μ°μμ μΌλ‘ μ€ννκ³ μλ μ»΄ν¨ν° νλ‘κ·Έλ¨, λ©λͺ¨λ¦¬μ μ¬λΌμ μ€νλκ³ μλ νλ‘κ·Έλ¨μ μΈμ€ν΄μ€(λ 립μ μΈ κ°μ²΄), μ΄μ체μ λ‘λΆν° μμ€ν μμμ ν λΉλ°λ μμμ λ¨μ ~ νλ‘κ·Έλ¨μ μ€νλ λΆλΆ
νλ‘μΈμ€μ νΉμ§
- κ°κ°μ λ 립λ λ©λͺ¨λ¦¬ μμμ νλΉλ°λλ€
- μ΅μ 1κ° μ΄μμ μ°λ λ(λ©μΈ μ°λ λ)λ₯Ό κ°μ§κ³ μλ€
- κ° νλ‘μΈμ€λ λ³λμ μ£Όμ 곡κ°μμ μ€νλλ©° μμΉμ μΌλ‘ λ€λ₯Έ νλ‘μΈμ€μ μμμ μ κ·Όν μ μλ€
- νλ‘μΈμ€κ° ν΅μ μ IPCλ₯Ό μ¬μ©ν΄μΌ νλ€
- CPUλ ν λ²μ νλμ νλ‘μΈμ€λ§μ μ€νν μ μλ€
μ°λ λμ μ£Όμ곡κ°
μ°λ λ : νλ‘μΈμ€ λ΄ μ€νλλ μ¬λ¬ μμ μ λ¨μ, νλ‘μΈμ€μ νΉμ μν κ²½λ‘, νλ‘μΈμ€κ° ν λΉλ°μ μμμ μ΄μ©νλ μ΅μ μ€ν λ¨μ
μ°λ λμ νΉμ§
- νλ‘μΈμ€ λ΄ νμν Stackλ§ ν λΉλ°κ³ λ€λ₯Έ Code, Data, Heapμμμ 곡μ νλ€
- κ°μ νλ‘μΈμ€ λ΄ μ°λ λ κ° μμμ 곡μ ν΄ μ€νλλ€ ~ Heap μμ λ³μλ₯Ό μμ ν μ μλ€
- νλ‘μΈμ€ νλλ§ μ¬μ©ν΄ νλ‘κ·Έλ¨μ μ€ννλ€λ©΄ λ©λͺ¨λ¦¬ λμκ° λ°μνλ―λ‘ μ€λ λκ° νμνλ€. νλ‘μΈμ€μ λ€λ₯΄κ² μ€λ λ κ° λ©λͺ¨λ¦¬λ₯Ό 곡μ νλ©° μλνλ€ ~ νλ‘μΈμ€κ° ν λΉλ°μ μμμ μ΄μ©ν΄ μ²λ¦¬ μμ μ μννλ κ²μ΄λ€
ex) μΉν¨μ§μμ κ°μ μΌνλ 곡κ°(Stack)μ΄ λ€λ₯΄μ§λ§, μ 무 λ©λ΄μΌ(Code), μ£Όλ¬Έ(Data), λ©μΈ ν(Heap)μ 곡μ νλ€
κ° μ°λ λκ° λ 립μ μΌλ‘ κ°μ§λ λΆλΆ
- program counter(μ€ν λͺ λ Ήμ΄)
- register set
- stack space
μ°λ λκ° κ³΅μ νλ λΆλΆ
- code section
- data section
- OS resources
+ heavy weight processλ νλμ μ°λ λλ₯Ό κ°μ§ μμ μΌλ‘ λ³Ό μ μλ€
1 - 3. λ©ν° νλ‘μΈμ€μ λ©ν° μ°λ λ
μ°λ λλ μ΄μ체μ μ μ€μΌμ€λ¬μ μν΄ λ 립μ μΌλ‘ κ΄λ¦¬λ μ μλ νλ‘κ·Έλλ°λ λͺ λ Ήμ΄μ κ°μ₯ μμ νλ¦μ΄λ€. νλμ νλ‘μΈμ€λ νλ μ΄μμ μ°λ λλ₯Ό κ°κ³ μλ€
- λ©ν° νλ‘μΈμ€ : νλμ μ΄μ체μ μμμ μ¬λ¬ νλ‘μΈμ€κ° μ€νλλ κ²
- λ©ν° μ°λ λ : νλμ νλ‘μΈμ€κ° μ¬λ¬ μμ μ μ¬λ¬ μ°λ λλ₯Ό μ¬μ©ν΄ λμ μ²λ¦¬νλ κ²
2. μ°λ λν
2 - 1. μ°λ λνμ΄λ
μ°λ λνμ νλ‘κ·Έλ¨μμ μ€νμ λμμ±μ λ¬μ±νκΈ° μν μννΈμ¨μ΄ λμμΈ ν¨ν΄μ΄λ€. μ°λ λλ₯Ό μ¬λ¬ κ° λ―Έλ¦¬ μμ±ν΄λκ³ νλ‘κ·Έλ¨μ΄ μ¬λ¬ μμ μ λμμ μ€νν μ μλλ‘ μ μ§κ΄λ¦¬νλ©° μ°λ λλ₯Ό ν΅ν μμ μ λ³λ ¬λ‘ μ€νν μ μλλ‘ ν λ,
μμ μ²λ¦¬μ μ¬μ©λλ μ°λ λλ₯Ό μ νλ κ°μλ§νΌ 미리 μ ν΄λκ³ μμ νμ μμ μ μ°λ λκ° λ§‘μμ μ²λ¦¬ν μ μλλ‘ νλ€
μ°λ λνμ λμ
1. μ΄κΈ°ν : μ°λ λνμ μ¬μ©νκΈ° μ μ΄κΈ°ννλ€. μ°λ λνμ ν¬κΈ°, μ΅λ μ°λ λ μ, μμ ν λ±μ 맀κ°λ³μλ₯Ό μ€μ νλ€
2. μμ μμ : μ°λ λνμ μμ μ μμ νκ³ μ²λ¦¬ν μ€λΉλ₯Ό νλ€. μμ μ μΌλ°μ μΌλ‘ μμ νμ μΆκ°λλ€
3. μμ μν : μ°λ λνμμ 미리 μμ±λ μ°λ λλ€μ΄ μμ νλ₯Ό λͺ¨λν°λ§νκ³ λκΈ° μ€μΈ μμ μ κ°μ Έμ μ²λ¦¬νλ€. μ°λ λν λ΄μ μ°λ λλ μΌλ°μ μΌλ‘ 무ν 루νλ₯Ό λλ©΄μ μμ μ κΈ°λ€λ¦¬κ³ μλ€
4. μμ μ²λ¦¬ : μ°λ λκ° μμ μ μ²λ¦¬νλ€. μμ νμμ FIFOλ‘ κ°μ Έμ¨λ€
5. μμ μλ£ λ° λ°ν : μμ κ²°κ³Όλ₯Ό λ°ννκ³ μ°λ λλ λ€μ λκΈ° μνλ‘ μ νλλ€. μ΄ν μ°λ λνμ΄ λμ΄μ μ¬μ©λμ§ μμ λκΉμ§ λ°λ³΅νλ€
6. μ’ λ£ : μ°λ λνμ λ μ΄μ μ¬μ©νμ§ μμ λ μ’ λ£νλ€. μ’ λ£ μ λͺ¨λ μμ μ΄ μλ£λμλμ§ νμΈνκ³ , νμμ λ°λΌ λ¨μ μμ μ λν΄ μ²λ¦¬νκ±°λ λ²λ¦΄ μ μλ€
2 - 2. μ°λ λνμ μ¬μ©νλ μ΄μ
1. νλ‘κ·Έλ¨ μ±λ₯ μ νλ₯Ό λ°©μ§νκΈ° μν΄
- λͺ¨λ μμ μμμ λ°λ₯Έ μ°λ λμ μμ±κ³Ό μκ±°λ₯Ό κ·Έλλ§λ€ νλ€λ©΄, νλ‘κ·Έλ¨μ λΆνκ° λ κ±Έλ¦¬κ² λμ΄ νΌν¬λ¨Όμ€κ° μ νλκΈ° λλ¬Έμ μ°λ λνμ μ¬μ©νλ€
- μ°λ λλ νλ‘μΈμ€μ λ©λͺ¨λ¦¬λ₯΄ μ¬μ©νκΈ° λλ¬Έμ, (Javaμ κ²½μ° JVMμ λ©λͺ¨λ¦¬)μ°λ λ μ체μ Registerμ Stackμ΄ μκ³ μμ κ° μ»¨ν μ€νΈ μ€μμΉμ΄ λ°μνκΈ° λλ¬Έμ μ°λ λ μμ±κ³Ό μκ±°μ λ°λ₯Έ λ©λͺ¨λ¦¬ ν λΉμ 무μν μ μλ€
2. λ€μμ μ¬μ©μ μμ²μ μ²λ¦¬νκΈ° μν΄
- λκ·λͺ¨ νλ‘μ νΈμμ, λ€μ μ¬μ©μμ μμ²μ λΉ λ₯΄κ² μ²λ¦¬νκ³ λμνκΈ° μν΄ μ°λ λνμ μ¬μ©νλ€. λ³λͺ© νμμ΄ λ°μνλ I/O, λ°μ΄ν°λ² μ΄μ€ μμ μμ μ£Όλ‘ μ¬μ©νλ€
- μ°λ λ μμ± μ μμ€ν μ€μΌμ€λ¬μμ μ°λ λμ μ°μ μμλ₯Ό λ§€λ² ν λΉν΄μ μμ±ν΄μΌ νλλ°, μ°λ λνμ μ¬μ©ν κ²½μ° μ°λ λλ μ²μμ μμ±λ μ°λ λλ₯Ό νμ©νκΈ° λλ¬Έμ μ°λ λνμ μν΄ μ°λ λμ λΌμ΄ν μ¬μ΄ν΄μ΄ κ΄λ¦¬λλ―λ‘ μ€μΌμ€λ¬λ₯Ό λ§€λ² μ΄μ©ν νμκ° μμ΄ ν¨μ¨μ μ΄λ€
2 - 3. μ°λ λνμ μ₯λ¨μ
μ₯μ
- μ°λ λλ₯Ό μμ±, μκ±°ν λ λΉμ©μ΄ λ€μ§ μλλ€
- μ°λ λκ° μμ±λ λ OSκ° λ©λͺ¨λ¦¬ 곡κ°μ ν보ν΄μ£Όκ³ λ©λͺ¨λ¦¬λ₯Ό μ°λ λμκ² ν λΉνλ€
- μ°λ λνμ 미리 λ§λ€μ΄λκΈ° λλ¬Έμ μ²μ μμ± λΉμ©μ΄ μμ§λ§, μ΄μ μ°λ λλ₯Ό μ¬μ¬μ©ν μ μμ΄ μμ€ν μμ μ¬μ©λμ μ€μΌ μ μκ³ , μμ μμ² μ μ°λ λκ° μ΄λ―Έ λκΈ°νκ³ μκΈ° λλ¬Έμ μμ μ€ν λλ μ΄κ° λ°μνμ§ μλλ€
λ¨μ
μ°λ λνμ μ°λ λλ₯Ό λ무 λ§μ΄ μμ±νκ³ μ¬μ©νμ§ μμΌλ©΄ λ©λͺ¨λ¦¬ λμκ° λ°μνλ€
-> Fork Join Thread Pool
2 - 4. λμμ±κ³Ό λ³λ ¬μ±
λμμ±
μ±κΈ μ½μ΄μμ λ©ν° μ°λ λλ₯Ό λμμν€λ λ°©μμΌλ‘ λ©ν° νμ€νΉμ μν΄ μ¬λ¬ μ°λ λκ° λ²κ°μκ°λ©° μ€ν, μμ μ μ²λ¦¬νλ κ²μ μλ―Ένλ€. λ³λ ¬μ μΌλ‘ μ€νλλ κ²"μ²λΌ" λ³΄μΌ λΏμ΄λ€
λ³λ ¬μ±
λ©ν° μ½μ΄μμ λ©ν° μ°λ λλ₯Ό λμμν€λ λ°©μμΌλ‘ ν κ° μ΄μμ μ°λ λλ₯Ό κ°κ³ μλ κ° μ½μ΄κ° λμμ μ€νλλ κ²μ λ§νλ€. λ°μ΄ν° λ³λ ¬μ±κ³Ό μμ λ³λ ¬μ±μΌλ‘ λλλ€
λ°μ΄ν° λ³λ ¬μ±
μ 체 λ°μ΄ν°λ₯Ό μͺΌκ° μλΈ λ°μ΄ν°λ‘ λ§λ λ€, μλΈ λ°μ΄ν°λ₯Ό λ³λ ¬ μ²λ¦¬ν΄ μμ μ λΉ λ₯΄κ² μν
~ μλ° 8 μ΄μμμ μ§μνλ λ³λ ¬ μ€νΈλ¦Ό
~ λ©ν° μ½μ΄μ μλ§νΌ λ°μ΄ν°λ₯Ό μͺΌκ° κ° λ°μ΄ν°λ₯Ό μ°λ λλ€μ΄ λ³λ ¬ μ²λ¦¬νλ€
μμ λ³λ ¬μ±
μλ‘ λ€λ₯Έ μμ μ λ³λ ¬ μ²λ¦¬νλ κ²μ΄λ€. μΉ μλ²μ κ²½μ° κ° λΈλΌμ°μ (ν΄λΌμ΄μΈνΈ)κ° μμ²ν λ΄μ©μ κ°λ³ μ°λ λμμ λ³λ ¬λ‘ μ²λ¦¬νκΈ° λλ¬Έμ μμ λ³λ ¬μ±μ κ°μ§λ€
'κ°λ°κ³΅λΆ > CSπ»' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
CS κ°μ 6. DBMSμ κΈ°λ₯κ³Ό μ’ λ₯ (1) | 2023.11.07 |
---|---|
CS κ°μ 5. DB ꡬ쑰μ μ ν (0) | 2023.10.25 |
CS κ°μ 3. νλ‘μΈμ€ μλͺ μ£ΌκΈ°μ νλ‘μΈμ€ λ©λͺ¨λ¦¬ (1) | 2023.10.03 |
CS κ°μ 2. CPUμ λ©λͺ¨λ¦¬ μ¬ν (0) | 2023.07.23 |
CS κ°μ 1. CPUμ λ©λͺ¨λ¦¬ (0) | 2023.07.19 |