728x90

πŸ“–μŠ€λ ˆλ“œλž€

  • ν”„λ‘œμ„ΈμŠ€κ°€ 할당받은 μžμ›μ„ μ΄μš©ν•˜λŠ” μ‹€ν–‰ νλ¦„μ˜ λ‹¨μœ„μ΄λ‹€.
  • 각 μŠ€λ ˆλ“œ(Thread)λŠ” Thread ID, ν”„λ‘œκ·Έλž¨ μΉ΄μš΄ν„°,λ ˆμ§€μŠ€ν„° μ§‘ν•©, μŠ€νƒμœΌλ‘œ κ΅¬μ„±λ˜μ–΄ μžˆλ‹€.
  • 같은 ν”„λ‘œμ„ΈμŠ€μ— μ†ν•˜λŠ” μŠ€λ ˆλ“œλŠ” μ„œλ‘œ μ½”λ“œ, 데이터 μ„Ήμ…˜, Heap, μ—΄λ¦°νŒŒμΌμ΄λ‚˜ μ‹ ν˜Έμ™€ 같은 운영체제 μžμ›λ“€μ„ κ³΅μœ ν•œλ‹€.

https://m.blog.naver.com/three_letter/220333796848

 

πŸ“–μŠ€λ ˆλ“œκ°€ ν•„μš”ν•œ 이유

  • μ›Ήμ„œλ²„λŠ” μˆ˜λ§Žμ€ ν΄λΌμ΄μ–ΈνŠΈλ‘œλΆ€ν„° μš”μ²­μ„ λ°›λŠ”λ‹€.λ§Œμ•½ 단일 ν”„λ‘œμ„ΈμŠ€λ‘œ μž‘λ™ν•œλ‹€λ©΄ ,μžμ‹ μ˜ 단일 ν”„λ‘œμ„ΈμŠ€λ‘œ ν•œλ²ˆμ— ν•˜λ‚˜μ˜ ν΄λΌμ΄μ–ΈνŠΈλ§Œμ„ μ„œλΉ„μŠ€ ν•  수 μžˆκ²Œλ˜μ–΄ μ˜€λž«λ™μ•ˆ κΈ°λ‹€λ €μ•Όν•œλ‹€.

 

 

πŸ“–λ©€ν‹°νƒœμŠ€ν‚Ήκ³Ό λ©€ν‹°μŠ€λ ˆλ“œ

  πŸ‘‰ λ©€ν‹° νƒœμŠ€ν‚Ή

  • λ©€ν‹°νƒœμŠ€ν‚Ήμ€ ν•˜λ‚˜μ˜ 운영체제 μ–Έμ—μ„œ μ—¬λŸ¬ ν”„λ‘œμ„ΈμŠ€κ°€ μ‹€ν–‰λ˜λŠ”κ²ƒμ„ μ˜λ―Έν•œλ‹€.
  • λ©€ν‹°νƒœμŠ€ν‚Ήμ€ μ—¬λŸ¬ ν”„λ‘œμ„ΈμŠ€κ°€ λ™μ‹œμ— μ‹€ν–‰λ˜λŠ” κ²ƒμ²˜λŸΌ λ³΄μ΄μ§€λ§Œ μžμ„Έν•œ 원리λ₯Ό μ•Œμ•„λ³΄λ©΄ κ·Έλ ‡μ§€ μ•Šλ‹€.

   πŸ‘‰λ©€ν‹°μŠ€λ ˆλ“œ

  • λŒ€λΆ€λΆ„μ˜ ν”„λ‘œκ·Έλž¨μ€ ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€μ•ˆμ— μ—¬λŸ¬κ°œμ˜ μŠ€λ ˆλ“œλ‘œ κ΅¬μ„±ν•΄μ„œ μ²˜λ¦¬ν•˜λŠ” 방식을 μ‚¬μš©ν•œλ‹€.이λ₯Ό λ©€ν‹°μŠ€λ ˆλ”©μ΄λΌ ν•œλ‹€.
  • μžμ›μ„ κ³΅μœ ν•΄μ„œ 효과적이고, 톡신간 λΉ„μš©μ΄ 적닀.

 

 

πŸ“–λ©€ν‹°μŠ€λ ˆλ“œ μž₯단점

πŸ€¨λ©€ν‹°μŠ€λ ˆλ“œ μž₯점

  • μ‹œμŠ€ν…œ μžμ› μ†Œλͺ¨ κ°μ†Œ (μžμ›μ˜ νš¨μœ¨μ„± μ¦λŒ€) :ν”„λ‘œμ„ΈμŠ€λ₯Ό μƒμ„±ν•˜μ—¬ μžμ›μ„ ν• λ‹Ήν•˜λŠ” μ‹œμŠ€ν…œ 콜이 쀄어듀어 μžμ›μ„ 효율적으둜 관리 ν•  수 μžˆλ‹€.
  • μ‹œμŠ€ν…œ μ²˜λ¦¬λŸ‰ 증가(처리 λΉ„μš© κ°μ†Œ) : μŠ€λ ˆλ“œ μ‚¬μ΄μ˜ μž‘μ—…λŸ‰μ΄ μž‘μ•„ Context Switching이 λΉ λ₯΄λ‹€.
  • κ°„λ‹¨ν•œ 톡신 λ°©λ²•μœΌλ‘œ μΈν•œ ν”„λ‘œκ·Έλž¨ 응닡 μ‹œκ°„ 단좕: μŠ€λ ˆλ“œλŠ” ν”„λ‘œμ„ΈμŠ€ λ‚΄μ˜ Stackμ˜μ—­μ„ μ œμ™Έν•œ λͺ¨λ“  λ©”λͺ¨λ¦¬λ₯Ό κ³΅μœ ν•˜κΈ° λ•Œλ¬Έμ— ν†΅μ‹ μ˜ 뢀담이 적닀.

