λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

Programming/Etc.

λ©€ν‹°νƒœμŠ€ν‚Ή(Multi-tasking), λ©€ν‹°ν”„λ‘œμ„Έμ‹±(Multi-processing), λ©€ν‹°μŠ€λ ˆλ”©(Multi-threading)

β–‘ ν”„λ‘œκ·Έλž¨(Program): μ €μž₯μ†Œμ— μ‘΄μž¬ν•˜λŠ” μ½”λ“œμ˜ λ­‰μΉ˜λ‘œ μ‹€ν–‰μƒνƒœκ°€ μ•„λ‹Œ, μ‹€ν–‰ν•˜κΈ° 전에 μ €μž₯μ†Œμ— μ €μž₯된 μ½”λ“œμ΄λ‹€.

 

β–‘ ν”„λ‘œμ„ΈμŠ€(Process): μ €μž₯μ†Œμ— μ‘΄μž¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ΄ μ‹€ν–‰λ˜μ–΄ CPUκ°€ μ²˜λ¦¬ν•  수 있게 메인 λ©”λͺ¨λ¦¬μ— 올라온 μƒνƒœμ΄λ‹€.

 

β–‘ μŠ€λ ˆλ“œ(Thread): ν”„λ‘œμ„ΈμŠ€ μ•ˆμ— μžˆλŠ” μž‘μ€ μ‹€ν–‰λ‹¨μœ„λ₯Ό μ˜λ―Έμ΄λ‹€. μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜λŠ” 경우둜 예λ₯Ό λ“€μ–΄λ³΄μž. μ›Œλ“œμ—μ„œ κΈ€μžλ₯Ό μž…λ ₯ν•˜λŠ” λ™μ•ˆ μžλ™μœΌλ‘œ λ§žμΆ€λ²• 검사λ₯Ό μˆ˜ν–‰ 및 νŒŒμΌμ„ 주기적으둜 μ €μž₯ν•œλ‹€. 이 μž‘μ—…λ“€μ€ 각각의 μŠ€λ ˆλ“œμ— μ˜ν•΄μ„œ 이루어진닀. 즉, μ›Œλ“œλΌλŠ” 큰 ν”„λ‘œμ„ΈμŠ€ ν•˜λ‚˜μ— μ—¬λŸ¬ 개의 μŠ€λ ˆλ“œκ°€ λͺ¨μ—¬μžˆλŠ” 것이닀.

 

λ©€ν‹°νƒœμŠ€ν‚Ή(Multi-tasking)

 

β–· νƒœμŠ€ν¬(Task)λž€ μš΄μ˜μ²΄μ œμ—μ„œ μ²˜λ¦¬ν•˜λŠ” μž‘μ—… λ‹¨μœ„λ₯Ό μ˜λ―Έν•˜λŠ”λ°, κ·Έ μ—¬λŸ¬ μž‘μ—… λ‹¨μœ„κ°€ λΉ λ₯΄κ²Œ μ²˜λ¦¬λ˜μ–΄ λ™μ‹œμ— μ²˜λ¦¬λ˜λŠ” κ²ƒμ²˜λŸΌ λ³΄μ΄λŠ” 것을 μ˜λ―Έν•œλ‹€.

 

β–· 병렬 연산이 μ΄λ£¨μ–΄μ§€λŠ” κ²ƒμ²˜λŸΌ 보이게 ν•˜κΈ° μœ„ν•΄ μŠ€μΌ€μ€„λ§ 방식을 μ΄μš©ν•œλ‹€.

 

λ©€ν‹°ν”„λ‘œμ„Έμ‹±(Multi-processing)

 

β–· ν•˜λ‚˜μ˜ 컴퓨터에 μž₯착된 μ—¬λŸ¬κ°œμ˜ CPUλ‚˜ CPU μ†μ˜ λ©€ν‹°μ½”μ–΄λ₯Ό 톡해 ν•˜λ‚˜ μ΄μƒμ˜ ν”„λ‘œμ„ΈμŠ€λ“€μ„ λ™μ‹œμ— μ²˜λ¦¬ν•˜λŠ” 것을 μ˜λ―Έν•œλ‹€.

 

β–· 더 넓은 λ²”μœ„λ‘œ ν•΄μ„ν•˜λ©΄, ν•˜λ‚˜ λ˜λŠ” κ·Έ μ΄μƒμ˜ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ—¬λŸ¬ μž₯μΉ˜μ—μ„œ λ³‘λ ¬λ‘œ μ²˜λ¦¬ν•˜λŠ” 것을 μ˜λ―Έν•œλ‹€. 

 

λ©€ν‹°μŠ€λ ˆλ”©(Multi-threading)

 

β–· ν”„λ‘œμ„ΈμŠ€ λ‚΄μ—μ„œ μ—¬λŸ¬κ°œμ˜ μŠ€λ ˆλ“œλ₯Ό ν˜•μ„±ν•˜μ—¬ λͺ…령어듀을 μ²˜λ¦¬ν•˜λŠ” 것을 μ˜λ―Έν•œλ‹€.

 

β–· μ–΄λ–€ μŠ€λ ˆλ“œκ°€ λ¨Όμ € 싀행될지 μˆœμ„œλ₯Ό μ•Œ 수 μ—†λ‹€λŠ” 단점이 μžˆλ‹€.

 


Reference:

"[OS} λ©€ν‹°ν”„λ‘œκ·Έλž˜λ°, λ©€ν‹°ν”„λ‘œμ„Έμ‹±, λ©€ν‹°μŠ€λ ˆλ”©, λ©€ν‹°νƒœμŠ€ν‚Ήμ˜ κ°„λž΅ν•œ 차이와 μ„€λͺ…," Taewoo Lee, https://twpower.github.io/127-multi-processing-threading-programming.

https://donghoson.tistory.com/8.

'Programming > Etc.' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

컴파일러(Compiler)와 인터프리터(Interpreter)  (0) 2020.08.08