1

1

VAS(가상 주소 공간)에 대해 배우기 시작했는데 몇 가지 질문이 있습니다.

  1. 아키텍처(32비트 및 64비트)에 따라 각 프로세스에 대해 몇 개의 VAS가 생성됩니까?
  2. 프로세스별 VAS는 하드디스크에 생성되나요? 그렇다면 공간이 부족하면 어떻게 될까요?
  3. VAS에는 텍스트, 데이터, BSS 등 어떤 콘텐츠가 저장되나요?

답변1

  1. 각 프로세스는 아키텍처 및 구성별 최대값까지 필요한 만큼의 가상 주소 공간을 확보합니다. 할당된 메모리 양은 다음 명령을 사용하여 조정할 수 있습니다.brk그리고sbrk, 그리고mmap.

    현재 x86-64에서 사용 가능한 최대값은 다음과 같습니다.128TiB 4레벨 페이지 테이블, 64PiB 5레벨 페이지 테이블. 32비트 x86에서 사용 가능한 최대 값은 다음에 따라 다릅니다.VM 분할 구성;각 프로세스의 크기는 1GiB에서 3GiB 사이입니다.

  2. 아니요.

  3. 각 프로세스의 주소 공간에는 프로세스가 메모리에 액세스하는 데 필요한 모든 것이 포함되어 있습니다. 물리적 메모리에 매핑하지 않고도 주소 공간을 할당할 수 있습니다.

답변2

1

x86/x86-64의 경우와 같이 아키텍처에 따라 다를 수 있습니다.

  • 32비트는 2GB 또는 3GB로 제공됩니다.
  • 64비트 커널에서 32비트 애플리케이션의 경우 4GB
  • 64비트 애플리케이션(64비트 커널)의 용량은 2⁶³GB(많습니다)입니다.

2

아니요

모든 것: 텍스트, 데이터, BSS 등 이는 실제 메모리가 할당된다는 의미는 아닙니다. 때때로 지연은 RAM에 할당되고, 때로는 하드웨어에 매핑되고, 때로는 계산에 매핑됩니다.

관련 정보