πŸ˜Ÿλ©€ν‹°μŠ€λ ˆλ“œ 단점

  • μŠ€λ ˆλ“œ ν•˜λ‚˜κ°€ ν”„λ‘œμ„ΈμŠ€ λ‚΄λΆ€ μžμ›μ„ 망쳐버리면 λͺ¨λ“  ν”„λ‘œμ„ΈμŠ€κ°€ μ’…λ£Œλ  수 μžˆλ‹€.
  • μžμ›μ„ κ³΅μœ ν•˜κΈ° λ•Œλ¬Έμ— 동기화 λ¬Έμ œκ°€ λ°œμƒν•  수 밖에 μ—†λ‹€.

πŸ‘‰λ™κΈ°ν™” 문제(Synchronization Issue)λŠ” λ©€ν‹°μŠ€λ ˆλ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ 각각의 μŠ€λ ˆλ“œ 쀑에 μ–΄λ–€ 것이 μš°μ„  μˆœμ„œλ‘œ μ‹€ν–‰λ˜λŠ”μ§€ μ•Œ 수 μ—†λ‹€.

      λ§Œμ•½ A μŠ€λ ˆλ“œκ°€ μ–΄λ–€ μžμ›μ„ μ‚¬μš©ν•˜λ‹€κ°€ B μŠ€λ ˆλ“œλ‘œ μ œμ–΄κΆŒμ΄ λ„˜μ–΄κ°„ ν›„ B μŠ€λ ˆλ“œκ°€ ν•΄λ‹Ή μžμ›μ„ μˆ˜μ •ν–ˆμ„ λ•Œ, λ‹€μ‹œ μ œμ–΄κΆŒμ„ 받은

      AμŠ€λ ˆλ“œκ°€ ν•΄λ‹Ή μžμ›μ— μ ‘κ·Όν•˜μ§€ λͺ»ν•˜κ±°λ‚˜ 바뀐 μžμ›μ— μ ‘κ·Όν•˜κ²Œ λ˜λŠ” 였λ₯˜κ°€ λ°œμƒν•  수 μžˆλ‹€.κ·ΈλŸ¬λ―€λ‘œ ν”„λ‘œκ·Έλž˜λ¨Έκ°€ 직접 동기화

      λ¬Έμ œμ— λŒ€μ‘ν•  수 μžˆμ–΄μ•Ό ν•œλ‹€.

 

 

πŸ’»λ§ˆλ¬΄λ¦¬

μŠ€λ ˆλ“œλŠ” ν”„λ‘œμ„ΈμŠ€ μ•ˆμ— ν¬ν•¨λ˜μ–΄ 있기 λ•Œλ¬Έμ—,ν”„λ‘œμ„ΈμŠ€μ™€ κ°œλ…μ˜ λ²•μœ„λΆ€ν„°κ°€ λ‹€λ₯΄λ‹€.

μš΄μ˜μ²΄μ œκ°€ ν”„λ‘œμ„ΈμŠ€μ—κ²Œ Code/Data/Stack/Heap λ©”λͺ¨λ¦¬ μ˜μ—­μ„ ν• λ‹Ήν•΄ μ£Όκ³  μ΅œμ†Œ μž‘μ—… λ‹¨μœ„λ‘œ μ‚ΌλŠ” 반면, μŠ€λ ˆλ“œλŠ” ν”„λ‘œμ„ΈμŠ€ λ‚΄μ—μ„œ Stack λ©”λͺ¨λ¦¬ μ˜μ—­μ„ μ œμ™Έν•œ λ‹€λ₯Έ λ©”λͺ¨λ¦¬ μ˜μ—­μ„ 같은 ν”„λ‘œμ„ΈμŠ€ λ‚΄ λ‹€λ₯Έ μŠ€λ ˆλ“œμ™€ κ³΅μœ ν•œλ‹€.

 

λ©€ν‹°νƒœμŠ€ν‚Ήλ³΄λ‹€ λ©€ν‹°μŠ€λ ˆλ“œκ°€ μžμ›μ„ μ•„λ‚„ 수 있게 λœλ‹€. λ‹€λ§Œ μŠ€λ ˆλ“œμ˜ μŠ€μΌ€μ€„λ§μ€ μš΄μ˜μ²΄μ œκ°€ μ²˜λ¦¬ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— ν”„λ‘œκ·Έλž˜λ¨Έκ°€ 직접 동기화 λ¬Έμ œμ— λŒ€μ‘ν•  수 μžˆμ–΄μ•Ό ν•œλ‹€.

 

References

 

728x90

'Dev > ComputerScience' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[CS]μΈν„°λŸ½νŠΈ(Interrupt)  (0) 2021.06.13
[CS]Context Switching(μ»¨νƒμŠ€νŠΈ μŠ€μœ„μΉ­)  (0) 2021.06.13