[CS] 메모리

kimhayeon·2024년 6월 8일
0

CS

목록 보기
1/5

메모리

메모리는 커널 영역사용자 영역으로 나뉜다.
운영체제의 핵심 기능은 커널 영역에 적재된다.
응용 프로그램은 사용자 영역에 적재된다.

프로세스

응용 프로그램을 메모리에 적재하고 실행할 때 그 프로그램은 프로세스가 된다.

프로세스의 메모리 영역

프로세스는 사용자 영역에서 크게 코드 영역, 데이터 영역, 힙 영역, 스택 영역으로 나뉘어 저장된다.

코드(텍스트) 영역

  • CPU가 실행할 기계어로 이루어진 명령어가 저장된다.
  • 읽기 전용(read-only) 공간

데이터 영역

  • 전역 변수 같은 프로그램이 실행되는 동안 유지할 데이터가 저장된다.

힙 영역

  • 프로그래머가 할당하고 해제해야 한다.
  • Java, JavaScript의 경우 가비지 컬렉터에 의해 청소된다.
  • 런타임에 필요한 만큼 메모리를 할당받을 수 있다.

스택 영역

  • 함수가 호출될 때 스택 프레임 생성되어 지역 변수와 매개변수가 저장되고, 호출이 완료되면 소멸된다.
  • 컴파일 타임에 메모리 크기가 결정된다.

코드 영역과 데이터 영역은 크기가 변하지 않는 정적 할당 영역이다.
힙 영역과 스택 영역은 프로세스 실행 과정에서 크기가 변할 수 있는 동적 할당 영역이다.

0개의 댓글