Home > Archive > CS_archive > πŸ’Ύ [CS] λ©”λͺ¨λ¦¬μ˜ μ£Όμ†Œ 곡간

πŸ’Ύ [CS] λ©”λͺ¨λ¦¬μ˜ μ£Όμ†Œ 곡간
CS

λ©”λͺ¨λ¦¬μ˜ μ£Όμ†Œ 곡간.

μ£Όμ†Œμ—λŠ” 물리 μ£Όμ†Œμ™€ 논리 μ£Όμ†Œκ°€ μžˆλ‹€. 이번 μ ˆμ—μ„œλŠ” 이 두 μ£Όμ†Œμ˜ κ°œλ…κ³Ό 차이, 그리고 두 μ£Όμ†Œ κ°„μ˜ λ³€ν™˜ 방법을 ν•™μŠ΅ν•œλ‹€.

1. μ£Όμ†Œμ˜ μ’…λ₯˜.

μ§€κΈˆκΉŒμ§€ β€˜λ©”λͺ¨λ¦¬μ— μ €μž₯된 μ •λ³΄μ˜ μœ„μΉ˜λŠ” μ£Όμ†Œλ‘œ λ‚˜νƒ€λ‚Ό 수 μžˆλ‹€β€™ μ •λ„λ‘œλ§Œ μ„€λͺ…ν–ˆμ§€λ§Œ, 사싀 μ£Όμ†Œμ—λŠ” 두 μ’…λ₯˜κ°€ μžˆμŠ΅λ‹ˆλ‹€.

  • 1. λ¬Όλ¦¬μ£Όμ†Œ : λ©”λͺ¨λ¦¬ ν•˜λ“œμ›¨μ–΄κ°€ μ‚¬μš©ν•˜λŠ” μ£Όμ†Œ.
  • 2. λ…Όλ¦¬μ£Όμ†Œ : CPU와 μ‹€ν–‰ 쀑인 ν”„λ‘œκ·Έλž¨μ΄ μ‚¬μš©ν•˜λŠ” μ£Όμ†Œ.

2. 물리 μ£Όμ†Œμ™€ 논리 μ£Όμ†Œ.

CPU와 μ‹€ν–‰ 쀑인 ν”„λ‘œκ·Έλž¨μ€ ν˜„μž¬ λ©”λͺ¨λ¦¬ λͺ‡ λ²ˆμ§€μ— 무엇이 μ €μž₯λ˜μ–΄ μžˆλŠ”μ§€ λ‹€ μ•Œκ³  μžˆμ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

  • κ·Έ μ΄μœ λŠ” λ©”λͺ¨λ¦¬μ— μ €μž₯된 μ •λ³΄λŠ” μ‹œμ‹œκ°κ° λ³€ν•˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.

λ©”λͺ¨λ¦¬μ—λŠ” μƒˆλ‘­κ²Œ μ‹€ν–‰λ˜λŠ” ν”„λ‘œκ·Έλž¨μ΄ μ‹œμ‹œλ•Œλ•Œλ‘œ 적재되고, 싀행이 λλ‚œ ν”„λ‘œκ·Έλž¨μ€ μ‚­μ œλ©λ‹ˆλ‹€.
κ²Œλ‹€κ°€, 같은 ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•˜λ”λΌλ„ μ‹€ν–‰ν•  λ•Œλ§ˆλ‹€ μ μž¬λ˜λŠ” μ£Όμ†Œκ°€ λ‹¬λΌμ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.

  • 예λ₯Ό λ“€μ–΄, 1500λ²ˆμ§€μ— μ μž¬λ˜μ—ˆλ˜ ν”„λ‘œκ·Έλž¨μ„ λ‹€μ‹œ μ‹€ν–‰ν•˜λ©΄ 3000λ²ˆμ§€, 또 λ‹€μ‹œ μ‹€ν–‰ν•˜λ©΄ 2700λ²ˆμ§€μ— 적재될 수 μžˆμŠ΅λ‹ˆλ‹€.

κ·Έλ ‡λ‹€λ©΄ CPU와 μ‹€ν–‰ 쀑인 ν”„λ‘œκ·Έλž¨μ΄ μ΄ν•΄ν•˜λŠ” μ£Όμ†ŒλŠ” λ¬΄μ—‡μΌκΉŒμš”?

μ£Όμ†Œμ—λŠ” λ©”λͺ¨λ¦¬κ°€ μ‚¬μš©ν•˜λŠ” 물리 μ£Όμ†Œκ°€ 있고, CPU와 μ‹€ν–‰ 쀑인 ν”„λ‘œκ·Έλž¨μ΄ μ‚¬μš©ν•˜λŠ” 논리 μ£Όμ†Œκ°€ μžˆμŠ΅λ‹ˆλ‹€.

  • 물리 μ£Όμ†Œ(Physical address) : 정보가 μ‹€μ œλ‘œ μ €μž₯된 ν•˜λ“œμ›¨μ–΄μƒμ˜ μ£Όμ†Œλ₯Ό 의미.
  • 논리 μ£Όμ†Œ(logical address) : CPU와 μ‹€ν–‰ 쀑인 ν”„λ‘œκ·Έλž¨μ΄ μ‚¬μš©ν•˜λŠ” μ£Όμ†Œ, μ‹€ν–‰ 쀑인 ν”„λ‘œκ·Έλž¨ κ°κ°μ—κ²Œ λΆ€μ—¬λœ 0λ²ˆμ§€λΆ€ν„° μ‹œμž‘λ˜λŠ” μ£Όμ†Œλ₯Ό μ˜λ―Έν•¨.

