개발 지식/CS 지식

πŸ‘©‍πŸ’» λ©€ν‹° νƒœμŠ€ν‚Ή & λ©€ν‹° ν”„λ‘œμ„Έμ‹± κ°œλ… ν•œλ°© 정리

인파_ 2023. 4. 6. 10:14

Multi-tasking

μ»΄ν“¨ν„°μ˜ 병행 처리

μš°λ¦¬κ°€ μŒμ•…을 λ“€μœΌλ©΄μ„œ, μ›Ήμ„œν•‘μ„ ν•˜κ³ , λ©”μ‹ μ €μ˜ λ©”μ‹œμ§€λ₯Ό 확인할 수 μžˆλŠ” μ΄μœ λŠ” 컴퓨터가 μžμ›μ„ 효율적으둜 μ‚¬μš©ν•˜λŠ” λ©€ν‹° νƒœμŠ€ν‚Ή(Multi Tasking) 기술 덕뢄이닀. λ©€ν‹° νƒœμŠ€ν‚Ήμ΄λž€ μ»΄ν“¨ν„°μ—μ„œ μ—¬λŸ¬ μž‘μ—…μ„ λ™μ‹œμ— μ‹€ν–‰ν•˜λŠ” λŠ₯λ ₯을 λ§ν•œλ‹€. 쒀더 μžμ„Ένžˆ λ§ν•˜μžλ©΄, OSλ₯Ό 톡해 CPUκ°€ μž‘μ—…ν•˜λŠ”λ° ν•„μš”ν•œ μžμ›μ„ ν”„λ‘œμ„ΈμŠ€ λ˜λŠ” μŠ€λ ˆλ“œκ°„μ— λ‚˜λˆ„λŠ” ν–‰μœ„λ₯Ό λ§ν•œλ‹€. 두 가지 이상 μž‘μ—…μ„ λ™μ‹œμ— μ²˜λ¦¬ν•  수 μžˆλŠ” μ΄μœ κ°€ μ΄λŸ¬ν•œ μžμ› λΆ„λ‹΄ 원리 λ•Œλ¬Έμ΄λ‹€.

μ§€κΈˆ λΆ€ν„° μ œν•œλœ μžμ›μ„ 가지고 μˆ˜μ‹­κ°€μ§€μ˜ ν”„λ‘œκ·Έλž¨μ„ λ™μ‹œμ— μ‹€ν–‰ν•  수 μžˆλŠ” 원리λ₯Ό νŒŒν—€μ³ 보자.

Multi-tasking


ν”„λ‘œμ„Έμ‹±μ˜ λ°œμ „ κ³Όμ •

 

단일 ν”„λ‘œμ„ΈμŠ€ (Single Process)

초창기 μ»΄ν“¨ν„°λŠ” 단일 ν”„λ‘œμ„ΈμŠ€ μ‹œμŠ€ν…œ μ΄μ—ˆλ‹€. ν•œλ²ˆμ— ν•˜λ‚˜μ˜ ν”„λ‘œκ·Έλž¨λ§Œμ΄ μ‹€ν–‰ν•  수 μžˆμ–΄μ„œ, 또 λ‹€λ₯Έ ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•˜κ³  μ‹Άλ‹€λ©΄ ν˜„μž¬ ν”„λ‘œκ·Έλž¨μ„ μ’…λ£Œν•΄μ•Ό ν–ˆλ‹€. κ±°κΈ°λ‹€ CPU μ‚¬μš©λ₯ μ΄ νš¨μœ¨μ μ΄μ§€ λͺ»ν–ˆλŠ”데, ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ 도쀑 I/O(μž…μΆœλ ₯) μž‘μ—…κ³Ό 같은 일이 μƒκΈ°κ²Œ 되면 CPUλŠ” ν”„λ‘œμ„ΈμŠ€λ₯Ό λ©ˆμΆ”κ³  κ·ΈλŒ€λ‘œ 놀아버리기 λ•Œλ¬Έμ΄λ‹€.

IO(input/output) μ΄λž€?
ν”νžˆ ν”„λ‘œκ·Έλž˜λ°μ—μ„œ IO 라고 ν•˜λ©΄ λŒ€ν‘œμ μœΌλ‘œ 3가지 λœ»μ„ λ‚΄ν¬ν•˜κ³  μžˆλ‹€.
- νŒŒμΌμ„ 읽고 μ“°λŠ” 것
- μ„œλ²„ λ„€νŠΈμ›Œν¬μ˜ μ–΄λ”˜κ°€μ™€ 데이터λ₯Ό μ£Όκ³  λ°›λŠ” 것
- 마우슀, ν‚€λ³΄λ“œμ™€ 같은 μž…μΆœλ ₯ μž₯μΉ˜μ™€ 데이터λ₯Ό μ£Όκ±°λ‚˜ λ°›λŠ” 것

