πŸ““ STUDY/OS

02. Process VS Thread

JuneBee 2022. 11. 30. 23:48
728x90
λ°˜μ‘ν˜•

Process

ν”„λ‘œμ„ΈμŠ€λŠ” κ΄€λ¦¬μ˜ "λ‹¨μœ„" 이닀. μ΄λ•Œ, κ΄€λ¦¬μ˜ μ£Όμ²΄λŠ” "OS"κ°€ λœλ‹€.

ν”„λ‘œμ„ΈμŠ€κ°€ μ‘΄μž¬ν•˜λ©΄ μ΅œμ†Œ ν•œκ°œμ˜ μŠ€λ ˆλ“œλ„ μ‘΄μž¬ν•˜λŠ”λ°, ν”„λ‘œμ„ΈμŠ€ μ•ˆμ— μˆ˜λ§Žμ€ μŠ€λ ˆλ“œκ°€ μ‘΄μž¬ν•œλ‹€κ³  이둠적으둜 μ ‘κ·Όν•  수 μžˆμ§€λ§Œ 사싀 ν”„λ‘œμ„ΈμŠ€ μ—­μ‹œ ν•œκ°œμ˜ 메인 μŠ€λ ˆλ“œλΌκ³  ν•œλ‹€.

 

ν•œκ°œμ˜ ν”„λ‘œμ„ΈμŠ€ 내뢀에 단일 ~ μ—¬λŸ¬ μŠ€λ ˆλ“œκ°€ μ‘΄μž¬ν•  수 있고 이듀은 "λ™μ‹œμ—" "각자" μž‘μ—…ν•œλ‹€

 

μ—°μ‚°

ν”„λ‘œμ„ΈμŠ€κ°€ λ­ν•˜λŠ” 애냐?! ν•˜κ³  λ¬»λŠ”λ‹€λ©΄ "μ—°μ‚°"ν•˜λŠ” 애라고 보면 λœλ‹€. ν”„λ‘œμ„ΈμŠ€λŠ” μ—°μ†μ μœΌλ‘œ μ—°μ‚°μ²˜λ¦¬λ₯Ό ν•˜λŠ”λ° μ΄λ•Œ μŠ€λ ˆλ“œλ₯Ό μ‚¬μš©ν•΄μ„œ μ—°μ‚°ν•˜λŠ” 것,,, μ΄λ•Œ, OSκ°€ 연산에 ν•„μš”ν•œ CPU와 μ—°μŠ΅μž₯ (RAM) 을 μ œκ³΅ν•΄μ£ΌλŠ” 것이닀.

Process Flow

큰 κ·Έλ¦Ό : Process -> μ—°μ‚°  -> 연산을 μœ„ν•΄μ„œλŠ” ν•˜λ“œμ›¨μ–΄μ˜ CPU와 RAM을 μ‚¬μš©ν•΄μ•Όν•¨ (resource) -> OSκ°€ VM ν• λ‹Ή

CPUμ—λŠ” μ—¬λŸ¬ μ½”μ–΄κ°€ μžˆλŠ”λ° OSμ—μ„œ μ–΄λ–€ coreλ₯Ό μ‚¬μš©ν•  건지 (CPU), μ–΄λŠ RAM을 μ‚¬μš©ν•  건지 (주둜 νŽ˜μ΄μ§€ λ‹¨μœ„λ‘œ μžλ¦„) κ²°μ •ν•΄μ€€λ‹€. CPUκ°€ μ—°μ‚°μ²˜λ¦¬λ₯Ό ν•΄μ€€λ‹€λ©΄ RAM은 μ—°μŠ΅μž₯이닀..*참고둜 이 coreκ°€ i-core 9 ν• λ•Œ κ·Έ μ½”μ–΄μž„

Virtual Memory

μ΄λ•Œ, CPU와 λž¨μ„ μ§μ ‘μ μœΌλ‘œ μ‚¬μš©ν•˜κ²Œλ” 이어주진 μ•ŠλŠ”λ‹€. CPUλŠ” 직접 μ‚¬μš©ν•˜κ²Œλ”λ„ ν•˜μ§€λ§Œ RAM은 μ ˆλŒ€ λΆˆκ°€,,