예λ₯Ό λ“€μ–΄ ν˜„μž¬ λ©”λͺ¨λ¦¬μ— λ©”λͺ¨μž₯, κ²Œμž„, 인터넷 λΈŒλΌμš°μ € ν”„λ‘œκ·Έλž¨μ΄ μ μž¬λ˜μ–΄ μžˆλ‹€κ³  κ°€μ •ν•΄ λ³΄κ² μŠ΅λ‹ˆλ‹€.
λ©”λͺ¨μž₯, κ²Œμž„, 인터넷 λΈŒλΌμš°μ € ν”„λ‘œκ·Έλž¨μ€ ν˜„μž¬ λ‹€λ₯Έ ν”„λ‘œκ·Έλž¨λ“€μ΄ λ©”λͺ¨λ¦¬ λͺ‡ λ²ˆμ§€μ— μ €μž₯λ˜μ–΄ μžˆλŠ”μ§€,
λ‹€μ‹œ 말해 λ‹€λ₯Έ ν”„λ‘œκ·Έλž¨λ“€μ˜ 물리 μ£Όμ†Œκ°€ 무엇인지 ꡳ이 μ•Œ ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€.

μƒˆλ‘œμš΄ ν”„λ‘œκ·Έλž¨μ΄ μ–Έμ œλ“  적재될 수 있고, μ‹€ν–‰λ˜μ§€ μ•Šμ€ ν”„λ‘œκ·Έλž¨μ€ μ–Έμ œλ“  λ©”λͺ¨λ¦¬μ—μ„œ μ‚¬λΌμ§ˆ 수 있기 λ•Œλ¬Έμž…λ‹ˆλ‹€.

κ·Έλž˜μ„œ λ©”λͺ¨μž₯, κ²Œμž„, 인터넷 λΈŒλΌμš°μ €λŠ” λͺ¨λ‘ 물리 μ£Όμ†Œκ°€ μ•„λ‹Œ 0λ²ˆμ§€λΆ€ν„° μ‹œμž‘ν•˜λŠ” μžμ‹ λ§Œμ„ μœ„ν•œ μ£Όμ†ŒμΈ 논리 μ£Όμ†Œλ₯Ό κ°€μ§€κ³  μžˆμŠ΅λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄, β€˜10λ²ˆμ§€β€™λΌλŠ” μ£Όμ†ŒλŠ” λ©”λͺ¨μž₯에도, κ²Œμž„μ—λ„, 인터넷 λΈŒλΌμš°μ €μ—λ„ 논리 μ£Όμ†Œλ‘œμ¨ μ‘΄μž¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
ν”„λ‘œκ·Έλž¨λ§ˆλ‹€ 같은 논리 μ£Όμ†Œκ°€ μ–Όλ§ˆλ“ μ§€ μžˆμ„ 수 μžˆλ‹€λŠ” λœ»μž…λ‹ˆλ‹€.
그리고 CPUλŠ” 이 논리 μ£Όμ†Œλ₯Ό 받아듀이고, ν•΄μ„ν•˜κ³ , μ—°μ‚°ν•©λ‹ˆλ‹€.

μ •λ¦¬ν•˜λ©΄, λ©”λͺ¨λ¦¬κ°€ μ‚¬μš©ν•˜λŠ” μ£Όμ†ŒλŠ” ν•˜λ“œμ›¨μ–΄μƒμ˜ μ‹€μ œ μ£Όμ†ŒμΈ 물리 μ£Όμ†Œμ΄κ³ , CPU와 μ‹€ν–‰ 쀑인 ν”„λ‘œκ·Έλž¨μ΄ μ‚¬μš©ν•˜λŠ” μ£Όμ†ŒλŠ” 각각의 ν”„λ‘œκ·Έλž¨μ— λΆ€μ—¬λœ 논리 μ£Όμ†Œμž…λ‹ˆλ‹€.

그런데 CPUκ°€ μ΄ν•΄ν•˜λŠ” μ£Όμ†Œκ°€ 논리 μ£Όμ†ŒλΌκ³ λŠ” 해도 CPUκ°€ λ©”λͺ¨λ¦¬μ™€ μƒν˜Έμž‘μš©ν•˜λ €λ©΄ 논리 μ£Όμ†Œμ™€ 물리 μ£Όμ†Œ κ°„μ˜ λ³€ν™˜μ΄ 이루어져야 ν•©λ‹ˆλ‹€.

