CPU, GPU, Memory and Multi process
Last updated
Last updated
첫 λ²μ§Έλ‘ λ³Ό λΆνμ CPU(central processing unit, μ€μμ²λ¦¬μ₯μΉ)μ΄λ€. CPUλ μ»΄ν¨ν°μ λλλΌ ν μ μλ€. λ€μ κ·Έλ¦Όμμ μ¬λ¬΄μμΌλ‘ λ¬μ¬λ CPU μ½μ΄λ μ¬λ¬ μ’ λ₯μ μμ μ νλμ© μμλλ‘ μ²λ¦¬ν μ μλ€. CPU μ½μ΄λ μνμ΄λ μμ μ λ¬Όλ‘ κ³ κ° μ νμ μλνλ λ°©λ²λ μκ³ μλ€. μμ μλ λλΆλΆμ CPUκ° λ¨μΌ μΉ©μ΄μλ€. CPU μ½μ΄ νλλ λμΌν μΉ©μ μλ λ λ€λ₯Έ CPUλ λ§μ°¬κ°μ§μ΄λ€. μ΅μ νλμ¨μ΄λ λ³΄ν΅ νλ μ΄μμ μ½μ΄λ₯Ό μ¬μ©ν΄ μ€λ§νΈν°μ΄λ λ ΈνΈλΆμ μ€ν μ±λ₯μ λμΈλ€.
GPU(graphics processing unit, κ·Έλν½μ²λ¦¬μ₯μΉ)λ μ»΄ν¨ν°μ λ λ€λ₯Έ λΆνμ΄λ€. CPUμ λ¬λ¦¬ GPUλ κ°λ¨ν μμ μλ§ νΉνλμ΄ μμ§λ§ μ¬λ¬ GPU μ½μ΄κ° λμμ μμ μ μνν μ μλ€. κ·Έλν½μ²λ¦¬μ₯μΉλΌλ μ΄λ¦μμ μ μ μλ―μ΄ GPUλ κ·Έλν½ μμ μ μ²λ¦¬νκΈ° μν΄ κ°λ°λμλ€. κ·Έλμ κ·Έλν½ κ΄λ ¨ μ€λͺ μμ "GPUλ₯Ό μ¬μ©νλ€"λ "GPUμ μ§μμ λ°λλ€"μ κ°μ λ§μ΄ λΉ λ₯Έ λ λλ§κ³Ό 맀λλ¬μ΄ μνΈμμ©μ κ΄λ ¨λ ννμ΄λ€. μ΅κ·Ό λͺ λ λμ GPU κ°μμ ν΅ν΄ GPUκ° λ¨λ μΌλ‘ μ²λ¦¬ν μ μλ κ³μ°μ΄ μ μ λ λ§μμ‘λ€.
λΈλΌμ°μ μν€ν μ²λ₯Ό μ΄ν΄λ³΄κΈ° μ μ νμ ν΄μΌ ν λ λ€λ₯Έ κ°λ μ νλ‘μΈμ€μ μ€λ λμ΄λ€. νλ‘μΈμ€λ μ ν리μΌμ΄μ μ΄ μ€ννλ νλ‘κ·Έλ¨μ΄λΌ ν μ μλ€. μ€λ λλ νλ‘μΈμ€ λ΄λΆμ μμΌλ©° νλ‘μΈμ€λ‘ μ€νλλ νλ‘κ·Έλ¨μ μΌλΆλ₯Ό μ€ννλ€.
μ ν리μΌμ΄μ μ μμνλ©΄ νλ‘μΈμ€κ° νλ λ§λ€μ΄μ§λ€. νλ‘μΈμ€κ° μμ μ νκΈ° μν΄ μ€λ λλ₯Ό μμ±ν μλ μμ§λ§ μ ν μ¬νμ΄λ€. μ΄μ체μ λ νλ‘μΈμ€κ° μμ ν λ©λͺ¨λ¦¬λ₯Ό "ν μ‘°κ°" μ£Όλλ°, μ΄ μ μ© λ©λͺ¨λ¦¬ 곡κ°μ μ ν리μΌμ΄μ μ λͺ¨λ μνκ° μ μ₯λλ€. μ ν리μΌμ΄μ μ λ«μΌλ©΄ νλ‘μΈμ€κ° μ¬λΌμ§κ³ μ΄μ체μ κ° λ©λͺ¨λ¦¬λ₯Ό λΉμ΄λ€.
νλ‘μΈμ€λ μ¬λ¬ μμ μ μννκΈ° μν΄ μ΄μ체μ μ λ€λ₯Έ νλ‘μΈμ€λ₯Ό μ€ννλΌκ³ μμ²ν μ μλ€. κ·Έλ¬λ©΄ λ©λͺ¨λ¦¬μ λ€λ₯Έ λΆλΆμ΄ μ νλ‘μΈμ€μ ν λΉλλ€. λ νλ‘μΈμ€κ° μλ‘ μ 보λ₯Ό 곡μ ν΄μΌ ν λλ IPC(inter process communication, νλ‘μΈμ€ κ° ν΅μ )λ₯Ό μ¬μ©νλ€. λ§μ μ ν리μΌμ΄μ μ΄ μ΄λ¬ν λ°©μμΌλ‘ μλνλλ‘ μ€κ³λμ΄ μλ€. κ·Έλμ μμ νλ‘μΈμ€κ° μλ΅νμ§ μμ λ μ ν리μΌμ΄μ μ λ€λ₯Έ λΆλΆμ μ€ννλ νλ‘μΈμ€λ₯Ό μ€μ§νμ§ μκ³ λ μλ΅νμ§ μλ νλ‘μΈμ€λ₯Ό λ€μ μμν μ μλ€.
μ¬κΈ°μμ μ£Όλͺ©ν΄μΌ ν μ€μν μ μ μ΄λ¬ν μλ‘ λ€λ₯Έ μν€ν μ²κ° ꡬν μΈλΆ μ¬νμ΄λΌλ μ μ΄λ€. λΈλΌμ°μ λ₯Ό λ§λλ λ°©λ²μ λν νμ€μ μλ€. λΈλΌμ°μ λ§λ€ μ κ·Ό λ°©μμ΄ μμ ν λ€λ₯Ό μ μλ€.
μ μΌ μμ μλ λΈλΌμ°μ νλ‘μΈμ€λ μ ν리μΌμ΄μ μ κ° λΆλΆμ λ§‘κ³ μλ λ€λ₯Έ νλ‘μΈμ€λ₯Ό μ‘°μ νλ€. λ λλ¬ νλ‘μΈμ€λ μ¬λ¬ κ°κ° λ§λ€μ΄μ Έ κ° νλ§λ€ ν λΉλλ€. μ΅κ·ΌκΉμ§ Chromeμ νλ§λ€ νλ‘μΈμ€λ₯Ό ν λΉνλ€.
νλ‘μΈμ€
νλ‘μΈμ€κ° μ μ΄νλ λΆλΆ
λΈλΌμ°μ νλ‘μΈμ€
μ£Όμ νμμ€, λΆλ§ν¬ λ§λ, λ€λ‘ κ°κΈ° λ²νΌ, μμΌλ‘ κ°κΈ° λ²νΌ λ± μ ν리μΌμ΄μ μ "chrome" λΆλΆμ μ μ΄νλ€. λ€νΈμν¬ μμ²μ΄λ νμΌ μ κ·Όκ³Ό κ°μ΄ λμ 보μ΄μ§λ μμ§λ§ κΆνμ΄ νμν λΆλΆλ μ²λ¦¬νλ€.
λ λλ¬ νλ‘μΈμ€
ν μμμ μΉ μ¬μ΄νΈκ° νμλλ λΆλΆμ λͺ¨λ κ²μ μ μ΄νλ€.
νλ¬κ·ΈμΈ νλ‘μΈμ€
μΉ μ¬μ΄νΈμμ μ¬μ©νλ νλ¬κ·ΈμΈ(μ: Flash)μ μ μ΄νλ€.
GPU νλ‘μΈμ€
GPU μμ μ λ€λ₯Έ νλ‘μΈμ€μ 격리ν΄μ μ²λ¦¬νλ€. GPUλ μ¬λ¬ μ ν리μΌμ΄μ μ μμ²μ μ²λ¦¬νκ³ κ°μ νλ©΄μ μμ²λ°μ λ΄μ©μ 그리기 λλ¬Έμ GPU νλ‘μΈμ€λ λ³λ νλ‘μΈμ€λ‘ λΆλ¦¬λμ΄ μλ€.
Chromeμ΄ λ λλ¬ νλ‘μΈμ€λ₯Ό μ¬λ¬ κ° μ¬μ©νλ€κ³ μ€λͺ νλ€. κ°μ₯ κ°λ¨ν μλ‘ νλ§λ€ λ λλ¬ νλ‘μΈμ€λ₯Ό νλ μ¬μ©νλ κ²½μ°λ₯Ό μκ°ν΄ 보μ. 3κ°μ νμ΄ μ΄λ € μκ³ κ° νμ λ 립μ μΈ λ λλ¬ νλ‘μΈμ€μ μν΄ μ€νλλ€. μ΄λ ν νμ΄ μλ΅νμ§ μμΌλ©΄ κ·Έ νλ§ λ«κ³ μ€ν μ€μΈ λ€λ₯Έ νμΌλ‘ μ΄λν μ μλ€. λ§μ½ λͺ¨λ νμ΄ νλμ νλ‘μΈμ€μμ μ€ν μ€μ΄μλ€λ©΄ νμ΄ νλλ§ μλ΅νμ§ μμλ λͺ¨λ νμ΄ μλ΅νμ§ λͺ»νκ² λλ€.
λΈλΌμ°μ μ μμ μ μ¬λ¬ νλ‘μΈμ€μ λλ μ μ²λ¦¬νλ λ°©λ²μ λ λ€λ₯Έ μ₯μ μ 보μκ³Ό 격리(sandbox)μ΄λ€. μ΄μ체μ λ₯Ό ν΅ν΄ νλ‘μΈμ€μ κΆνμ μ νν μ μμ΄ λΈλΌμ°μ λ νΉμ νλ‘μΈμ€κ° νΉμ κΈ°λ₯μ μ¬μ©ν μ μκ² μ νν μ μλ€. μλ₯Ό λ€μ΄ Chromeμ λ λλ¬ νλ‘μΈμ€μ²λΌ μμμ μ¬μ©μ μ λ ₯μ μ²λ¦¬νλ νλ‘μΈμ€κ° μμμ νμΌμ μ κ·Όνμ§ λͺ»νκ² μ ννλ€. (μ‘ν°λΈ μμ€λ λλλΌ...)
νλ‘μΈμ€λ μ μ© λ©λͺ¨λ¦¬ 곡κ°μ μ¬μ©νκΈ° λλ¬Έμ 곡ν΅λΆλΆ(μλ₯Ό λ€μ΄ Chromeμ JavaScript μμ§μΈ V8)μ 볡μ¬ν΄μ κ°μ§κ³ μλ κ²½μ°κ° λ§λ€. λμΌν νλ‘μΈμ€μ μ€λ λκ° λ©λͺ¨λ¦¬λ₯Ό 곡μ ν μ μλ λ° λ°ν΄ μλ‘ λ€λ₯Έ νλ‘μΈμ€λ λ©λͺ¨λ¦¬λ₯Ό 곡μ ν μ μμ΄ λ©λͺ¨λ¦¬ μ¬μ©λμ΄ λ λ§μμ§ μλ°μ μλ€. Chromeμ λ©λͺ¨λ¦¬λ₯Ό μ μ½νκΈ° μν΄μ μ€νν μ μλ νλ‘μΈμ€μ κ°μλ₯Ό μ ννλ€. μ νν νλλ κΈ°κΈ°μ λ©λͺ¨λ¦¬ μ©λκ³Ό CPU μ±λ₯μ λ°λΌ λ€λ₯΄μ§λ§ νλ‘μΈμ€μ κ°μκ° νλμ λ€λ€λ₯΄λ©΄ λμΌν μ¬μ΄νΈλ₯Ό μ΄κ³ μλ μ¬λ¬ νμ νλμ νλ‘μΈμ€μμ μ²λ¦¬νλ€. --> μ΅λ νΈμΆ ν μ μλ μμ΄ μ ν΄μ Έ μμ
μ¬μ΄νΈ 격리(site isolation)λ Chromeμμ μ΅κ·Ό λμ
λ κΈ°λ₯μΌλ‘, iframeμ μ¬μ΄νΈλ₯Ό λ³λμ λ λλ¬ νλ‘μΈμ€μμ μ€ννλ κ²μ΄λ€. νλ§λ€ λ λλ¬ νλ‘μΈμ€λ₯Ό ν λΉνλ λͺ¨λΈμμλ iframeμ μ¬μ΄νΈκ° κ°μ λ λλ¬ νλ‘μΈμ€μμ μλνκΈ° λλ¬Έμ μλ‘ λ€λ₯Έ μ¬μ΄νΈ κ°μ λ©λͺ¨λ¦¬κ° 곡μ λ μ μλ€λ λ¬Έμ κ° μμ΄ μ§μμ μΌλ‘ λ
Όμκ° μμλ€. a.com
μ¬μ΄νΈμ μΉ νμ΄μ§μ b.com
μ¬μ΄νΈμ μΉ νμ΄μ§λ₯Ό λμΌν λ λλ¬ νλ‘μΈμ€μμ μ€ννλ κ²μ΄ λ¬Έμ κ° μμ΄ λ³΄μΌ μ μλ€. νμ§λ§ λμΌ μΆμ² μ μ±
(same origin policy)μ μΉ λ³΄μ λͺ¨λΈμ ν΅μ¬μ΄λ€. ν μ¬μ΄νΈλ λμ μμ΄ λ€λ₯Έ μ¬μ΄νΈμ λ°μ΄ν°μ μ κ·Όν μ μμ΄μΌ νλ€. μ΄ μ μ±
μ μ°ννλ κ²μ΄ λ°λ‘ 보μ 곡격μ μ£Όμ λͺ©νμ΄λ€. νλ‘μΈμ€λ₯Ό 격리νλ κ²μ΄ μ¬μ΄νΈλ₯Ό 격리νλ κ°μ₯ ν¨κ³Όμ μΈ λ°©λ²μ΄λ€. Meltdownκ³Ό Spectre μ¬νλ‘ μ¬λ¬ νλ‘μΈμ€λ₯Ό μ¬μ©ν΄ μ¬μ΄νΈλ₯Ό 격리ν΄μΌ νλ€λ κ²μ΄ λμ± λΆλͺ
ν΄μ‘λ€. Chrome 67λΆν° λ°μ€ν¬ν±μμ μ¬μ΄νΈ 격리λ₯Ό κΈ°λ³ΈμΌλ‘ μ¬μ©νλλ‘ μ€μ νλ©΄μ νμμ iframeμ μ¬μ΄νΈμ λ³λμ λ λλ¬ νλ‘μΈμ€κ° μ μ©λλ€.