메모리 관리
# Logical vs. Physical Address
Logical address (=virtual address //가상 주소)
• 프로세스마다 독립적으로 가지는 주소 공간
• 각 프로세스마다 0번지부터 시작
• CPU가 보는 주소는 logical address임
Physical address
• 메모리에 실제 올라가는 위치
** 주소 바인딩: 주소를 결정하는 것 : Symbolic Address Logical Address Physical address
*Symbolic Address : 함수, 변수의 이름을 이용하여 접근하는 방식을 뜻함/ 이 화살표!! 이 시점이 언제인가? (next page)
# 주소 바인딩 (Address Binding)
Compile time binding
물리적 메모리 주소(physical address)가 컴파일 시 알려짐
시작 위치 변경 시 재컴파일
컴파일러는 절대 코드(absolute code) 생성
Load time binding
Loader의 책임하에 물리적 메모리 주소 부여
컴파일러가 재배치가능코드(relocatable code)를 생성한 경우 가능
Execution time binding (= Run time binding)
수행이 시작된 이후에도 프로세스의 메모리 위치를 옮길 수 있음
CPU가 주소를 참조할 때마다 binding 점검 (address mapping table)
하드웨어적인 지원이 필요
(e.g., base and limit registers, MMU).
>>CPU는 logical address를 바라보고 있음!
# Memory-Management Unit (MMU)
+ MMU (Memory-Management Unit) // 여기서 실제 주소로 바뀜
logical address(CPU에서 발생한 주소)를 physical address(MMU를 통해 바뀐 주소)로 매핑해 주는 Hardware device
+ MMU scheme
사용자 프로세스가 CPU에서 수행되며 생성해내는 모든 주소값에 대해 base register (=relocation register)의 값을 더한다
+ user program
logical address만을 다룬다
실제 physical address를 볼 수 없으며 알 필요가 없다
'about COMPUTER > 컴퓨터 시스템' 카테고리의 다른 글
# 10. CPU 스케줄링 (0) | 2020.11.05 |
---|---|
# 09. 프로세스 관리 (0) | 2020.10.20 |
# 08. 프로세스 (0) | 2020.10.20 |
# 07. 하드웨어와 운영체제(2) / 메모리 관리 (0) | 2020.10.15 |
# 06. 하드웨어와 운영체제(1) / 컴퓨터 시스템 구조 (0) | 2020.10.15 |
댓글