논리 μ£Όμ†Œμ™€ 물리 μ£Όμ†Œ 간에 μ–΄λ– ν•œ λ³€ν™˜λ„ 이루어지지 μ•ŠλŠ”λ‹€λ©΄ CPU와 λ©”λͺ¨λ¦¬λŠ” μ„œλ‘œ 이해할 수 μ—†λŠ” μ£Όμ†Œ 체계λ₯Ό κ°€μ§€κ³  각자 λ‹€λ₯Έ μ΄μ•ΌκΈ°λ§Œ ν•  뿐 κ²°μ½” μƒν˜Έμž‘μš©ν•  수 없을 ν…Œλ‹ˆκΉŒμš”.

κ·Έλ ‡λ‹€λ©΄ 논리 μ£Όμ†ŒλŠ” μ–΄λ–»κ²Œ 물리 μ£Όμ†Œλ‘œ λ³€ν™˜λ κΉŒμš”?

논리 μ£Όμ†Œμ™€ 물리 μ£Όμ†Œ κ°„μ˜ λ³€ν™˜μ€ CPU와 μ£Όμ†Œ λ²„μŠ€ 사이에 μœ„μΉ˜ν•œ λ©”λͺ¨λ¦¬ 관리 μž₯치(MMU: Memory Management Unit) λΌλŠ” ν•˜λ“œμ›¨μ–΄μ— μ˜ν•΄ μˆ˜ν–‰λ©λ‹ˆλ‹€.

MMUλŠ” CPUκ°€ λ°œμƒμ‹œν‚¨ 논리 μ£Όμ†Œμ— 베이슀 λ ˆμ§€μŠ€ν„° 값을 λ”ν•˜μ—¬ 논리 μ£Όμ†Œλ₯Ό 물리 μ£Όμ†Œλ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€.
예λ₯Ό λ“€μ–΄ ν˜„μž¬ 베이슀 λ ˆμ§€μŠ€ν„°μ— 15000이 μ €μž₯λ˜μ–΄ 있고 CPUκ°€ λ°œμƒμ‹œν‚¨ 논리 μ£Όμ†Œκ°€ 100λ²ˆμ§€λΌλ©΄ 이 논리 μ£Όμ†ŒλŠ” μ•„λž˜ 그림처럼 물리 μ£Όμ†Œ 15100λ²ˆμ§€(100+15000)둜 λ³€ν™˜λ©λ‹ˆλ‹€.
물리 μ£Όμ†Œ 15000λ²ˆμ§€λΆ€ν„° 적재된 ν”„λ‘œκ·Έλž¨ A의 논리 μ£Όμ†Œ 100λ²ˆμ§€μ—λŠ” μ΄λ ‡κ²Œ 접근이 κ°€λŠ₯ν•œ 것 μž…λ‹ˆλ‹€.

베이슀 λ ˆμ§€μŠ€ν„°λŠ” ν”„λ‘œκ·Έλž¨μ˜ κ°€μž₯ μž‘μ€ 물리 μ£Όμ†Œ, 즉 ν”„λ‘œκ·Έλž¨μ˜ 첫 물리 μ£Όμ†Œλ₯Ό μ €μž₯ν•˜λŠ” μ…ˆμ΄κ³ ,
논리 μ£Όμ†ŒλŠ” ν”„λ‘œκ·Έλž¨μ˜ μ‹œμž‘μ μœΌλ‘œλΆ€ν„° λ–¨μ–΄μ§„ 거리인 μ…ˆμž…λ‹ˆλ‹€.

3. λ©”λͺ¨λ¦¬ 보호 기법.

λ©”λͺ¨μž₯ ν”„λ‘œκ·Έλž¨μ˜ 물리 μ£Όμ†Œκ°€ 1000λ²ˆμ§€λΆ€ν„° 1999λ²ˆμ§€, 인터넷 λΈŒλΌμš°μ € ν”„λ‘œκ·Έλž¨μ˜ 물리 μ£Όμ†Œκ°€ 2000λ²ˆμ§€λΆ€ν„° 2999λ²ˆμ§€, κ²Œμž„ ν”„λ‘œκ·Έλž¨μ˜ 물리 μ£Όμ†Œκ°€ 3000λ²ˆμ§€λΆ€ν„° 3999λ²ˆμ§€λΌκ³  κ°€μ •ν•΄ λ³΄κ² μŠ΅λ‹ˆλ‹€.

λ§Œμ•½ λ©”λͺ¨μž₯ ν”„λ‘œκ·Έλž¨ λͺ…λ Ήμ–΄ 쀑 β€˜(논리 μ£Όμ†Œ) 1500λ²ˆμ§€μ— 숫자 100을 μ €μž₯ν•˜λΌβ€™μ™€ 같은 λͺ…λ Ήμ–΄κ°€ μžˆλ‹€λ©΄ 숫자 100은 μ–΄λ–€ 물리 μ£Όμ†Œμ— μ €μž₯λ κΉŒμš”? 이 λͺ…λ Ήμ–΄λŠ” μ‹€ν–‰λ˜μ–΄λ„ μ•ˆμ „ν• κΉŒμš”?

