프로세스 메모리 구조

프로세스 메모리 구조

프로세스 메모리 구조

프로세스란?

컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 말한다. – 위키백과

프로그램은 보조 기억 장치에 저장된 실행 파일이 되겠고, 해당 실행 파일을 실행하여 주 기억장치에 적재되는 순간 프로세스가 된다. 이 때 프로세스는 각 메모리 공간을 시스템으로부터 할당 받는다.

프로세스 메모리 구조

프로세스 메모리 구조
프로세스 메모리 구조

메모리는 크게 Code / Data / Heap / Stack 네 영역으로 구성되어 있으며 code 영역이 낮은 메모리 주소, stack 영역이 높은 메모리 주소를 갖고 있다.

Code segment

작성된 코드가 컴파일 후 기계어로 저장되어 있는 공간
해당 명령어를 하나씩 가져와서 CPU가 처리한다.

Data segment

전역 변수 등 프로그램이 사용하는 데이터를 저장하는 공간
초기화 되지 않은 변수는 BSS(Block Stated Symbol)영역에 저장되고, 초기화 된 변수는 Data 영역에 저장

Heap segment

프로그래머가 필요할 때마다 사용하는 메모리 영역이며 유일하게 런타임에 결정
나머지 영역은 컴파일타임 때 결정

Stack segment

호출된 함수의 수행을 마치고 복귀할 주소 및 데이터(지역변수, 매개변수, 리턴 값 등)를 임시로 저장하는 공간

✓ 커널은 하드웨어와 프로세스를 잇는 핵심 인터페이스이며 위와 같은 구조를 따르지만 힙 영역이 존재하지 않는다.(pid == 1)

%d 블로거가 이것을 좋아합니다: