μννΈμ¨μ΄ μΈ‘λ©΄μμμ μ€λ λ(Thread)λ νλ‘μΈμ€ λ΄μμ μ€νλλ λ 립μ μΈ μ€ν νλ¦μ λνλ λλ€.
κ°κ°μ μ€λ λλ νλ‘μΈμ€ λ΄μμ 곡μ λ μμμ λν λ 립μ μΈ μ½λ μ€ν νλ¦μ κ°μ§λ©°, μ΄λ€μ μλ‘ λ€λ₯Έ μ€λ λ κ°μ λ°μ΄ν° λ° μμμ 곡μ ν μ μμ΅λλ€. μ΄λ λ©ν°μ€λ λ©(Multithreading)μ΄λΌκ³ λΆλ¦¬λ νλ‘κ·Έλλ° ν¨λ¬λ€μμ ν΅μ¬μ λλ€.
μ€λ λμ μ£Όμ ꡬμ±μμ
- νλ‘κ·Έλ¨ μΉ΄μ΄ν° (Program Counter)
κ° μ€λ λλ μ€ν μ€μΈ μ½λμ μμΉλ₯Ό λνλ΄λ νλ‘κ·Έλ¨ μΉ΄μ΄ν°λ₯Ό κ°μ§κ³ μμ΅λλ€. μ΄λ λ€μμ μ€νν λͺ λ Ήμ΄μ μ£Όμλ₯Ό κ°λ¦¬ν΅λλ€. - λ μ§μ€ν° (Registers)
μ€λ λλ λ μ§μ€ν° μΈνΈλ₯Ό κ°μ§κ³ μμ΅λλ€. λ μ§μ€ν°λ λ°μ΄ν°λ₯Ό μΌμμ μΌλ‘ μ μ₯νκ³ μ²λ¦¬νλ λ° μ¬μ©λλ©°, μ€λ λ κ° μ ν μ νμ¬ μνλ₯Ό μ μ₯νκ³ λ³΅μνλ λ°μ μ€μν μν μ ν©λλ€. - μ€ν (Stack)
κ° μ€λ λλ μ체 μ€νμ κ°μ§κ³ μμ΅λλ€. μ€νμ λ©μλ νΈμΆ λ° λ‘컬 λ³μμ μ μ₯μ μ¬μ©λλ©°, μ€λ λ κ°μ ν¨μ νΈμΆ λ° λ³΅κ·μ νμν μ 보λ₯Ό μ μ₯ν©λλ€. - μ€μΌμ€λ§ μ 보 (Scheduling Information)
μ΄μ체μ λ μ€λ λλ₯Ό κ΄λ¦¬νκΈ° μν΄ μ€μΌμ€λ§ μ 보λ₯Ό μ μ§ν©λλ€. μ΄ μ 보μλ μ€λ λμ μ°μ μμ, μν (λκΈ°, μ€ν, μ’ λ£ λ±), μ€μΌμ€λ§ μ μ± κ³Ό κ΄λ ¨λ μ 보 λ±μ΄ ν¬ν¨λ©λλ€. - μ€λ λ μλ³μ (Thread Identifier)
κ° μ€λ λλ κ³ μ ν μλ³μλ₯Ό κ°μ§κ³ μμ΅λλ€. μ΄ μλ³μλ₯Ό ν΅ν΄ μ΄μ체μ λ° νλ‘κ·Έλ¨μμ νΉμ μ€λ λλ₯Ό μλ³νκ³ μ μ΄ν μ μμ΅λλ€. - 곡μ μμ (Shared Resources)
λ©ν°μ€λ λ© νκ²½μμλ μ€λ λκ° μννΈμ¨μ΄ μμμ 곡μ ν μ μμ΅λλ€. μ΄λ μ£Όλ‘ λ°μ΄ν° ꡬ쑰, νμΌ, λ€νΈμν¬ μ°κ²° λ±κ³Ό κ°μ μμμ ν¬ν¨ν©λλ€. - μ°λ λ λ‘컬 μ μ₯μ (Thread-Local Storage, TLS)
μΌλΆ μ€λ λλ μμ λ§μ λ‘컬 μ μ₯μλ₯Ό κ°μ§ μ μμ΅λλ€. μ΄ μ μ₯μμλ μ€λ λλ³λ‘ κ³ μ ν λ°μ΄ν°λ₯Ό μ μ₯ν μ μμ΅λλ€. - μν (State)
μ€λ λλ μ€ν μ€μΈμ§, λκΈ° μ€μΈμ§, μ’ λ£λ μνμΈμ§ λ±μ λνλ΄λ μν μ 보λ₯Ό κ°μ§κ³ μμ΅λλ€.
*리λ μ€ μ΄μ체μ μμλ νλ‘μΈμ€μ μ€λ λλ₯Ό ꡬλΆνμ§ μκ³ μ¬μ©
λ©ν° νλ‘μΈμ€(Multiprocessing)μ λ©ν° μ€λ λ(Multithreading)
λ©ν° νλ‘μΈμ€(Multiprocessing)μ λ©ν° μ€λ λ(Multithreading)λ λ³λ ¬ λ° λμμ± νλ‘κ·Έλλ°μ μν λ κ°μ§ μ£Όμ λ°©μμ
λλ€. κ°κ°μ μ체μ μΈ νΉμ§κ³Ό μ₯λ¨μ μ κ°μ§κ³ μμ΅λλ€.
1) λ©ν° νλ‘μΈμ€ (Multiprocessing)
λ©ν° νλ‘μΈμ€λ μ¬λ¬ κ°μ λ
립μ μΈ νλ‘μΈμ€κ° μλ‘ λ€λ₯Έ λ©λͺ¨λ¦¬ 곡κ°μμ μ€νλλ κ²μ μλ―Έν©λλ€. κ° νλ‘μΈμ€λ μ΄μ체μ μ μν΄ λ
립μ μΌλ‘ κ΄λ¦¬λλ©°, κ°κ°μ΄ μ체 μ£Όμ 곡κ°μ κ°μ§κ³ μ€νλ©λλ€.
- μμ 곡μ λ° ν΅μ : μΌλ°μ μΌλ‘λ νλ‘μΈμ€κ°μ μ 보 곡μ λ₯Ό νμ§ μμ§λ§ μλ°ν λ°μ§λ©΄, λ©ν° νλ‘μΈμ€ κ°μλ λͺ μμ μΈ IPC(Inter-Process Communication) λ©μ»€λμ¦μ΄ μλλκΈ°λ ν©λ. μ΄λ νλ‘μΈμ€ κ°μ λ°μ΄ν° 곡μ μ ν΅μ μ μν λ©μ»€λμ¦μ λ§ν©λλ€.
- μμ μ±: νλμ νλ‘μΈμ€κ° μΆ©λνλλΌλ λ€λ₯Έ νλ‘μΈμ€μλ μν₯μ λ―ΈμΉμ§ μκΈ° λλ¬Έμ μμ μ±μ΄ λμ΅λλ€. νμ§λ§ νλ‘μΈμ€ κ° ν΅μ μ 볡μ‘μ±κ³Ό μ€λ²ν€λκ° μμ μ μμ΅λλ€.
- λ³λ ¬μ±: λ©ν° νλ‘μΈμ€λ μ¬λ¬ νλ‘μΈμμμ λ³λ ¬λ‘ μ€νλ μ μκΈ° λλ¬Έμ λ³λ ¬μ±μ ν보ν μ μμ΅λλ€.
- ꡬν λμ΄λ: νλ‘μΈμ€ κ°μ ν΅μ λ° λκΈ°νλ₯Ό κ΄λ¦¬ν΄μΌ νλ―λ‘ κ΅¬νμ΄ μλμ μΌλ‘ 볡μ‘ν μ μμ΅λλ€.
2) λ©ν° μ€λ λ (Multithreading)μ μ: λ©ν° μ€λ λλ νλμ νλ‘μΈμ€ λ΄μμ μ¬λ¬ κ°μ μ€λ λκ° κ³΅μ λ λ©λͺ¨λ¦¬ 곡κ°μμ λμνλ κ²μ μλ―Έν©λλ€. μ€λ λλ νλ‘μΈμ€μ μμμ 곡μ νλ©΄μ λ³λ ¬λ‘ μ€νλ μ μμ΅λλ€.
- μμ 곡μ λ° ν΅μ : μ€λ λλ κ°μ νλ‘μΈμ€ λ΄μμ μ€νλλ―λ‘ λ³λμ IPC λ©μ»€λμ¦μ΄ νμνμ§ μμ΅λλ€. κ·Έλ¬λ μ€λ λ κ°μ λμμ± λ¬Έμ μ λν μ κ²½μ¨μΌ ν©λλ€.
- μμ μ±: νλμ μ€λ λκ° μΆ©λνλ©΄ ν΄λΉ νλ‘μΈμ€ λ΄μ λ€λ₯Έ μ€λ λμλ μν₯μ λ―ΈμΉ μ μμ΅λλ€. μ€λ λ κ° λκΈ°νμ μ£Όμν΄μΌ ν©λλ€.
- λ³λ ¬μ±: λ©ν° μ€λ λλ μ¬λ¬ μ€λ λκ° λμμ μ€νλλ―λ‘ λ³λ ¬μ±μ ν보ν μ μμ΅λλ€.
- ꡬν λμ΄λ: μ€λ λ κ°μ λκΈ°ν λ° κ²½μ 쑰건 λ±μ κ΄λ¦¬ν΄μΌ νλ―λ‘ κ΅¬νμ΄ μΌλΆ λν΄ν μ μμ΅λλ€.
3) μ ν κΈ°μ€
λ©ν° νλ‘μΈμ€λ μμ μ±μ΄ λκ³ λ 립μ±μ΄ 보μ₯λμ§λ§, λ©λͺ¨λ¦¬ λ° μμ μλΉκ° ν¬κ³ νλ‘μΈμ€ κ° ν΅μ μ΄ λ³΅μ‘ν©λλ€. λ©ν° μ€λ λλ μμ ν¨μ¨μ μΌλ‘ μ¬μ©νλ©° νλ‘μΈμ€ κ° ν΅μ μ΄ λ¨μνμ§λ§, λκΈ°νμ κ΄λ ¨λ λ¬Έμ μ μ£Όμν΄μΌ ν©λλ€.
Thread: An independent execution flow within a process that can access shared resources, serving as a small unit of execution.
Multiprocessing: A programming paradigm where multiple independent processes run in parallel, each in its own memory space, providing high stability at the cost of increased resource consumption.
Multithreading: A programming paradigm where multiple threads within a single process run concurrently in shared memory space, offering resource efficiency but requiring careful synchronization between threads.
'Computer Science > Operating System' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
9 Process Synchronization (νλ‘μΈμ€ λκΈ°ν) (0) | 2023.12.31 |
---|---|
8 CPU Scheduling (0) | 2023.12.30 |
6 νλ‘μΈμ€ μνμ κ³μΈ΅ ꡬ쑰 (1) | 2023.12.28 |
5 User Space in Process (νλ‘μΈμ€ μ¬μ©μ μμ) (0) | 2023.12.23 |
4 Process Outline (+Kernel Space) (1) | 2023.12.23 |
λκΈ