ν˜Ήμ€ 인터넷 λΈŒλΌμš°μ € ν”„λ‘œκ·Έλž¨ λͺ…λ Ήμ–΄ 쀑 β€˜(논리 μ£Όμ†Œ) 1100λ²ˆμ§€μ˜ 데이터λ₯Ό μ‚­μ œν•˜λΌβ€™μ™€ 같은 λͺ…λ Ήμ–΄κ°€ μžˆλ‹€λ©΄ μ–΄λ–€ 물리 μ£Όμ†Œμ˜ 데이터가 μ‚­μ œλ κΉŒμš”? 이 λͺ…λ Ήμ–΄λŠ” μ‹€ν–‰λ˜μ–΄λ„ μ•ˆμ „ν• κΉŒμš”?

μœ„μ™€ 같은 λͺ…령어듀은 μ‹€ν–‰λ˜μ–΄μ„œλŠ” μ•ˆ λ©λ‹ˆλ‹€.
ν”„λ‘œκ·Έλž¨μ˜ 논리 μ£Όμ†Œ μ˜μ—­μ„ 벗어났기 λ•Œλ¬Έμž…λ‹ˆλ‹€.
μœ„ λͺ…령어듀이 μ‹€ν–‰λœλ‹€λ©΄ λ©”λͺ¨μž₯ ν”„λ‘œκ·Έλž¨ λͺ…λ Ήμ–΄λŠ” 애꿏은 인터넷 λΈŒλΌμš°μ € ν”„λ‘œκ·Έλž¨μ— 숫자 10을 μ €μž₯ν•˜κ³ , 인터넷 λΈŒλΌμš°μ € ν”„λ‘œκ·Έλž¨ λͺ…λ Ήμ–΄λŠ” μžμ‹ κ³ΌλŠ” μ „ν˜€ κ΄€λ ¨ μ—†λŠ” κ²Œμž„ ν”„λ‘œκ·Έλž¨ 정보λ₯Ό μ‚­μ œν•©λ‹ˆλ‹€.

μ΄λ ‡κ²Œ λ‹€λ₯Έ ν”„λ‘œκ·Έλž¨μ˜ μ˜μ—­μ„ μΉ¨λ²”ν•  수 μžˆλŠ” λͺ…λ Ήμ–΄λŠ” μœ„ν—˜ν•˜κΈ° λ•Œλ¬Έμ— 논리 μ£Όμ†Œ λ²”μœ„λ₯Ό λ²—μ–΄λ‚˜λŠ” λͺ…λ Ήμ–΄ 싀행을 λ°©μ§€ν•˜κ³  μ‹€ν–‰ 쀑인 ν”„λ‘œκ·Έλž¨μ΄ λ‹€λ₯Έ ν”„λ‘œκ·Έλž¨μ— 영ν–₯을 λ°›μ§€ μ•Šλ„λ‘ λ³΄ν˜Έν•  방법이 ν•‘μš”ν•©λ‹ˆλ‹€.

μ΄λŠ” ν•œκ³„ λ ˆμ§€μŠ€ν„°(limit register) λΌλŠ” λ ˆμ§€μŠ€ν„°κ°€ λ‹΄λ‹Ήν•©λ‹ˆλ‹€.

베이슀 λ ˆμ§€μŠ€ν„°κ°€ μ‹€ν–‰ 쀑인 ν”„λ‘œκ·Έλž¨μ˜ κ°€μž₯ μž‘μ€ 물리 μ£Όμ†Œλ₯Ό μ €μž₯ν•œλ‹€λ©΄, ν•œκ³„ λ ˆμ§€μŠ€ν„°λŠ” 논리 μ£Όμ†Œμ˜ μ΅œλŒ€ 크기λ₯Ό μ €μž₯ν•©λ‹ˆλ‹€.

즉, ν”„λ‘œκ·Έλž¨μ˜ 물리 μ£Όμ†Œ λ²”μœ„λŠ” 베이슀 λ ˆμ§€μŠ€ν„° κ°’ 이상, 베이슀 λ ˆμ§€μŠ€ν„° κ°’ + ν•œκ³„ λ ˆμ§€μŠ€ν„° κ°’ 미만이 λ©λ‹ˆλ‹€.

CPUκ°€ μ ‘κ·Όν•˜λ €λŠ” 논리 μ£Όμ†ŒλŠ” ν•œκ³„ λ ˆμ§€μŠ€ν„°κ°€ μ €μž₯ν•œ 값보닀 μ»€μ„œλŠ” μ•ˆ λ©λ‹ˆλ‹€.
ν•œκ³„ λ ˆμ§€μŠ€ν„°λ³΄λ‹€ 높은 μ£Όμ†Œ 값에 μ ‘κ·Όν•˜λŠ” 것은 κ³§ ν”„λ‘œκ·Έλž¨μ˜ λ²”μœ„μ— λ²—μ–΄λ‚œ λ©”λͺ¨λ¦¬ 곡간에 μ ‘κ·Όν•˜λŠ” 것과 κ°™λ”” λ•Œλ¬Έμž…λ‹ˆλ‹€.