Single Process
μž‘μ—… 도쀑 I/O μž‘μ—…μ„ μ‹œμž‘ν•˜κ²Œ 되면 끝날 λ•ŒκΉŒμ§€ κΈ°λ‹€λ €μ•Ό ν•œλ‹€


λ©€ν‹° ν”„λ‘œκ·Έλž˜λ° (Multi Programming)

μ΄λŸ¬ν•œ 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ μ—¬λŸ¬κ°œμ˜ ν”„λ‘œκ·Έλž¨μ„ λ©”λͺ¨λ¦¬μ— μ˜¬λ €λ†“κ³  ν•˜λ‚˜μ˜ CPUμ—μ„œ λ²ˆκ°ˆμ•„ κ°€λ©° λ™μ‹œμ— μ‹€ν–‰μ‹œν‚€λŠ” λ°©μ•ˆμ„ 첨가 ν•˜μ˜€λ‹€.

λ©€ν‹° ν”„λ‘œκ·Έλž˜λ°μ€ μ—¬λŸ¬κ°œμ˜ ν”„λ‘œκ·Έλž¨μ΄ λ™μ‹œμ— μ‹€ν–‰λœλ‹€λŠ” μ˜λ―Έλ‘œμ„œ, CPU μ‚¬μš©λ₯ μ„ κ·ΉλŒ€ν™” μ‹œν‚€λŠ”κ²Œ λͺ©μ μ„ λ‘μ—ˆλ‹€. 단일 ν”„λ‘œμ„ΈμŠ€μ˜ λ¬Έμ œμ μ΄μ—ˆλ˜ ν”„λ‘œμ„ΈμŠ€ #1 μž‘μ—… μ‹œμž‘ ν›„ I/O μž‘μ—…μ„ λ§Œλ‚˜κ²Œ 되면 CPUκ°€ λ…ΈλŠ”κ²Œ μ•„λ‹ˆλΌ ν”„λ‘œμ„ΈμŠ€ #2 μž‘μ—…μ„ μ‹œμž‘ν•˜κ²Œ λœλ‹€. λ‹€μ‹œ ν”„λ‘œμ„ΈμŠ€2 μž‘μ—… μ‹œμž‘ ν›„ I/O μž‘업을 λ§Œλ‚˜κ²Œ λ˜λ©΄ ν”„λ‘œμ„ΈμŠ€1 μž‘업을 μ‹œμž‘ν•˜κ²Œ λœλ‹€. 

Multi Programming

κ·ΈλŸ¬λ‚˜ μ–΄λŠ ν•œ ν”„λ‘œκ·Έλž¨μ΄ CPU μ‚¬μš© μ‹œκ°„μ΄ 길어지면 λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€λŠ” 계속 λŒ€κΈ°λ₯Ό ν•΄μ•Ό ν•œλ‹€λŠ” 문제점이 쑴재 ν•˜μ˜€λ‹€. μœ„μ˜ κ·Έλ¦Όμ—μ„œ P #1 μž‘μ—… μ‹œκ°„μ΄ μ—„μ²­ κΈΈμ–΄μ§ˆ 경우 P #2 λŠ” 싀행될 기회쑰차 λͺ» μ–»κ²Œ λœλ‹€.


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

λ©€ν‹° ν”„λ‘œκ·Έλž˜λ°μ˜ μ·¨μ§€λŠ” μ’‹μ•˜μ§€λ§Œ μ–΄λŠν•œ ν”„λ‘œμ„ΈμŠ€κ°€ λͺ¨λ‘ μ‹€ν–‰λ˜μ•Ό λ‹€μŒ ν”„λ‘œμ„ΈμŠ€κ°€ 싀행될 수 μžˆλŠ” ν•œκ³„μ μ΄ μžˆμ—ˆλ‹€. λ”°λΌμ„œ μ΄κ²ƒμ„ ν•΄κ²°ν•˜κΈ° μœ„ν•΄ ν”„λ‘œμ„ΈμŠ€λŠ” ν•œλ²ˆ CPUλ₯Ό μ‚¬μš©ν• λ•Œ μ•„μ£Ό 짧은 μ‹œκ°„(quantum)만 μ‹€ν–‰λ˜λ„λ‘ ν•˜μ—¬ 각 ν”„λ‘œκ·Έλž¨μ˜ μž‘μ—…μ„ μ•„μ£Ό μž‘μ€ λ‹¨μœ„λ‘œ λ²ˆκ°ˆμ•„ κ°€λ©° μ²˜λ¦¬ν•˜λ©΄μ„œ, μž‘μ—… 응닡 μ‹œκ°„μ„ μ΅œμ†Œν™” μ‹œν‚€λŠ” λ©€ν‹° νƒœμŠ€ν‚Ή 원리가 νƒ„μƒν•˜μ˜€λ‹€. 

