Post

모드에 대한 이해 - 4

IA-32e 모드

앞서 포스팅한 내용에 따르면 보호 모드의 특성은 아래와 같다.

  1. 최근 제공되는 OS들이 구동되는 모드이다.
  2. 멀티태스킹, 세그멘테이션, 페이징을 지원한다.
  3. 이론상 최대 16EB(2^64) 만큼의 메모리 제한이 있다.
  4. 민감한 메모리 영역에 대한 보호를 제공한다.
  5. 32bit 호환 모드가 있어 32bit용 코드를 구동가능하다.

이러한 특성을 하나하나 세부적으로 살펴보겠다.

1. 최근 제공되는 OS들이 구동되는 모드이다.

32bit 모드의 경우 4GB 메모리 제한이 있다보니 메모리에 대한 제한이 적은 64bit로 대부분 다 넘어왔다. 한번에 처리하는 양이 많다는 것은 그만큼 성능이 좋다는 뜻이니 너무 당연한 것이라고 생각한다.

2. 멀티태스킹, 세그멘테이션, 페이징을 지원한다.

기본적으로는 32bit 보호모드와 비슷하다. 하지만 내부의 세부적인 부분이나 사용하는 데이터 구조가 조금씩 다른데 이 부분은 각 커널에 대한 부분을 설명하면서 세부적으로 설명할 것이다.

3. 이론상 최대 16EB(2^64) 만큼의 메모리 제한이 있다.

이론상 16EB 메모리 제한이라는 것은 실제로는 그보다 메모리 지원을 적게 한다는 뜻이다. 본질적으로는 아키텍처의 제한(최대 64bit 중 40비트까지 주소로 사용)으로 인해 이런 문제가 발생하지만 OS에서 그 보다 더 작게 제한을 걸어두는 경우도 많은데 이는 OS 패키지별로 성능상의 차등점을 두기 위해서 혹은 페이징할때 구현하는 로직이 조금씩 달라서 그런 부분도 있다. 예를 들어 윈도우 10의 경우 HOME 버전은 128GB까지 Enterprise,Education,PRO는 2TB까지이며 LINUX의 경우 ubuntu 64bit는 64PB까지 지원한다.

4. 민감한 메모리 영역에 대한 보호를 제공한다.

이건 32bit 보호모드에서 넘어온 것으로 이 역시 멀티 태스킹과 멀티 유저를 지원하기 때문에 이러한 보호를 제공한다.

5. 32bit 호환 모드가 있어 32bit용 코드를 구동가능하다.

이전 아키텍처에 대한 호환을 제공하기 때문에 이러한 기능이 있다. 64bit 전체를 쓰던걸 32bit만 써서 구동하게 된다.

참고 문헌

  1. 64Bit 멀티코어 OS의 구조 - 한승훈 저

수정 사항

  • 20240124 : 메모리 제한에 대한 오개념 정정
This post is licensed under CC BY 4.0 by the author.