메모리 공간은 어떻게 쓰이고 있을까?

0️⃣1️⃣·2021년 5월 2일
0

면접 준비

목록 보기
5/11

프로세스의 메모리?

  • Code 영역 : 프로그램의 코드

  • Data 영역 : 전역적으로 초기화된 데이터

  • BSS 영역 : 전역적으로 초기화되지 않은 데이터

  • Heap 영역 : 런타임에 크기가 결정, 동적으로 할당되는 데이터

  • Stack 영역 : 컴파일 타임에 크기가 결정, 지역 변수, 매개 변수, 반환 주소 값

컴파일 타임과 런타임은 무엇일까?

  • 컴파일 타임 : 소스 코드를 실행 가능한 코드로 변환하는 시간

  • 런타임 : 실행 가능한 코드를 실행하는 시간

스레드의 메모리?

  • 하나의 프로세스에 한 개 이상의 스레드가 존재할 수 있음

  • 스레드는 Stack 영역만 독자적으로 갖고, 나머지는 다른 스레드들과 공유하고 있음

  • 스레드 세이프란, 다중의 스레드가 공유하는 리소스에 접근해도 실행 결과가 옳음을 의미

스택과 힙 영역은 어떻게 관리될까?

  • 스택 영역은 위에서부터 메모리를 할당

  • 힙 영역은 아래에서부터 메모리를 할당

  • 계속된 할당으로 한 영역에서 다른 영역을 침범하면 오버플로우 발생

0개의 댓글