μ΄λ•Œ 잘게 λ‚˜λ‰˜μ–΄μ§„ ν”„λ‘œμ„ΈμŠ€ 끼리 μž‘μ—…μ΄ μŠ€μœ„μΉ­ λ˜λŠ” 것을 λ¬Έλ§₯ κ΅ν™˜(Context Switching) μ΄λΌκ³  ν•œλ‹€.

Multi Tasking
ν”„λ‘œμ„ΈμŠ€λ₯Ό μ•„μ£Ό 잘게 μͺΌκ°œ λ²ˆκ°ˆμ•„κ°€λ©° 처리

μ΄λ ‡κ²Œ ν”„λ‘œμ„ΈμŠ€ μž‘μ—…μ΄ 잘게 λ‚˜λ‰˜μ–΄μ Έ κ΅λŒ€λ‘œ μ‹€ν–‰ν•¨μœΌλ‘œμ¨ μ–»κ²Œ 되면 이점은 λ‹€μŒκ³Ό κ°™λ‹€.

 

1. λΉ λ₯Έ λ°˜μ‘μ„± 제곡

첫째, CPUκ°€ 잘게 λ‚˜λˆˆ 각 μž‘μ—…λ“€μ„ λΉ λ₯΄κ²Œ λ²ˆκ°ˆμ•„ κ°€λ©° μˆ˜ν–‰ν•¨μœΌλ‘œμ„œ, μ—¬λŸ¬ μž‘μ—…μ„ λ™μ‹œμ— μ²˜λ¦¬ν•˜λŠ” κ²ƒμ²˜λŸΌ 보이게 λ§Œλ“€μ–΄, μ‚¬μš©μžμ—κ²Œ 더 λΉ λ₯Έ λ°˜μ‘μ„±μ„ μ œκ³΅ν•˜μ—¬ μ •λ§λ‘œ λ™μ‹œμ— ν”„λ‘œκ·Έλž¨μ΄ μ‹€ν–‰λ˜λŠ” κ²ƒμ²˜λŸΌ 느껴 차이λ₯Ό λͺ»λŠλΌκ²Œ λœλ‹€.

 

2. 문제 ν•΄κ²° μš©μ΄μ„±

λ‘˜μ§Έ, μž‘μ—…μ„ λ‚˜λˆ„μ—ˆκΈ° λ•Œλ¬Έμ— 예기치 μ•Šμ€ λ¬Έμ œκ°€ λ°œμƒν–ˆμ„ λ•Œ, ν•΄λ‹Ή μž‘μ—…λ§Œ 쀑지할 수 있게 λœλ‹€. μ΄λŸ¬ν•œ λ°©μ‹μœΌλ‘œ, 전체 μ‹œμŠ€ν…œμ΄ λ©ˆμΆ”λŠ” 것을 방지할 μˆ˜λ„ μžˆλ‹€.

 

3. λ©€ν‹° ν”„λ‘œμ„Έμ„œμ˜ 효율적인 ν™œμš©

μ…‹μ§Έ, λ©€ν‹° ν”„λ‘œμ„Έμ‹± λ˜λŠ” λ©€ν‹° μ½”μ–΄λ₯Ό μ‚¬μš©ν•˜λŠ” μ‹œμŠ€ν…œμ—μ„œ μ—¬λŸ¬ 개의 ν”„λ‘œμ„Έμ„œ(CPU)κ°€ λ™μ‹œμ— μž‘μ—…μ„ 효율적으둜 μ²˜λ¦¬ν•  수 μžˆλ‹€.

 

4. ν”„λ‘œμ„ΈμŠ€ μš°μ„ μˆœμœ„ 쑰절

