π™‹π™§π™€π™˜π™šπ™¨π™¨ & π™π™π™§π™šπ™–π™™

uuuouuoΒ·2022λ…„ 7μ›” 19일
0
post-thumbnail

πŸ“– ν”„λ‘œμ„ΈμŠ€μ™€ μŠ€λ ˆλ“œ


πŸ’¬ ν”„λ‘œμ„ΈμŠ€


  • μ‹€ν–‰ 쀑인 ν”„λ‘œκ·Έλž¨
  • μžμ‹ λ§Œμ˜ 고유 곡간과 μžμ› ν• λ‹Ή
    - λ””μŠ€ν¬λ‘œλΆ€ν„° λ©”λͺ¨λ¦¬μ— μ μž¬λ˜μ–΄ CPU의 ν• λ‹Ή λ°›μŒ
  • ν”„λ‘œμ„ΈμŠ€ μŠ€νƒκ³Ό μ„Ήμ…˜ 포함
  • ν”„λ‘œμ„ΈμŠ€ μ‹€ν–‰ 쀑에 νž™ 포함

β—Ύ ν”„λ‘œμ„ΈμŠ€ μ œμ–΄ 블둝 (PCB)

  • νŠΉμ • ν”„λ‘œμ„ΈμŠ€μ— λŒ€ν•œ μ€‘μš”ν•œ 정보λ₯Ό μ €μž₯ν•˜λŠ” 운영체제의 자료ꡬ쑰
  • ν”„λ‘œμ„ΈμŠ€μ˜ 생성과 λ™μ‹œμ— κ³ μœ ν•œ PCB 생성

πŸ’¬ μŠ€λ ˆλ“œ


  • ν”„λ‘œμ„ΈμŠ€μ˜ μ‹€ν–‰ λ‹¨μœ„
  • 같은 ν”„λ‘œμ„ΈμŠ€ λ‚΄ λ‹€λ₯Έ μŠ€λ ˆλ“œμ™€ 곡간, μžμ› 곡유

β—Ύ μŠ€νƒμ„ μŠ€λ ˆλ“œλ§ˆλ‹€ λ…λ¦½μ μœΌλ‘œ ν• λ‹Ήν•˜λŠ” 이유

  • μŠ€λ ˆλ“œλ§ˆλ‹€ 독립적인 ν•¨μˆ˜ 호좜과 μ‹€ν–‰ 흐름을 μΆ”κ°€ν•˜κΈ° μœ„ν•΄ μŠ€λ ˆλ“œ λ…λ¦½μ μœΌλ‘œ ν• λ‹Ή

β—Ύ PC λ ˆμ§€μŠ€ν„°λ₯Ό μŠ€λ ˆλ“œλ§ˆλ‹€ λ…λ¦½μ μœΌλ‘œ ν• λ‹Ήν•˜λŠ” 이유

  • Context Switch ν•  λ•Œ 이전에 μ–΄λ”” λΆ€λΆ„κΉŒμ§€ μž‘μ—…μ„ μˆ˜ν–‰ν–ˆλŠ”μ§€ κΈ°μ–΅ν•˜κΈ° μœ„ν•΄μ„œ PC λ ˆμ§€μŠ€ν„°λ₯Ό μŠ€λ ˆλ“œλ§ˆλ‹€ λ…λ¦½μ μœΌλ‘œ ν• λ‹Ή
    • Context Switching
      • ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€κ°€ CPUλ₯Ό μ‚¬μš© 쀑인 μƒνƒœμ—μ„œ λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€κ°€ CPUλ₯Ό μ‚¬μš©ν•˜λ„λ‘ ν•˜κΈ° μœ„ν•΄, μ΄μ „μ˜ ν”„λ‘œμ„ΈμŠ€μ˜ μƒνƒœ(λ¬Έλ§₯)λ₯Ό λ³΄κ΄€ν•˜κ³  μƒˆλ‘œμš΄ ν”„λ‘œμ„ΈμŠ€μ˜ μƒνƒœλ₯Ό μ μž¬ν•˜λŠ” μž‘μ—…

