32비트 ARM에서의 user space vs kernel space

user space 크기 선택

커널을 빌드시 3가지의 VMSPLIT 옵션에 따라 user space가 달라진다.

  • 주로 PC 리눅스에서는 3G 옵션을 사용하고,
  • 임베디드 리눅스에서는 3G 또는 2G 옵션을 사용한다.
  • 1G 옵션은 거의 사용되지 않는다.

user space를 크게할 때의 장단점

  • 장점: 사용자 application에서 사용할 수 있는 가상 메모리 공간이 더 커진다.
  • 단점: NORMAL ZONE의 공간이 작아 HIMEM ZONE의 사용이 많아져 메모리 access의 속도가 저하된다.

vmsplit

 

메모리 공간 할당은 아래 두 시스템에서 추가적으로 이해가 필요하지만 32bit ARM만 이해하기로 한다.

  • 32bit ARM with LPAE
  • 64bit ARM

 

¹) NORMAL ZONE: kernel space에 존재하며, 물리 메모리의 direct 매핑이 가능한 영역.

²) HIMEM ZONE: kernel space에는 선택한 일부 공간만 존재하며, 물리 메모리의 direct 매핑을 할 수 없어 반드시 일부를 선택하여 사용할 수 있다.

4 thoughts to “32비트 ARM에서의 user space vs kernel space”

    1. arm 64bit 커널의 경우 커널과 유저 가상 주소의 크기는 같게 설계하였습니다.
      그리고 그 크기는 컴파일 타임에 결정되며 최소 매핑 단위(4K, 16K, 64K)별로 다음과 같은 크기를 지원합니다.
      – 64G (16K Page, 36-bit)
      – 512G (4K Page, 39-bit)
      – 4T (64K Page, 42-bit)
      – 128T (16K, 47-bit)
      – 256T (4K, 48-bit)
      – 256T (16K, 48-bit)
      – 256T (64K, 48-bit)
      – 4P (64K, 52-bit)

      더 자세한 내용은 다음 url을 참고하시기 바랍니다.
      http://jake.dothome.co.kr/pt64/

      감사합니다.

댓글 남기기