베이슀 λ ˆμ§€μŠ€ν„°μ— 100, ν•œκ³„ λ ˆμ§€μŠ€ν„°μ— 150이 μ €μž₯λ˜μ–΄ μžˆλ‹€κ³  ν•΄ λ΄…μ‹œλ‹€.
μ΄λŠ” 물리 μ£Όμ†Œ μ‹œμž‘μ μ΄ 100λ²ˆμ§€, ν”„λ‘œκ·Έλž¨μ˜ 크기(논리 μ£Όμ†Œμ˜ μ΅œλŒ€ 크기)λŠ” 150μž„μ„ μ˜λ―Έν•©λ‹ˆλ‹€.
λ”°λΌμ„œ 이 ν”„λ‘œκ·Έλž¨μ€ 150λ²ˆμ§€λ₯Ό λ„˜μ–΄μ„œλŠ” 논리 μ£Όμ†Œλ₯Ό κ°€μ§ˆ 수 μ—†μŠ΅λ‹ˆλ‹€.

μ΄λ²ˆμ—λŠ” 베이슀 λ ˆμ§€μŠ€ν„°μ— 1500, ν•œκ³„ λ ˆμ§€μŠ€ν„°μ— 1000이 μ €μž₯λ˜μ–΄ μžˆλ‹€κ³  ν•΄ λ΄…μ‹œλ‹€.
μ΄λŠ” λ¬Όλ¦¬μ£Όμ†Œ μ‹œμž‘μ μ΄ 1500λ²ˆμ§€, ν”„λ‘œκ·Έλž¨ ν¬κΈ°λŠ” 1000μž„μ„ μ˜λ―Έν•©λ‹ˆλ‹€.
λ”°λΌμ„œ 이 ν”„λ‘œκ·Έλž¨μ€ 1000λ²ˆμ§€λ₯Ό λ„˜μ–΄μ„œλŠ” 논리 μ£Όμ†Œλ₯Ό κ°€μ§ˆ 수 μ—†μŠ΅λ‹ˆλ‹€.

CPUλŠ” λ©”λͺ¨λ¦¬μ— μ ‘κ·Όν•˜κΈ° 전에 μ ‘κ·Όν•˜κ³ μž ν•˜λŠ” 논리 μ£Όμ†Œκ°€ ν•œκ³„ λ ˆμ§€μŠ€ν„°λ³΄λ‹€ μž‘μ€μ§€λ₯Ό 항상 κ²€μ‚¬ν•©λ‹ˆλ‹€.
λ§Œμ•½ CPUκ°€ ν•œκ³„ λ ˆμ§€μŠ€ν„°λ³΄λ‹€ 높은 논리 μ£Όμ†Œμ— μ ‘κ·Όν•˜λ €κ³  ν•˜λ©΄ μΈν„°λŸ½νŠΈ(트랩)λ₯Ό λ°œμƒμ‹œμΌœ 싀행을 μ€‘λ‹¨ν•©λ‹ˆλ‹€.

μ΄λŸ¬ν•œ λ°©μ‹μœΌλ‘œ μ‹€ν–‰ 쀑인 ν”„λ‘œκ·Έλž¨μ˜ 독립적인 μ‹€ν–‰ 곡간을 ν™•λ³΄ν•˜κ³  ν•˜λ‚˜μ˜ ν”„λ‘œκ·Έλž¨μ΄ λ‹€λ₯Έ ν”„λ‘œκ·Έλž¨μ„ μΉ¨λ²”ν•˜μ§€ λͺ»ν•˜κ²Œ λ³΄ν˜Έν•  수 μžˆμŠ΅λ‹ˆλ‹€.

5. ν‚€μ›Œλ“œλ‘œ μ •λ¦¬ν•˜λŠ” 핡심 ν‚€μ›Œλ“œ

  • 물리 μ£Όμ†ŒλŠ” λ©”λͺ¨λ¦¬ ν•˜λ“œμ›¨μ–΄μƒμ˜ μ£Όμ†Œμ΄κ³ , 논리 μ£Όμ†ŒλŠ” CPU와 μ‹€ν–‰ 쀑인 ν”„λ‘œκ·Έλž¨μ΄ μ‚¬μš©ν•˜λŠ” μ£Όμ†Œμž…λ‹ˆλ‹€.
  • MMUλŠ” 논리 μ£Όμ†Œλ₯Ό 물리 μ£Όμ†Œλ‘œ λ³€ν™˜ν•©λ‹ˆλ‹€.
  • 베이슀 λ ˆμ§€μŠ€ν„°λŠ” ν”„λ‘œκ·Έλž¨μ˜ 첫 물리 μ£Όμ†Œλ₯Ό μ €μž₯ν•©λ‹ˆλ‹€.
  • ν•œκ³„ λ ˆμ§€μŠ€ν„°λŠ” μ‹€ν–‰ 쀑인 ν”„λ‘œκ·Έλž¨μ˜ 논리 μ£Όμ†Œμ˜ μ΅œλŒ€ 크기λ₯Ό μ €μž₯ν•©λ‹ˆλ‹€.

