콜 게이트
위키백과, 우리 모두의 백과사전.
|
|
이 문서의 내용은 출처가 분명하지 않습니다. 지금 바로 이 문서를 편집하여, 참고하신 문헌이나 신뢰할 수 있는 출처를 주석 등으로 표기해 주세요. 검증되지 않은 내용은 삭제될 수도 있습니다. 내용에 대한 의견은 토론 문서에서 나누어 주세요. |
콜 게이트(call gate)는 CPU의 동작레벨이 낮은 상태에서 높은 레벨의 코드를 호출하기 위한 '입구(Gate)'를 제공하는 구조이다. 소프트웨어 인터럽트(트랩)와 더불어 API를 호출할 때에 사용자 모드에서 커널 모드로 진입하기 위한 방법 중 하나이다.
콜게이트는 컴퓨터 시작시에 운영체제에서 준비를 하는데, 콜게이트를 정의하려면 글로벌/로컬 디스크립터 테이블에 '게이트 디스크립터'를 만들어야 한다. 이 게이트 디스크립터는 8바이트로 실행을 시작하는 코드의 셀렉터값, 그 세그먼트에서의 오프셋, 게이트 속성이 저장되어 있다.
속성에는 게이트의 특권레벨을 나타내는 필드가 있어, CPU의 동작레벨이 여기에 지정된 값 이상이면 게이트를 경유해서 지정한 코드를 실행할 수 있다.