반응형
📍 프로세스
프로세스란 실행되고 있는 프로그램으로, 각 메모리 공간을 시스템으로부터 할당받습니다.
프로세스의 주소 공간은 코드, 데이터, 스택, 힙 네 가지 영역으로 구성됩니다. 이러한 주소 공간을 가상 메모리라고 부릅니다.
﹥ 코드(Code)
코드 영역은 실행 파일을 구성하는 명령어들이 올라가는 메모리 영역으로 함수, 제어문, 상수 등이 지정됩니다.
컴파일 시에 결정되며 Read-Only 영역이기 때문에 코드를 함부로 변경할 수 없고 변경 시 오류를 발생시킵니다.
﹥ 데이터(Data)
프로그램이 구동되는 동안 항상 접근 가능한 변수가 저장되는 영역입니다. 데이터 영역은 프로그램의 시작과 함께 할당되며, 프로그램이 종료되면 소멸합니다. 실행 중에 전역 변수가 변경될 수 있기 때문에 Read-Write로 지정되어있습니다.
﹥ 스택(Stack)
함수의 호출과 관계되는 지역 변수와 매개변수가 저장되는 영역입니다.
함수의 호출과 함께 할당되며, 함수의 호출이 완료되면 소멸합니다.
컴파일 시에 크기가 결정되기 때문에 무한히 할당할 수 없으며, 재귀 함수가 너무 깊게 호출되거나 함수가 지역변수를 많이 가지고 있으면 stack overflow가 발생할 수 있습니다.
﹥ 힙(Heap)
런타임 시 크기가 결정되며, 사용자에 의해 메모리 공간이 동적으로 할당되고 해제됩니다. 메모리 주소 값에 의해서만 참조되고 사용됩니다.
References
반응형
'🗂 Study > 운영체제' 카테고리의 다른 글
[OS] 시스템 콜 🔔 (0) | 2021.09.07 |
---|---|
[OS] 인터럽트 (Interrupt) 🚨 (0) | 2021.08.25 |
[OS] 프로세스(Process) 와 쓰레드(Thread) (0) | 2021.08.13 |
댓글