λ„·μ§Έ, ν”„λ‘œμ„ΈμŠ€ κ°„μ˜ μš°μ„ μˆœμœ„λ₯Ό 쑰절이 μˆ˜μ›”ν•΄μ§„λ‹€. 예λ₯Όλ“€μ–΄ μš°μ„ μˆœμœ„κ°€ 높은 μž‘μ—…μ€ 더 자주 μ‹€ν–‰λ˜μ–΄, 더 λΉ λ₯Έ 처리λ₯Ό ν•  μˆ˜λ„ μžˆλŠ” μ…ˆμ΄λ‹€.

 

λ”°λΌμ„œ, μž‘μ—…μ„ μž‘κ²Œ λ‚˜λˆ„μ–΄ μ²˜λ¦¬ν•˜λŠ” μ›λ¦¬λŠ” λΉ λ₯Έ λ°˜μ‘μ„±μ„ μ œκ³΅ν•˜λŠ” 핡심 뢀뢄인 μ…ˆμ΄λ‹€. κ·ΈλŸ¬λ‚˜ 응닡성을 ν–₯μƒν•˜κΈ° μœ„ν•΄μ„œ λ¬Έλ§₯ κ΅ν™˜(Context Switching)이 자주 μΌμ–΄λ‚˜κ²Œ 될 경우 μ˜€νžˆλ € μ„±λŠ₯ μ΄μŠˆκ°€ λ°œμƒν•  수 μžˆλ‹€λŠ” 문제점이 μžˆλ‹€. μ™œλƒν•˜λ©΄ ν”„λ‘œμ„ΈμŠ€ 끼리 μŠ€μœ„μΉ­ ν•˜λŠ” μž‘μ—…μ€ μš°λ¦¬κ°€ μƒκ°ν•˜λŠ” 것 보닀 κ½€λ‚˜ 무거운 μž‘μ—…μ— ν•΄λ‹Ήν•˜κΈ° λ•Œλ¬Έμ΄λ‹€.


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

μ˜›λ‚  μ»΄ν“¨ν„°μ˜ CPUλŠ” μ‹±κΈ€ μ½”μ–΄(core) μ˜€λ‹€. 이 μ‹±κΈ€ μ½”μ–΄μ—μ„œ μ—¬λŸ¬κ°œμ˜ μž‘μ—…μ„ λ™μ‹œμ— μ²˜λ¦¬ν•˜κΈ° μœ„ν•΄ λ©€ν‹° νƒœμŠ€ν‚Ήκ³Ό 같은 κΈ°μˆ μ„ μ°¨μš©ν•΄ μž‘μ—…μ„ μ²˜λ¦¬ν•œ 것이닀. κ·ΈλŸ¬λ‚˜ μ‹œλŒ€κ°€ λ°œμ „ν•¨μ— λ™μ‹œμ— CPU μ½”μ–΄μ˜ λ°œμ—΄ ν•œκ³„λ‘œ 인해 μ½”μ–΄ κΉ‘ ν΄λŸ­μ„ 높이지 μ•Šκ³  μ½”μ–΄λ₯Ό λŠ˜λ¦¬λŠ” λ°©ν–₯으둜 λ“€μ–Ό μ½”μ–΄, μΏΌλ“œ μ½”μ–΄ CPU μ œν’ˆμ„ μΆœμ‹œν•˜κΈ° μ‹œμž‘ν–ˆλ‹€. 

Multi Processing

컴퓨터λ₯Ό λ§žμΆœλ•Œ ν•œλ²ˆ 쯀은 '4μ½”μ–΄ 8μŠ€λ ˆλ“œ'와 같은 CPU μŠ€νŽ™μ— λŒ€ν•΄ 듀어본적이 μžˆμ„ν…λ° λ°”λ‘œ 이것을 λ§ν•˜λŠ” 것이닀. 

Multi Processing

즉, ν•œ CPU에 λ‘κ°œ μ΄μƒμ˜ μ½”μ–΄λ₯Ό λ‘¬μ„œ 전체적인 μ„±λŠ₯을 ν–₯μƒμ‹œν‚€λŠ” λ°©ν–₯으둜 μ „ν™˜μ„ ν•œ 것이닀. 그리고 μ—¬λŸ¬ 개의 CPU μ½”μ–΄κ°€ λ™μ‹œμ— μž‘μ—…μ„ μ²˜λ¦¬ν•˜λŠ” 것을 λ©€ν‹° ν”„λ‘œμ„Έμ‹± (Multi Processing) 이라 ν•œλ‹€. μ΄λŸ¬ν•œ λ©€ν‹° ν”„λ‘œμ„Έμ‹±μ„ 아킀텍쳐 ꡬ쑰에 따라 μ’…λ₯˜λ„ μ—¬λŸ¬κ°€μ§€ 이닀.