β–Ά μžλ°” μŠ€λ ˆλ“œ

  • 일반 μŠ€λ ˆλ“œμ™€ 거의 차이 μ—†μœΌλ©°, JVM이 운영체제 역할을 함
  • μžλ°”λŠ” ν”„λ‘œμ„ΈμŠ€κ°€ μ‘΄μž¬ν•˜μ§€ μ•Šκ³ , μŠ€λ ˆλ“œλ§Œ 쑴재
  • JVM에 μ˜ν•΄ μŠ€μΌ€μ€„λ§λ˜λŠ” μ½”λ“œ 블둝
  • κ°œλ°œμžλŠ” μŠ€λ ˆλ“œ μ½”λ“œλ₯Ό μž‘μ„±ν•˜κ³  JVM에 μ‹€ν–‰ μš”μ²­ν•¨

β–Ά Tread-safe

  • λ©€ν‹° μŠ€λ ˆλ“œ ν™˜κ²½μ—μ„œ 곡유 μžμ›μ— μ—¬λŸ¬ μŠ€λ ˆλ“œ 접근이 μžˆμ–΄λ„ ν”„λ‘œκ·Έλž¨ 싀행에 문제 μ—†μŒ 의미

πŸ’¬ λ©€ν‹° μŠ€λ ˆλ“œ


  • ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€λ₯Ό λ‹€μˆ˜μ˜ μ‹€ν–‰ λ‹¨μœ„λ‘œ ꡬ뢄해 μžμ› 곡유, μžμ› 생성과 κ΄€λ¦¬μ˜ 쀑볡성 μ΅œμ†Œν™”
  • 각각의 μŠ€λ ˆλ“œλŠ” 독립적인 μž‘μ—…μ„ μˆ˜ν–‰ν•΄μ•Ό ν•˜κΈ° λ•Œλ¬Έμ— 각자의 μŠ€νƒκ³Ό PC λ ˆμ§€μŠ€ν„° 값을 가짐

β—Ύ λ©€ν‹° μŠ€λ ˆλ”©μ˜ μž₯점

  • λ©”λͺ¨λ¦¬ 곡간과 μ‹œμŠ€ν…œ μžμ› μ†Œλͺ¨ κ°μ†Œ
  • μŠ€λ ˆλ“œ κ°„ 톡신할 λ•Œ heapμ˜μ—­μ„ 톡해 데이터 전달
    • ν”„λ‘œμ„ΈμŠ€ κ°„ 톡신에 λΉ„ν•΄ 톡신 간단
  • ν”„λ‘œμ„ΈμŠ€μ™€ 달리 context switch의 μΊμ‹œ λ©”λͺ¨λ¦¬ λΉ„μšΈ ν•„μš” μ—†μ–΄μ„œ 더 빠름
    • 이λ₯Ό 톡해 throughput ν–₯상 & μžμ› μ†Œλͺ¨ κ°μ†Œν•΄μ„œ μžμ—°μŠ€λ ˆ 응닡 μ‹œκ°„ 단좕

β—Ύ λ©€ν‹° μŠ€λ ˆλ”©μ˜ 문제점

  • μ„œλ‘œ λ‹€λ₯Έ μŠ€λ ˆλ“œκ°€ λ™μ‹œμ— μžμ›μ„ κ³΅μœ ν•  λ•Œ λ‹€λ₯Έ μŠ€λ ˆλ“œμ—μ„œ μ‚¬μš©μ€‘μΈ λ³€μˆ˜λ‚˜ μžλ£Œκ΅¬μ‘°μ— μ ‘κ·Όν•΄μ„œ μ—‰λš±ν•œ 값을 μ½κ±°λ‚˜ μˆ˜μ •ν•  수 있음

λ©€ν‹° μŠ€λ ˆλ”© 문제점 ν•΄κ²° 방법

  • 동기화 μž‘μ—…μ„ 톡해 처리 μˆœμ„œμ™€ 곡유 μžμ›μ— λŒ€ν•œ μ ‘κ·Ό 컨트둀
  • ν•˜μ§€λ§Œ 이둜 인해 κ³Όλ„ν•œ 락으둜 인해 병λͺ©ν˜„상이 λ°œμƒν•΄ μ„±λŠ₯ μ €ν•˜κ°€ λ‚  수 있음

0개의 λŒ“κΈ€