λŒ€μ‹  Virtual Memory(VM)μ΄λΌλŠ” 곳을 μ‚¬μš©ν•œλ‹€.

  • RAM : 1μ°¨ λ©”λͺ¨λ¦¬
  • HDD : 2μ°¨ λ©”λͺ¨λ¦¬
  • Virtual Memory : 1μ°¨ + 2μ°¨ λ©”λͺ¨λ¦¬

VM은 μ—°μ†λœ λ©”λͺ¨λ¦¬λ‘œ 1+2μ°¨ λ©”λͺ¨λ¦¬κ°€ μ „λΆ€ λ‚˜μ—΄λ˜μ–΄μžˆλŠ” λ©”λͺ¨λ¦¬ 곡간이라고 μƒκ°ν•˜λ©΄ λœλ‹€. μ΄λ•Œ, ν”„λ‘œμ„ΈμŠ€κ°€ VM의 ν•œ 곡간을 ν• λ‹Ήλ°›μ•˜λŠ”λ° μ•Œκ³ λ³΄λ‹ˆ HDD곡간일 μˆ˜λ„ μžˆλ‹€ (ν—ˆμœ„λ§€λ¬Ό γ…Žγ„·γ„· λ°°μ •λ°›κ³ λ‚¬λŠ”λ° κ²λ‚˜ 느린 상황.. κ·Έλž˜λ„ 아무것도 μ—†λŠ”κ²ƒλ³΄λ‹¨ λ‚«μžλ„ˆ..? ν•˜λŠ” μ‹¬μ •μœΌλ‘œ ν• λ‹Ήν•΄μ€€λ‹€) μ•„λ¬΄λž˜λ„ μ—°μ†μ μœΌλ‘œ μ—¬λŸ¬ 업무λ₯Ό μ²˜λ¦¬ν•˜λ €λ‹€λ³΄λ‹ˆκΉŒ μ΄λ ‡κ²Œ ν—ˆμœ„λ§€λ¬Όλ„ μ˜¬λ €λ†“μ€κ²Œ μ•„λ‹κΉŒ..?ν•œλ‹€. 

정리

  • ν”„λ‘œμ„ΈμŠ€(μž‘μ—…)은 μ΅œμ†Œ ν•œκ°œμ˜ μŠ€λ ˆλ“œλ₯Ό κ°–λŠ”λ‹€.
  • μŠ€λ ˆλ“œλŠ” μ—°μ‚°ν•˜λŠ” λ†ˆμž„
  • OSλŠ” Virtual Memoryλ₯Ό ν”„λ‘œμ„ΈμŠ€μ—κ²Œ ν• λ‹Ήν•œλ‹€
  • λ”°λΌμ„œ, ν”„λ‘œμ„ΈμŠ€μ— μ†ν•œ λͺ¨λ“  μŠ€λ ˆλ“œ(μ—°μ‚°μ˜ 주체)λŠ” ν”„λ‘œμ„ΈμŠ€μ˜ VM으둜 곡간이 μ œν•œλ˜μ–΄μžˆλ‹€.

Process and Thread

μ§‘ : ν”„λ‘œμ„ΈμŠ€ -> ν”„λ‘œμ„ΈμŠ€μ— ν• λ‹Ήλœ VM 만큼의 크기λ₯Ό κ°–λŠ”λ‹€

λ°© : μŠ€λ ˆλ“œ -> μŠ€λ ˆλ“œ λ§ˆλ‹€ 고유 Thread Local Storageλ₯Ό κ°€μ§€λ©° μŠ€λ ˆλ“œ λ§ˆλ‹€ μŠ€νƒμœΌλ‘œ λΆ„λ¦¬λŒ

κ±°μ‹€ :  Heap μ˜μ—­


Reference

https://www.youtube.com/watch?v=x-Lp-h_pf9Q&list=RDCMUCdGTtaI-ERLjzZNLuBj3X6A&start_radio=1&rv=x-Lp-h_pf9Q&t=4&ab_channel=%EB%84%90%EB%84%90%ED%95%9C%EA%B0%9C%EB%B0%9C%EC%9E%90TV 

 

728x90
λ°˜μ‘ν˜•