Multi ProcessingMulti Processing
λ©€ν‹° CPU μ½”μ–΄κ°€ ν•˜λ‚˜μ˜ JOB에 λŒ€ν•΄ λ³‘λ ¬λ‘œ μ²˜λ¦¬ν•˜κ±°λ‚˜ μ—¬λŸ¬ JOB에 λŒ€ν•΄ λ³‘λ ¬λ‘œ 처리

 

λ©€ν‹° ν”„λ‘œμ„Έμ‹± vs λ©€ν‹° νƒœμŠ€ν‚Ή

λ©€ν‹° ν”„λ‘œμ„Έμ‹± (Multi Processing)μ΄λž€, μ—¬λŸ¬ 개의 CPU μ½”μ–΄κ°€ λ™μ‹œμ— μž‘μ—…μ„ μ²˜λ¦¬ν•˜λŠ” 것을 μ˜λ―Έν•œλ‹€. μ—¬λŸ¬ 개의 ν”„λ‘œμ„Έμ„œκ°€ λ³‘λ ¬λ‘œ μž‘μ—…μ„ μˆ˜ν–‰ν•˜λ―€λ‘œ, 단일 ν”„λ‘œμ„ΈμŠ€λ³΄λ‹€ λΉ λ₯Έ 처리 속도λ₯Ό 보μž₯ν•  수 μžˆλ‹€.
λ©€ν‹° νƒœμŠ€ν‚Ή (Multi Tasking)은 단일 CPUμ—μ„œ μ—¬λŸ¬ 개의 μž‘μ—…μ„ λ™μ‹œμ— μ²˜λ¦¬ν•˜λŠ” 것을 μ˜λ―Έν•œλ‹€. ν•˜λ‚˜μ˜ CPUκ°€ μ—¬λŸ¬ μž‘μ—…λ“€μ„ λ²ˆκ°ˆμ•„κ°€λ©° μ²˜λ¦¬ν•˜λ―€λ‘œ, μ—¬λŸ¬ 개의 μž‘μ—…μ„ λ™μ‹œμ— μˆ˜ν–‰ν•˜λŠ” κ²ƒμ²˜λŸΌ 보이게 λœλ‹€. 
λ”°λΌμ„œ, λ‘˜μ€ μ—¬λŸ¬ μž‘μ—…μ— λŒ€ν•΄μ„œ λ™μ‹œμ— μ²˜λ¦¬ν•˜λŠ” λͺ©μ μ€ λΉ„μŠ·ν•˜μ§€λ§Œ, λ©€ν‹° νƒœμŠ€ν‚Ήμ€ ν•˜λ‚˜μ˜ CPUμ—μ„œ μ—¬λŸ¬ 개의 μž‘μ—…μ„ μ²˜λ¦¬ν•˜λŠ” 반면, λ©€ν‹° ν”„λ‘œμ„Έμ‹±μ€ μ—¬λŸ¬ 개의 CPUκ°€ 각각의 μž‘μ—…μ„ μ²˜λ¦¬ν•˜λŠ” κ²ƒμ΄λΌλŠ” 차이점이 μžˆλ‹€. 

Multi TaskingMulti Processing
λ©€ν‹° νƒœμŠ€ν‚Ήμ΄ 두 νŒ”λ‘œ μ—¬λŸ¬ μž‘μ—…μ„ λ²ˆκ°ˆμ•„ λΉ λ₯΄κ²Œ μ²˜λ¦¬ν•˜λŠ” 것이라면, λ©€ν‹° ν”„λ‘œμ„Έμ‹±μ€ νŒ”μ΄ 6개인 것이닀

 

λ©€ν‹° ν”„λ‘œμ„Έμ‹± + λ©€ν‹° νƒœμŠ€ν‚Ή μ‘°ν•©

λ‘˜μ€ μ„œλ‘œ λ‹€λ₯Έ λ™μ‹œ 처리 방법이기 λ•Œλ¬Έμ— 이 λ‘˜μ„ μ‘°ν•©ν•˜μ—¬ λ”μš± 더 μ‹œλ„ˆμ§€ 효과λ₯Ό λˆ„λ¦΄ 수 μžˆλ‹€.