컴퓨터 μ‹œμŠ€ν…œμ—μ„œ β€œλ¬Όλ¦¬ μ£Όμ†Œ(Physical Address)”와 β€œλ…Όλ¦¬ μ£Όμ†Œ(Logical Address)β€λŠ” λ©”λͺ¨λ¦¬ κ΄€λ¦¬μ˜ μ€‘μš”ν•œ κ°œλ…μž…λ‹ˆλ‹€.
각각은 λ‹€μŒκ³Ό 같은 의미λ₯Ό κ°€μ§€λ©°, μ‹œμŠ€ν…œμ˜ 효율적인 λ©”λͺ¨λ¦¬ 관리λ₯Ό μœ„ν•΄ μ‚¬μš©λ©λ‹ˆλ‹€.

1.1 논리 μ£Όμ†Œ(Logical Address)

  • μ •μ˜ : 논리 μ£Όμ†ŒλŠ” ν”„λ‘œκ·Έλž¨μ΄ μ‚¬μš©ν•˜λŠ” μ£Όμ†Œμž…λ‹ˆλ‹€.
    • 이 μ£Όμ†ŒλŠ” ν”„λ‘œκ·Έλž¨μ΄ μ‹€ν–‰λ˜λ©΄μ„œ μƒμ„±λ˜λŠ” μ£Όμ†Œλ‘œ, μ‚¬μš©μž λ˜λŠ” ν”„λ‘œκ·Έλž¨μ΄ μ ‘κ·Όν•  수 μžˆλŠ” μ£Όμ†Œμž…λ‹ˆλ‹€.
    • 이 μ£Όμ†ŒλŠ” 가상 λ©”λͺ¨λ¦¬ μ£Όμ†ŒλΌκ³ λ„ ν•˜λ©°, μ‹€μ œ λ©”λͺ¨λ¦¬μ˜ 물리적 μœ„μΉ˜μ™€λŠ” λ…λ¦½μ μž…λ‹ˆλ‹€.
  • λͺ©μ  : 논리 μ£Όμ†Œμ˜ μ£Όμš” λͺ©μ μ€ 각 ν”„λ‘œμ„ΈμŠ€κ°€ λ…λ¦½λœ μ£Όμ†Œ 곡간을 κ°–κ²Œ ν•˜μ—¬, ν”„λ‘œμ„ΈμŠ€κ°„μ˜ λ©”λͺ¨λ¦¬ μΆ©λŒμ„ λ°©μ§€ν•˜κ³  λ³΄μ•ˆμ„ κ°•ν™”ν•˜λŠ” 데 μžˆμŠ΅λ‹ˆλ‹€.
    • λ˜ν•œ, ν”„λ‘œκ·Έλž˜λ°μ„ λ‹¨μˆœν™”μ‹œν‚€κ³  λ©”λͺ¨λ¦¬ 관리λ₯Ό 더 μœ μ—°ν•˜κ²Œ λ§Œλ“­λ‹ˆλ‹€.

1.2 물리 μ£Όμ†Œ(Physical Address)

  • μ •μ˜ : 물리 μ£Όμ†ŒλŠ” λ©”λͺ¨λ¦¬ μž₯치 λ‚΄μ˜ μ‹€μ œ μœ„μΉ˜λ₯Ό κ°€λ¦¬ν‚€λŠ” μ£Όμ†Œμž…λ‹ˆλ‹€.
    • 이 μ£Όμ†ŒλŠ” μ‹œμŠ€ν…œμ˜ λ©”λͺ¨λ¦¬ 관리 μœ λ‹›(Memory Management Unit, MMU)에 μ˜ν•΄ μ‚¬μš©λ˜λ©°, μ‹€μ œ RAMμ—μ„œ 데이터λ₯Ό μ°ΎλŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€.
  • λͺ©μ  : 물리 μ£Όμ†ŒλŠ” μ‹œμŠ€ν…œμ˜ λ©”λͺ¨λ¦¬λ₯Ό 효율적으둜 ν• λ‹Ήν•˜κ³  κ΄€λ¦¬ν•˜λŠ” 데 ν•„μš”ν•©λ‹ˆλ‹€.
    • 이λ₯Ό 톡해 μ‹œμŠ€ν…œμ€ μ‹€μ œ λ©”λͺ¨λ¦¬ 곡간을 μ΅œμ ν™”ν•˜κ³ , ν•„μš”ν•œ 데이터와 ν”„λ‘œκ·Έλž¨μ„ μ •ν™•ν•œ μœ„μΉ˜μ—μ„œ μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

1.3 μ£Όμ†Œ λ³€ν™˜(Address Translation)

