OS와 하드웨어
많은 OS에서 커널 영역을 각 프로세스의 주소 공간 일부(예를 들어 상위 범위)에 할당해 두고, 페이지 테이블의 보호 비트로 사용자 모드에서의 접근을 금지합니다. 이 배치의 주된 이점은 무엇입니까?
- A커널에 들어갈 때 주소 공간을 전환하지 않아도 되기 때문에
- B애플리케이션이 커널 함수를 시스템 콜 없이 직접 호출할 수 있기 때문에
- C커널의 메모리를 각 프로세스가 마음대로 고쳐 쓰고 공유할 수 있기 때문에
정답과 해설 보기
정답: A. 커널에 들어갈 때 주소 공간을 전환하지 않아도 되기 때문에
커널을 각 프로세스의 주소 공간에 똑같이 할당해 두면, 시스템 콜이나 인터럽트로 커널에 들어갈 때 페이지 테이블을 전환하지 않고 그대로 커널의 코드와 데이터에 접근할 수 있고 TLB도 비우지 않아도 됩니다. 사용자 모드에서의 접근은 페이지 테이블의 보호 비트로 금지되어 있으므로 애플리케이션이 커널 함수를 직접 호출하거나 커널 메모리를 고쳐 쓸 수는 없습니다. 이 보호가 깨지면 중대한 취약점이 됩니다.
- A. 올바릅니다. 커널에 들어갈 때 주소 공간 전환이 필요 없어집니다.
- B. 보호 비트로 금지되어 있으므로 직접 호출할 수 없습니다.
- C. 사용자 모드에서는 고쳐 쓸 수 없습니다.