Multi Tasking
λ©€ν‹° νƒœμŠ€ν‚Ή
Multi Processing
λ©€ν‹° ν”„λ‘œμ„Έμ‹±
Multi-Tasking-Processing
μ—¬λŸ¬ μž‘μ—…μ— λŒ€ν•œ λ©€ν‹° ν”„λ‘œμ„Έμ‹± + λ©€ν‹° νƒœμŠ€ν‚Ή
Multi-Tasking-Processing
ν•˜λ‚˜μ˜ μž‘μ—…μ— λŒ€ν•œ λ©€ν‹° ν”„λ‘œμ„Έμ‹± + λ©€ν‹° νƒœμŠ€ν‚Ή

 

λ©€ν‹° ν”„λ‘œμ„Έμ‹± vs λ©€ν‹° ν”„λ‘œμ„ΈμŠ€

multi processing κ³Ό multi process λŠ” μ˜μ–΄λŠ” κ·Έμ € 동λͺ…사(-ing) 차이 μ΄μ§€λ§Œ, 이 λ‘˜μ΄ μ˜λ―Έν•˜λŠ” λ°”λŠ” μ „ν˜€ λ‹€λ₯΄λ‹€. μ•„λ§ˆ λ§Žμ€ μ‚¬λžŒλ“€μ΄ 이 λ‘˜μ„ ν–‡κΉ”λ € ν•  것이닀.

λ©€ν‹° ν”„λ‘œμ„Έμ‹±μ€ ν•˜λ‚˜μ˜ μ‹œμŠ€ν…œμ—μ„œ μ—¬λŸ¬ 개의 ν”„λ‘œμ„Έμ„œ(CPU)λ₯Ό μ‚¬μš©ν•˜μ—¬ μž‘μ—…μ„ μ²˜λ¦¬ν•˜λŠ” 것을 μ˜λ―Έν•œλ‹€. 즉, ν”„λ‘œμ„Έμ„œ(CPU)κ°€ 멀티인 것이닀. μ—¬λŸ¬ 개의 ν”„λ‘œμ„Έμ„œκ°€ λ™μ‹œμ— μž‘μ—…μ„ μ²˜λ¦¬ν•˜λ―€λ‘œ, 전체적인 처리 속도가 λΉ¨λΌμ§€λŠ” νš¨κ³Όμ— λͺ©μ μ„ λ‘”λ‹€.
반면, λ©€ν‹° ν”„λ‘œμ„ΈμŠ€λŠ” ν•˜λ‚˜μ˜ μ‘μš© ν”„λ‘œκ·Έλž¨μ„ μ—¬λŸ¬ 개의 ν”„λ‘œμ„ΈμŠ€λ‘œ λΆ„λ¦¬ν•˜μ—¬ μ‹€ν–‰ν•˜λŠ” 것을 μ˜λ―Έν•˜λŠ” 것이닀. 즉, ν”„λ‘œμ„ΈμŠ€(process)κ°€ 멀티인 것이닀. μ—¬λŸ¬ 개의 ν”„λ‘œμ„ΈμŠ€κ°€ λ™μ‹œμ— μ‹€ν–‰λ˜λ―€λ‘œ, ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€κ°€ 죽어도 ν”„λ‘œκ·Έλž¨μ΄ μ£½μ§€μ•Šμ•„ ν”„λ‘œκ·Έλž¨ μ „μ²΄μ˜ μ•ˆμ •μ„±μ΄ λ†’μ•„μ§€λŠ” 것에 λͺ©μ μ„ λ‘”λ‹€. 보톡 λ©€ν‹° ν”„λ‘œμ„ΈμŠ€λŠ” λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€μ™€ 그의 μ—¬λŸ¬ μžμ‹ ν”„λ‘œμ„ΈμŠ€λ‘œ 이루어져 μžˆλ‹€.

λ©€ν‹° ν”„λ‘œμ„ΈμŠ€
λΈŒλΌμš°μ €μ˜ λ©€ν‹° ν”„λ‘œμ„ΈμŠ€


# 참고자료

https://youtu.be/QmtYKZC0lMU

https://velog.io/@ashappyasikonw/Single-Process-System-Multi-programming-Multitasking-%EC%9D%B4%EB%9E%80

https://jenkov.com/tutorials/java-concurrency/concurrency-vs-parallelism.html

https://donghoson.tistory.com/15