개요
- 다중프로그래밍 환경에서 여러 프로세스가 처리장치를 공유함으로써 CPU 이용률 및 사용자 작업의 처리 속도를 향상시켰는데, 이를 위해서는 기억장치 속에 여러 개의 프로세스들이 적재되어 있어야 함
- 초기 컴퓨터 시스템에서는 주기억장치가 매우 비싼 장치였으므로 효율적으로 이용하고 관리하고자 하는 노력
-> 기억장치의 효율적인 사용을 위한 관리 기법
- 프로그램과 데이터는 직접 실행되거나 참조되기 위하여 주기억장치 내에 있어야 함
- SSD(Solid State Drive)
- 자기 디스크가 아닌 반도체 메모리 내장함
- 처리 속도 빠르고 소음이 없고 전력 소모량이 적은 플래시 메모리기반의 모델
주소 바인딩(Address binding)
- 주소 바인딩(address binding)
- 논리적 주소(logical address)를 가진 프로그램이 실행되기 위해서 물리적 주소로 사상(mapping)되는 것
-> 기억장치관리기(Memory Management Unit)에 의해 수행
- 주소 바인딩 종류(바인딩 시점에 따라)
- 컴파일 시간(compile time) 바인딩
- 프로세스가 적재될 기억장치의 위치를 미리 알 수 있다면 컴파일러는 절대 코드를 생성
- 실행 시 위치가 바뀌면 다시 컴파일 해야 함
- 적재 시간(load time) 바인딩
- 적재될 위치를 컴파일러가 알지 못하면 컴파일러는 일단 이진 코드를 재배치 가능 코드로 만듦
- 주소 바인딩은 프로그램이 기억장치에 적재되는 시간에 적재기(loader)에 의해 이루어짐
- 실행 시간(execution time) 바인딩
- 프로세스가 실행되는 동안에 기억장치의 한 세그먼트에서 다른 세그먼트로 옮겨질 경우에 주소 바인딩은 실행시간에 이루어짐
논리적 주소와 물리적 주소
- 중앙처리장치가 생성하는 주소를 논리적 주소(가상 주소)라 하며, 기억장치가 취급하는 주소를 물리적 주소(메모리의 실제 주소)라 한다.
- 실행시간 바인딩 기법의 경우에는 논리적 주소와 물리적 주소가 다름
- 이 때 논리적 주소를 가상주소(virtual address)라 함
- 기억 장치 관리기(MMU : Memory Management Unit)
- 재배치(relocation) 레지스터는 세그먼트의 시작 주소를 가지고 있으며, 논리적 주소가 들어올 때마다 모든 주소에 재배치 레지스터가 가지고 있는 값을 더해서 물리적 주소를 만듦
- 논리적 주소 -> 물리적 주소