pintOS 는 왜 Virtualization exception을 처리하지 않는가?

c4fiber·2023년 12월 28일
0

SW사관학교 정글7기

목록 보기
42/49

pintOS가 처리하는 인터럽트 vec_no의 종류


다음 pintOS 코드에 따르면 처리하는 vec_no는
0 ~ 19 + 0x20 ~ 0x30 (0x27, 0x2f 제외) 이다.

다음과 같이 Intel software developer manual에 따르면 0 ~ 21 까지 사전 예약된 vec_no가 존재하는데 왜 20, 21에 해당하는 인터럽트는 처리하지 않을까?

chat gpt 답변


인터럽트 20번은 x86 아키텍처에서 "Virtualization Exception" 또는 "Virtual-8086 Mode Exception"이라고도 알려진 예외입니다. 이 예외는 x86 프로세서에서 가상 8086 모드에서 실행 중인 코드가 특정 조건을 위반했을 때 발생합니다. Virtual-8086 모드는 x86 아키텍처의 하위 모드 중 하나로, 주로 16비트 MS-DOS 응용 프로그램을 32비트 또는 64비트 환경에서 실행할 때 사용됩니다.

Virtualization Exception이 발생하는 경우는 다음과 같습니다:

  1. 실제 모드로 전환: 가상 8086 모드에서 실행 중인 코드가 일부 특정 작업을 수행하면, 이 예외가 발생하여 실제 모드로 전환됩니다.

  2. I/O 작업: Virtual-8086 모드에서 실행 중인 코드가 I/O 작업을 시도할 때, 이 예외가 발생합니다. 예를 들어, in 또는 out 명령어를 사용하여 입출력을 수행하려고 할 때 발생합니다.

  3. 특정 제어 명령어 사용: 가상 8086 모드에서 특정 제어 명령어를 사용하면 예외가 발생할 수 있습니다.

  4. 메모리 제한을 초과: Virtual-8086 모드에서 실행 중인 코드가 자신의 메모리 공간을 벗어나는 작업을 시도할 때 예외가 발생할 수 있습니다.

Pintos나 Nachos와 같은 운영 체제에서는 이러한 Virtualization Exception을 사용하지 않는 이유는 다음과 같습니다:

  1. 가상 8086 모드 지원하지 않음: Pintos와 Nachos는 주로 모던 운영 체제 및 프로세서와 관련된 교육용 운영 체제로, 가상 8086 모드와 같은 레거시 모드를 지원하지 않습니다. 이러한 운영 체제는 주로 32비트 또는 64비트 보호 모드에서 실행됩니다.

  2. 간소화된 환경: Pintos와 Nachos는 교육 및 학습 목적으로 설계된 간소화된 운영 체제입니다. 이러한 운영 체제는 가상화나 가상 머신을 구현하는 것이 아닌, 운영 체제의 기본 개념과 동작 원리를 이해하는 데 중점을 두고 있습니다. 따라서 Virtualization Exception과 같은 복잡한 예외 처리는 필요하지 않습니다.

  3. 레거시 시스템과의 호환성: Pintos와 Nachos는 간단한 환경에서 동작하도록 설계되었으므로, 가상 8086 모드와 같은 레거시 시스템과의 호환성을 지원하지 않습니다. 대신에 모던 운영 체제의 핵심 개념과 기능을 다루며, 이러한 개념을 교육적인 목적으로 설명합니다.

따라서 Pintos와 Nachos는 가상화와 관련된 복잡한 예외 처리를 다루지 않고, 간단하고 학습에 초점을 맞춘 운영 체제로 구현되어 있습니다.

profile
amazing idiot

0개의 댓글