>

x86에 대해 읽었습니다. 세그먼트 크기가 최대 4GB (32 비트) 아키텍처 일 수 있다고 언급했습니다.

세그먼트 크기가 한계를 넘어서는 것을 알고 있거나 경험 한 사람이 있습니까? 또는 실생활에서 세그먼트 크기의 한계는 무엇입니까?  과 최대 한계를 초과하면 다른 크기의 세그먼트로 나뉘어지며 세그먼트 간 전환은 어떻게 관리됩니까? 둘 이상의 세그먼트를 수용하기 위해 RAM이 작은 경우

  • 답변 # 1

    운영 체제는 할당 테이블에서 처리 할 수있는 것보다 더 많은 메모리를 사용하지 않습니다.

    32 비트로 표현할 수있는 최대 바이트 수는 4 294 967 296이므로 메모리를 4GB로 제한합니다. 64 비트 시스템에서 최대 값은 18 446 744 073 709 551 616 바이트 (16 777 216 TB)로 수십 년 동안 문제가되지 않습니다. 64 비트 시스템의 메모리 제한은 하드웨어가 능동적으로 처리 할 수있는 메모리 양에 따라 다릅니다.

    최대 파일 크기는 종종 같은 제한을 겪지 만 일부 시스템은이를 극복하기위한 방법을 구현했습니다.

  • 답변 # 2

    가장 현대적인 운영 체제의 설계는 인텔 80286에 도입 된 세그먼트 개념에서 플랫 메모리 모델을 사용합니다. 그들 중 리눅스를 사용하지 않고있다.

    와이즈 비즈  성능을 위해 커널이 사용자 프로세스 메모리 공간을 직접 주소 지정해야하므로 2 ^ 32 주소 공간이 커널과 사용자 공간 프로세스 사이에 분할됩니다. 32 비트 Linux의 경우이 비율은 1 : 3입니다. 가상 주소 공간의 상위 1G는 커널과 드라이버에 예약되어 있고 가상 주소 공간의 하위 3G는 프로세스에 예약되어 있습니다.

    많은 작업에서 3G의 RAM이면 충분합니다. 그러나 주소 지정 가능 (및 물리적으로 사용 가능한) RAM과 성능간에 직접적인 의존성을 갖는 응용 프로그램이 있습니다. 좋은 예는 RDBM, 다양한 데이터 분석, 이미지 처리, 과학적 계산, 예 :

    OS kernel

  • 이전 vi 모드가 활성화 된 bash에서 ci "(따옴표 내에서 변경)가 작동하지 않는 이유는 무엇입니까?
  • 다음 boot - dmesg 오류 - usb, ext4, ath3k