← 질문 목록
#176깊이 0

프로세스 주소 공간을 나누는 이유는 무엇인가?

운영체제기초메모리

프로세스 간의 메모리 침범을 막고 자원 낭비를 줄이기 때문이다.

높은 주소낮은 주소
  1. 스택아래로 자랍니다

    지역 변수, 함수 호출 정보

  2. 위로 자랍니다

    동적 할당 영역

  3. 데이터

    전역 변수, 정적 변수

  4. 코드

    프로그램 실행 파일의 기계어

코드 영역은 읽기 전용으로 설정하여 프로그램 실행 파일의 내용을 그대로 올린다. 데이터 영역은 프로그램 시작부터 종료까지 유지되는 상태를 저장한다.

런타임에 크기가 결정되는 동적 메모리 영역이다. 스택스레드마다 하나씩 있다. 함수를 부를 때마다 그 위에 프레임이 쌓이고 돌아올 때 걷힌다. 사라지는 것은 스택이 아니라 프레임이다.

두 영역은 서로 반대 방향으로 성장하며 충돌을 방지한다. 이렇게 영역을 나누면 메모리 보호와 가상 메모리 관리가 용이해진다.

추천 꼬리질문

0/300

적은 내용은 AI 학습에 쓰일 수 있습니다. 이름이나 연락처는 넣지 말아 주세요.

관련 질문

프로세스 주소 공간을 나누는 이유는 무엇인가?