프로세스 메모리, 런타임 메모리

(2024-05-21)

S/W 메모리, Heap Memory, 힙 메모리, Stack Memory, 스택 메모리, 스택 , 메모리


1. 런타임 메모리 또는 프로세스 메모리  :  (S/W 관점, Runtime 실행 차원기억장치 영역)

  ㅇ `프로그램의 실행 관점` 즉, `프로세스`에서,
     - 메모리데이터를 일시적으로 기억해두는 영역

  ㅇ 각 프로세스는 자신 만의 주소 공간을 갖음
     - 따라서, 그에 상응하는 메모리를 필요로 함   ☞ 가상 메모리, 사용자공간/커널공간 참조

  ㅇ 한편, 프로그램의 실행 관점에서, 기억 공간을 어떻게 연결 사용하는가에 대한 관점 둘(2)
     - `참조`  :  주소변수 간의 관계
        . 메모리 내 위치 참조를 위해, `주소`라는 수치화된 값을 이용하며,
        . 수치로된 `주소`를 기억하기 어려워, 그에 이름을 붙인 `변수`를 사용하게 하는 것
     - `바인딩`  :  변수와 기억장소 간의 관계
        . 변수에 기억장소의 할당은, 특정 메모리 공간바인딩하는 것이며,
        . 이는, 변수,프로시저,상수 등의 이름(식별자)을 실제 기억되는 어떤 속성(값)과 연관짓는 것 


2. 런타임 메모리 또는 프로세스 메모리의 할당 영역 구분

     

  ㅇ 영구 메모리 (Permanent)  :  정적인 메모리  (전역 영역)
     - 텍스트 영역 (코드 영역) : 프로그램 명령어, 함수 등이 저장되는 영역 (실행 코드)
        . 적재된 프로그램 코드
           .. 여러 프로세스가 동일 프로그램으로 실행 가능하므로,
           .. 텍스트 섹션은 공유될 수 있음
     - 데이터 영역 (데이터 섹션) : 전역 변수, 정적 변수 등이 저장되는 영역
        . 초기화되는 영역(data)과 초기화되지 않는 영역(BSS)으로 구분됨

     * 특징
        . 고정 크기이므로, 실행 시간 동안 크기가 변하지 않음      
     * 한편, 
        . 과거, 완전히 정적으로 만 할당되는 대표적인 언어의 例) : FORTRAN 
        . 현재, 대부분의 언어는 상황에 따라, 정적 할당, 동적 할당이 적절히 이루어짐

  ㅇ 스택 메모리 (Stack Memory), 스택 섹션 (Stack Section)  :  동적 자동 메모리
     - 지역 변수, 함수 호출, 함수 매개 변수 등에 관여되는 자동 변수가 저장되는 영역
        . 블록 내 생성된 지역 변수를 처리하기 위해 사용됨
        . 함수 호출 및 리턴(종료) 마다, 크기가 늘어나고 줄어듬
           .. 함수 호출시에, 활성 레코드가 이 곳에 푸시됨
           .. 함수가 종료되면, 자동으로 할당된 공간이 소멸됨
        . 例) 함수 매개변수, 복귀 주소, 지역 변수 등 임시 자료   ☞ 활성 레코드 참조
        . C 언어 例) 지역 변수, 배열, 구조체 등
     - 통상, 주소 공간 상에서, 높은 주소(bottom)에서 낮은 주소(top) 순으로 할당 됨
        . 비록, 아래로 커지나, 관례상 아래쪽 끝을 꼭대기(top)라고 칭함
  
  ㅇ  메모리 (Heap Memory),  섹션 (Heap Section)  :  동적 메모리 할당
     - 주로, 어플리케이션운영체제로부터 미리 할당 받는 메모리 영역
        . 그 영역 내, 어플리케이션이 사용 가능한 일정한 메모리 공간
     - 즉, 프로그램 실행 중에, 동적으로 할당되는 메모리 영역
     - 통상, 주소 공간 상에서, 위쪽으로 확장됨
     - 例) C 언어에서 볼 때, malloc(), calloc(), free() 등에 의해 수행됨

  ㅇ 자유 영역 (Free Memory)   :  동적 메모리 해제 (미 할당 영역)
     - 필요에 따라 메모리를 할당할 수 있도록 미리 준비해두는 메모리 풀(memory pool)
        . 결국, 에 의해 할당되지 않은 자유 영역으로써,
                그 크기가 할당과 해제에 의해 자유롭게 변할 수 있음

     * 운영체제,컴파일러 등이 자동으로 관리해주는 동적 자동 메모리(스택 영역)와 달리, 
       프로그래머가 직접 관리 가능한 자유 메모리 영역

[메모리 관리]1. 참조의 지역성 (계층구조)   2. 캐쉬 메모리   3. CAM   4. MMU   5. 가상 메모리   6. 런타임 메모리   7. 메모리 맵핑  

[프로세스]1. 프로세스   2. 선점형   3. 병행 프로세스   4. 멀티 태스킹   5. 스레드   6. 런타임 메모리  

  1. Top (분류 펼침)      :     1,594개 분류    6,533건 해설

"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"
     [정보통신기술용어해설]       편집·운영 (차재복)