ν°μ€ν 리 λ·°
νλ‘μΈμ€λ?
νλ‘μΈμ€(process)λ μ΄μ체μ λ‘λΆν° μμ€ν μμμ ν λΉλ°λ μμ μ λ¨μλ‘ μ€νμ€μ μλ νλ‘κ·Έλ¨μ μλ―Έν©λλ€.
- λ©λͺ¨λ¦¬μ μ¬λΌμ μ€νλκ³ μλ νλ‘κ·Έλ¨μ λ 립μ μΈ μΈμ€ν΄μ€
- κΈ°λ³Έμ μΌλ‘ νλ‘μΈμ€λ§λ€ μ΅μ 1κ°μ μ€λ λλ₯Ό μμ (λ©μΈ μ€λ λ ν¬ν¨)
νλ‘μΈμ€κ° ν λΉλ°λ μμ€ν μμ
- CPU μκ°
- μ΄μλκΈ° μν΄ νμν μ£Όμ 곡κ°
- Code, Data, Stack, Heapμ κ΅¬μ‘°λ‘ λμ΄ μλ λ 립λ λ©λͺ¨λ¦¬ μμ
νλ‘μΈμ€μ λ©λͺ¨λ¦¬ ꡬ쑰
- Code μμ : νλ‘κ·Έλ¨μ μ€νμν€λ μ€ν νμΌ λ΄μ λͺ λ Ήμ΄λ€μ΄ μ¬λΌκ°
- Data μμ : μ μ λ³μ, static λ³μμ ν λΉ
- Heap μμ: λμ ν λΉμ μν λ©λͺ¨λ¦¬ μμ
- Stack μμ : μ§μ λ³μ, ν¨μ νΈμΆμ μ λ¬λλ μΈμ(νλΌλ―Έν°)λ₯Ό μν λ©λͺ¨λ¦¬ μμ
Codeμ Data μμμ μ μΈν λ κ·Έ ν¬κΈ°κ° κ²°μ λλ μ μ μμμ΄μ§λ§, Stackκ³Ό Heapμμμ νλ‘μΈμ€κ° μ€νλλ λμ ν¬κΈ°κ° λμ΄λ¬λ€ μ€μ΄λ€κΈ°λ νλ λμ μμμ λλ€.
λ©ν° νλ‘μΈμ€
λ©ν° νλ‘μΈμ€λ νλμ μμ© νλ‘κ·Έλ¨μ μ¬λ¬ κ°μ νλ‘μΈμ€λ‘ ꡬμ±νμ¬ κ° νλ‘μΈμ€κ° νλμ μμ (νμ€ν¬)λ₯Ό μ²λ¦¬νλλ‘ νλ κ²μ λλ€.
- μ¬λ¬ κ°μ μμ νλ‘μΈμ€ μ€ νλμ λ¬Έμ κ° λ°μνλ©΄ κ·Έ μμ νλ‘μΈμ€λ§ μ£½λ κ² μ΄μμΌλ‘ λ€λ₯Έ μν₯μ΄ νμ°λμ§ μμ
- *Context Switchingμμμ μ€λ²ν€λκ° λ°μν μ μμ
*Context Switching(λ¬Έλ§₯ κ΅ν)μ λν μμΈν λ΄μ©μ μλμ ν¬μ€ν μ μ°Έκ³ νμΈμ.
μ€λ λλ?
μ€λ λλ νλ‘μΈμ€ μμμ μ€νλλ μ¬λ¬ νλ¦ λ¨μλ₯Ό μλ―Έν©λλ€.
- νλ‘μΈμ€κ° ν λΉλ°μ μμμ μ΄μ©νλ μ€νμ λ¨μ
- νλμ νλ‘μΈμ€λ μ¬λ¬κ°μ μ€λ λλ‘ κ΅¬μ±μ΄ κ°λ₯
- νλ‘μΈμ€ λ΄μμ Stackλ§ λ°λ‘ ν λΉλ°κ³ , Code, Data, Heap λ©λͺ¨λ¦¬ μμμ λ€λ₯Έ μ€λ λμ 곡μ
λ©ν° μ€λ λ
νλμ μμ©νλ‘κ·Έλ¨μ μ¬λ¬ κ°μ μ€λ λλ‘ κ΅¬μ±νκ³ κ° μ€λ λλ‘ νμ¬κΈ νλμ μμ μ μ²λ¦¬νλλ‘ νλ κ²μ λλ€.
- μμ€ν μμ μλͺ¨ κ°μ, μμ€ν μ²λ¦¬λ μ¦κ°, κ°λ¨ν ν΅μ λ°©λ²μΌλ‘ μΈν νλ‘κ·Έλ¨ μλ΅ μκ° λ¨μΆ
- μ£Όμ κΉμ μ€κ³κ° νμνλ©° λλ²κΉ μ΄ κΉλ€λ‘μ, λκΈ°ν λ¬Έμ (μμ 곡μ λ¬Έμ )
- νλμ μ€λ λμ λ¬Έμ κ° λ°μνλ©΄ μ 체 νλ‘μΈμ€κ° μν₯μ λ°μ
νλ‘μΈμ€ VS μ€λ λ
νλ‘μΈμ€λ μ€ν μ€μΈ νλ‘κ·Έλ¨μ λ§νλ©°, μλ²½ν λ 립μ μ΄κΈ° λλ¬Έμ λ©λͺ¨λ¦¬ μμ(Code, Date, Heap, Stack)μ λ€λ₯Έ νλ‘μΈμ€μ 곡μ νμ§ μμ΅λλ€.
μ€λ λλ νλ‘μΈμ€ λ΄μ μ‘΄μ¬νλ©° νλ‘μΈμ€κ° ν λΉλ°μ μμμ μ΄μ©νμ¬ μ€νλ©λλ€. μ€λ λλ νλ‘μΈμ€ λ΄μμ Stackλ§ λ°λ‘ ν λΉλ°κ³ , κ·Έ μ΄μΈμ λ©λͺ¨λ¦¬ μμμ 곡μ νκΈ° λλ¬Έμ λ€λ₯Έ μ€λ λμ μ€ν κ²°κ³Όλ₯Ό μ¦μ νμΈν μ μμ΅λλ€.
λ©ν° νλ‘μΈμ€ VS λ©ν° μ€λ λ
λ©ν° νλ‘μΈμ€λ νλμ νλ‘μΈμ€κ° μ£½μ΄λ λ€λ₯Έ νλ‘μΈμ€μ μν₯μ λΌμΉμ§ μκ³ κ³μ μ€νλλ€λ μ₯μ μ΄ μμ§λ§ λ©ν°μ€λ λλ³΄λ€ λ§μ λ©λͺ¨λ¦¬ 곡κ°κ³Ό CPU μκ°μ μ°¨μ§νλ€λ λ¨μ μ΄ μμ΅λλ€.
λ©ν° μ€ν λλ λ©ν° νλ‘μΈμ€λ³΄λ€ μ μ λ©λͺ¨λ¦¬ 곡κ°μ μ°¨μ§νκ³ λ¬Έλ§₯ μ νμ΄ λΉ λ₯΄λ€λ μ₯μ μ΄ μμ§λ§ νλμ μ€λ λμ λ¬Έμ κ° μκΈ°λ©΄ μ 체 μ€λ λκ° μν₯μ λ°μΌλ©° λκΈ°ν λ¬Έμ λ μλ€λ λ¨μ μ΄ μμ΅λλ€.
[μ°Έκ³ ]
https://gmlwjd9405.github.io/2018/09/14/process-vs-thread.html
https://blockdmask.tistory.com/22
'CS > Operating System' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μ΄μ체μ ] λκΈ°μ λΉλκΈ°, Blockingκ³Ό Non-Blocking (0) | 2022.10.19 |
---|---|
[μ΄μ체μ ] Unixμ Linuxλ? + (Shell Scriptλ?) (1) | 2022.10.18 |
[μ΄μ체μ ] λ¬Έλ§₯ κ΅ν(Context Switching)μ΄λ? (0) | 2022.07.23 |
[μ΄μ체μ ] νμ΄μ§κ³Ό μΈκ·Έλ¨Όν μ΄μ (0) | 2022.07.20 |
[μ΄μ체μ ] κ°μ λ©λͺ¨λ¦¬λ? (VMμ΄λ?) (0) | 2022.07.19 |
- Total
- Today
- Yesterday
- νλ‘κ·Έλλ¨Έμ€
- http
- λͺ¨λ μλ°μ€ν¬λ¦½νΈ deep dive
- λ μ컬 νκ²½
- TDD
- 2019 μΉ΄μΉ΄μ€ κ°λ°μ κ²¨μΈ μΈν΄
- κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°
- JavaScript
- μκ³ λ¦¬μ¦
- μ μ λ³μ
- λ€νΈμν¬
- λ°±μ€
- μλ°μ€ν¬λ¦½νΈ
- λ€μ΄λλ―Ή νλ‘κ·Έλλ°
- μλ°
- μ΄λΆνμ
- μ΄μ체μ
- λ°±μ€ node.js
- νλ‘νΌν°
- λμμΈ ν¨ν΄
- μ½λ©ν μ€νΈ
- ν¨μν νλ‘κ·Έλλ°
- map
- ν¬ν¬μΈν°
- git
- fp
- Baekjoon
- λ°±μ€ javascript
- μΉ΄μΉ΄μ€ μΈν΄
- νλ‘ν μ½
μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |