어떤 프로그램이든 프로세스가 되어 메모리에 적재되어야 실행이 가능하다. 메모리는 중요한 공간이고 한정된 메모리를 다중 프로그래밍 환경에서 이용하기 위해서는 여러 프로세스가 함께 메모리를 사용하므로 효율적인 관리가 필요하다.
메모리 관리자를 통해 메모리 관리가 이뤄지고, 메모리 관리 장치와 OS 관리 모듈과 함께 존재한다.
적재 정책
은 디스크에서 메모리로 프로세스를 언제 가져와야 할지를 정하는 것
배치 정책
은 디스크에서 메모리로 가져온 프로세스를 어느 위치에 저장할 것인지 정하는 것이다.
대치 정책
은 메모리가 충분하지 않을 때 적재된 프로세스 중 제거할 프로세스를 결정하는 방법니다.
메모리 주소는 크게 두 가지로 나눌 수 있다.
논리적 주소는 가상 주소라고도 하며 프로그래머가 작성하는 목적 코드가 저장된 공간이나 프로그램에서 사용되는 배열, 구조체 등이 이에 해당함
물리적 주소는 논리적 주소에 대응되는 실제 주소로 메모리 칩이나 디스크 공간에서 만든다. 논리적 주소와 물리적 주소 변환은 MMU에서 관리한다.
MMU는 CPU에서 논리적 주소를 받아 고정 분할, 동적 분할, 페이징, 세그멘테이션을 이용한 변환 방법을 이용하여 물리적 주소로 변환 시킨다.
속성과 개체 사이 또는 연산과 기호 사이와 같은 연관을 말함
변수에 변수와 관련된 속성을 연관 시키는 것
값들이 확정되어 구속된 상태
프로그램에서 변수들이 갖는 속성이나 값이 완전히 결정되는 시간.
원시 프로그램을 번역할 때 이루어지며, Data, Stack 등 메모리에 들어갈 변수가 정해짐.
정적 바인딩, 변수의 이름 또는 형과 프로그램 문장 구조
고레벨 언어를 Binary File, Obj 파일로 전환
변수를 메모리에 적재할 때 운영 체제에서 메모리로 프로그램을 불러와 실행한다.
프로그램을 실행할 때 이루어지며 변수의 값을 확정
변수의 기억 장소 할당
실행 시간 전에 일어나고, 실행 중에 변하지 않는 상태로 유지하는 바인딩
실행 시간 중에 일어나거나 프로그램 실행 과정에서 변경되는 것
기억 장소 할당 : 변수에 메모리 공간을 바인딩하는 과정
메모리에 적재될 크기를 미리 아는 것
Run-time 에 각 타입에 맞는 메모리 영역에 할당
외부 환경에 의해 변화하여 크기를 미리 알 수 없는 것
명시적인 명령어에 의해 실행되는 할당