시스템 콜의 메카니즘 : trap instruction(MODE SWITCH)

- 유저모드에서 태스크가 수행되고 있을때 시스템콜을 하면 커널 모드로 점프하고 context switching 을 하게되는데 이때 부터는 해당 유저 태스크가 소유한 커널 스택을 사용한다.
제한된 직접 실행

- 프로세스에서 trap 을 발생시킨다.
- 하드웨어는 커널스택에 레지스터값들을 저장하고 커널모드로 이동한다. 이후 트랩핸들러로 이동한다.
- OS 는 트랩을 처리하고 RETURN FROM TRAP 한다.
- 하드웨어는 커널스택에서 레지스터를 복구하고 유저모드로 이동한다.
RETURN FROM TRAP
- 운영체재가 인터럽트나 시스템콜을 처리하는게 끝났을 경우 운영체제는 RETURN FROM TRAP 이라는 특별한 인스트력션을 호출한다
- CPU CONTEXT 를 커널스택으로 부터 복구한다.
- CPU 의 특권 수준을 커널모드에서 사용자모드로 경시킨다
- PC 를 복구하고 트랩이후에 유저코드로 이동한다
- 유저 프로세스는 자신이 중단됐는지 인식못함
- 만약 트랩이 끝나고 같은 프로세스로 이동해야하느냐 ? 아니다 ! 유저모드로 돌아가기 전에 운영체재가 다른 프로세스로 이동할 필요가 있는지 확인한다 이것이 문맥교환
운영 체재의 스케쥴러