논리 μ£Όμ†Œμ—μ„œ 물리 μ£Όμ†Œλ‘œμ˜ λ³€ν™˜μ€ 주둜 λ©”λͺ¨λ¦¬ 관리 μœ λ‹›(MMU)에 μ˜ν•΄ μˆ˜ν–‰λ©λ‹ˆλ‹€.
이 과정은 λ‹€μŒκ³Ό 같은 λ°©λ²•μœΌλ‘œ 이루어 μ§‘λ‹ˆλ‹€.

  • 1. νŽ˜μ΄μ§€ ν…Œμ΄λΈ” : μš΄μ˜μ²΄μ œλŠ” νŽ˜μ΄μ§€ ν…Œμ΄λΈ”μ„ μ‚¬μš©ν•˜μ—¬ 논리 μ£Όμ†Œλ₯Ό 물리 μ£Όμ†Œλ‘œ λ§€ν•‘ν•©λ‹ˆλ‹€.
    • νŽ˜μ΄μ§€ ν…Œμ΄λΈ”μ„ 논리 μ£Όμ†Œλ₯Ό νŽ˜μ΄μ§€λ‘œ λ‚˜λˆ„κ³ , 각 νŽ˜μ΄μ§€κ°€ μ‹€μ œ λ©”λͺ¨λ¦¬μ˜ μ–΄λŠ 뢀뢄에 ν•΄λ‹Ήν•˜λŠ”μ§€λ₯Ό λ‚˜νƒ€λ‚΄λŠ” ν…Œμ΄λΈ”μž…λ‹ˆλ‹€.
  • 2. λ³€ν™˜ 쑰회 버퍼(TLB) : λ³€ν™˜ 쑰회 λ²„νΌλŠ” 자주 μ‚¬μš©λ˜λŠ” μ£Όμ†Œ 맀핑을 μΊμ‹œν•˜λŠ” μž‘μ€ λ©”λͺ¨λ¦¬λ‘œ, μ£Όμ†Œ λ³€ν™˜ 과정을 λΉ λ₯΄κ²Œ λ§Œλ“­λ‹ˆλ‹€.

  • 3. μ£Όμ†Œ λ³€ν™˜ κ³Όμ •
    • ν”„λ‘œμ„ΈμŠ€κ°€ 논리 μ£Όμ†Œλ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
    • MMUλŠ” 논리 μ£Όμ†Œμ˜ νŽ˜μ΄μ§€ 번호λ₯Ό ν™•μΈν•˜κ³ , ν•΄λ‹Ή νŽ˜μ΄μ§€ λ²ˆν˜Έκ°€ νŽ˜μ΄μ§€ ν…Œμ΄λΈ”μ— μžˆλŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€.
    • νŽ˜μ΄μ§€ ν…Œμ΄λΈ”μ—μ„œ ν•΄λ‹Ή νŽ˜μ΄μ§€μ˜ 물리 μ£Όμ†Œλ₯Ό μ°Ύμ•„ λ§€ν•‘ν•©λ‹ˆλ‹€.
    • 물리 μ£Όμ†Œλ₯Ό μ‚¬μš©ν•˜μ—¬ μ‹€μ œ λ©”λͺ¨λ¦¬μ—μ„œ 데이터λ₯Ό μ—‘μ„ΈμŠ€ν•©λ‹ˆλ‹€.

πŸ“ 정리

μ΄λŸ¬ν•œ μ£Όμ†Œ λ³€ν™˜ λ©”μ»€λ‹ˆμ¦˜μ€ λ©”λͺ¨λ¦¬ 보호, ν”„λ‘œμ„ΈμŠ€ 격리, λ©”λͺ¨λ¦¬ μ‚¬μš©μ˜ νš¨μœ¨μ„± 증가 등을 κ°€λŠ₯ν•˜κ²Œ ν•˜λ©°, λ³΅μž‘ν•œ ν˜„λŒ€μ˜ λ©€ν‹°νƒœμŠ€ν‚Ή ν™˜κ²½μ—μ„œ μ€‘μš”ν•œ 역할을 ν•©λ‹ˆλ‹€.

