Zettelkasten

제한적 직접 실행은 CPU 가상화 문제를 해결한다.

·수정 2026.04.23·수정 3

요약

  • CPU 가상화는 성능저하, 제어 문제를 갖고 있음
  • 제한적 직접 실행은 커널과 사용자 모드를 분리해 이러한 문제를 해결한다.

본문

  • CPU 가상화의 문제
    1. 성능 저하: 시스템에 과중한 오버헤드를 주지않으면서 가상화를 구현할 수 있는가?
    2. 제어 문제: CPU에 대한 통제를 유지하면서 프로세스를 효율적으로 실행있는가?
  • 제한적 직접 실행(LDE, Limited Direct Execution)
    • 직접 실행: 프로그램을 CPU 상에서 그냥 직접 실행시킴
      1. 운영체제가 원치않는 일을 하지 않는다는 것을 어떻게 보장하는가?
      2. 실행 중단 후 다른 프로세스로의 전환(시분할)을 어떻게 구현하는가?
    • 직접실행의 장점은 "빠르게 실행"
      • 하지만 직접 실행시킬 경우, 프로그램이 너무 많은 권한을 가짐(ex 모든 파일 시스템 접근)
      • 사용자 모드, 커널 모드 분리를 통해 해결함
      • 사용자 모드에서는 시스템 콜을 이용해 모드로 변경해 특권을 가질 수 있음
        • trap, return-from-trap
        • trap은 명령어로, 커널 안으로 분기하는 동시에 특권 수준을 커널모드로 상향 조절한다.
        • return-from-trap은 다시 사용자 모드로 전환
      • system call 호출시 내부적으로 trap으로 전환 후 작업 종료후 return-from-trap

참고

https://pages.cs.wisc.edu/~remzi/OSTEP/Korean/06-cpu-mechanisms.pdf