프로세스 주소 공간

김민영·2023년 1월 27일
0

CS 스터디

목록 보기
15/32
  • 프로세스 : 운영체제가 자원을 할당하는 단위
  • 프로세스 주소 공간 : 메모리를 할당받은 프로세스가 자신만의 방법으로 메모리 공간을 관리하는 구조
    • 한정된 메모리를 효율적으로 사용하기 위함

종류

Stack 영역

  • 함수의 호출에 관한 지역변수, 매개변수가 저장되는 영역
  • 함수의 호출과 함께 Stack 영역 값 할당. 함수 호출 완료 시 소멸
  • 메모리 높은 주소에서 낮은 주소 방향으로 할당
  • 재귀 함수가 너무 깊게 호출되거나, 지역 변수가 많으면 stack overflow 에러 발생

Heap 영역

  • 런타임의 크기가 결정되는 영역
  • 사용자에 의해 공간이 동적으로 할당, 해제
  • 참조형 데이터(ex. 클래스) 등의 데이터가 할당
  • 메모리 낮은 주소에서 높은 주소의 방향으로 할당

Data 영역

  • 전역변수, static 변수 등 프로그램이 사용할 수 있는 데이터 저장
  • 어떤 프로그램에 전역/static 변수를 참조하는 코드가 있으면, 컴파일 후에 data 영역을 참조함.
  • 프로그램 시작과 함께 할당, 종료시 소멸
  • 초기화되지 않은 변수가 있으면, BSS 영역에 저장

Text (Code) 영역

  • 프로그램이 실행될 수 있도록 CPU가 해석 가능한 기계어 코드가 저장된 공간.
  • 프로그램은 수정되면 안되므로 ReadOnly 상태

멀티스레드

  • Stack 영역을 제외한 나머지 영역은 다른 스레드와 공유
profile
노션에 1차 정리합니당 - https://cream-efraasia-f3c.notion.site/4fb02c0dc82e48358e67c61b7ce8ab36?v=

0개의 댓글