Q1. 물리 μ£Όμ†Œ(Physical Address)’와 β€˜λ…Όλ¦¬ μ£Όμ†Œ(Logical Address)’에 λŒ€ν•΄ μ„€λͺ…ν•΄ μ£Όμ‹œκ² μŠ΅λ‹ˆκΉŒ? 이 두 μ£Όμ†Œμ˜ κ°œλ…κ³Ό 차이점을 ꡬ체적으둜 말씀해 μ£Όμ‹œκ³ , μ–΄λ–»κ²Œ 논리 μ£Όμ†Œκ°€ 물리 μ£Όμ†Œλ‘œ λ³€ν™˜λ˜λŠ”μ§€ κ·Έ 과정에 λŒ€ν•΄μ„œλ„ μ„€λͺ…ν•΄ μ£Όμ„Έμš”.

  • 논리 μ£Όμ†ŒλŠ” ν”„λ‘œκ·Έλž¨μ΄ μ‚¬μš©ν•˜λŠ” μ£Όμ†Œλ‘œ, ν”„λ‘œκ·Έλž¨ μ½”λ“œμ— μ˜ν•΄ μ°Έμ‘°λ˜λŠ” μ£Όμ†Œμž…λ‹ˆλ‹€. μ΄λŠ” μš΄μ˜μ²΄μ œμ— μ˜ν•΄ κ΄€λ¦¬λ˜λ©°, ν”„λ‘œκ·Έλž¨μ΄ λ©”λͺ¨λ¦¬μ— λ‘œλ“œλ˜λŠ” μœ„μΉ˜μ™€ λ¬΄κ΄€ν•˜κ²Œ 일관성을 μœ μ§€ν•©λ‹ˆλ‹€. 즉, ν”„λ‘œκ·Έλž¨μ΄ λ©”λͺ¨λ¦¬μ˜ μ–΄λŠ μœ„μΉ˜μ— λ‘œλ“œλ˜λ“ μ§€ 간에 같은 논리 μ£Όμ†Œλ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 논리 μ£Όμ†ŒλŠ” 가상 λ©”λͺ¨λ¦¬ μ£Όμ†ŒλΌκ³ λ„ ν•˜λ©°, 이λ₯Ό 톡해 κ°œλ°œμžλŠ” μ‹€μ œ λ©”λͺ¨λ¦¬ ꡬ쑰λ₯Ό μ‹ κ²½ μ“°μ§€ μ•Šκ³  ν”„λ‘œκ·Έλž˜λ°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  • 물리 μ£Όμ†ŒλŠ” λ©”λͺ¨λ¦¬ μž₯치 λ‚΄μ˜ μ‹€μ œ 물리적 μœ„μΉ˜λ₯Ό κ°€λ¦¬ν‚΅λ‹ˆλ‹€. 즉, 물리 μ£Όμ†ŒλŠ” RAM λ‚΄μ˜ μ‹€μ œ λ°μ΄ν„°λ‚˜ λͺ…λ Ήμ–΄κ°€ μ €μž₯된 μœ„μΉ˜λ₯Ό λ‚˜νƒ€λ‚΄λ©°, λ©”λͺ¨λ¦¬ 관리 μœ λ‹›(MMU)에 μ˜ν•΄ 논리 μ£Όμ†Œλ‘œλΆ€ν„° λ³€ν™˜λ©λ‹ˆλ‹€.

  • 논리 μ£Όμ†Œμ—μ„œ 물리 μ£Όμ†Œλ‘œμ˜ λ³€ν™˜μ€ 주둜 λ©”λͺ¨λ¦¬ 관리 μœ λ‹›(MMU)을 톡해 μ΄λ£¨μ–΄μ§‘λ‹ˆλ‹€. 이 과정은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

      1. ν”„λ‘œμ„ΈμŠ€κ°€ μƒμ„±ν•˜λŠ” 논리 μ£Όμ†ŒλŠ” νŽ˜μ΄μ§€ λ²ˆν˜Έμ™€ μ˜€ν”„μ…‹μœΌλ‘œ κ΅¬μ„±λ©λ‹ˆλ‹€.
      1. νŽ˜μ΄μ§€ λ²ˆν˜ΈλŠ” νŽ˜μ΄μ§€ ν…Œμ΄λΈ”μ„ μ°Έμ‘°ν•˜μ—¬ ν•΄λ‹Ή νŽ˜μ΄μ§€κ°€ λ©”λͺ¨λ¦¬μ˜ μ–΄λŠ 물리적 μœ„μΉ˜μ— μžˆλŠ”μ§€ κ²°μ •ν•©λ‹ˆλ‹€. 이 νŽ˜μ΄μ§€ ν…Œμ΄λΈ”μ€ 운영 μ²΄μ œμ— μ˜ν•΄ κ΄€λ¦¬λ˜λ©°, 각 νŽ˜μ΄μ§€μ˜ 물리 μ£Όμ†Œλ₯Ό μ €μž₯ν•©λ‹ˆλ‹€.
      1. 물리 μ£Όμ†ŒλŠ” κ²°μ •λœ νŽ˜μ΄μ§€ μ‹œμž‘ μ£Όμ†Œμ— μ˜€ν”„μ…‹μ„ μΆ”κ°€ν•˜μ—¬ μ΅œμ’…μ μœΌλ‘œ κ²°μ •λ©λ‹ˆλ‹€.
      1. λ³€ν™˜ 쑰회 버퍼(TLB)λŠ” μ΄λŸ¬ν•œ λ³€ν™˜ 과정을 κ°€μ†ν™”ν•˜κΈ° μœ„ν•΄ 자주 μ‚¬μš©λ˜λŠ” μ£Όμ†Œ λ³€ν™˜μ„ μΊμ‹œν•©λ‹ˆλ‹€.
        • μ΄λŸ¬ν•œ λ³€ν™˜ 과정을 톡해 μ‹œμŠ€ν…œμ€ 효율적으둜 λ©”λͺ¨λ¦¬λ₯Ό κ΄€λ¦¬ν•˜λ©°, ν”„λ‘œμ„ΈμŠ€ κ°„ λ©”λͺ¨λ¦¬ 격리와 λ³΄μ•ˆμ„ μœ μ§€ν•  수 μžˆμŠ΅λ‹ˆλ‹€.