패스잇
CS 기초 · 심화

사용자 공간(User Space) 애플리케이션이 시스템 호출(System Call)을 통해 커널 공간(Kernel Space)의 서비스를 이용하는 전체 과정을 상세히 설명해 주십시오. 특히, 시스템 호출 트랩(trap) 발생부터 커널 내부의 핸들러 처리, 그리고 결과 반환까지의 메커니즘을 CPU 모드 전환과 보호 링(Protection Ring) 개념을 포함하여 기술하시오.

힌트 · `syscall` 명령, 인터럽트 벡터 테이블, 커널 스택, 레지스터를 통한 인자 전달 및 결과 반환, 그리고 사용자/커널 모드 전환의 보안적 의미를 포함하여 설명해야 합니다.

시스템 호출트랩 (Trap)CPU 모드 전환보호 링 (Protection Ring)커널 핸들러

모범답안

네, 사용자 공간 애플리케이션이 시스템 호출을 통해 커널 서비스를 이용하는 과정을 설명드리겠습니다.

애플리케이션이 특정 기능을 수행하기 위해 시스템 호출을 요청하면, syscall (또는 유사한) 명령어를 실행합니다. 이 명령어는 CPU에 트랩(trap)을 발생시켜 CPU 모드를 사용자 모드에서 커널 모드로 전환합니다.

트랩이 발생하면 CPU는 인터럽트 벡터 테이블(Interrupt Vector Table)을 참조하여 해당 시스템 호출을 처리할 커널 내 핸들러의 주소를 찾습니다. 이때 보호 링(Protection Ring)이 작동하여 사용자 공간의 코드가 커널 영역에 직접 접근하는 것을 방지합니다.

시스템 호출에 필요한 인자들은 레지스터나 스택을 통해 커널에 전달됩니다. 커널 핸들러는 전달받은 인자를 바탕으로 요청된 작업을 수행하고, 결과를 다시 레지스터나 스택에 저장합니다.

작업이 완료되면 CPU 모드는 다시 사용자 모드로 전환되고, 애플리케이션은 시스템 호출의 결과를 받아 작업을 계속 진행합니다. 이러한 과정은 사용자 공간의 애플리케이션이 커널의 보호된 자원에 안전하게 접근할 수 있도록 보장합니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 운영체제 면접 질문

← 운영체제 면접 질문 전체 보기