이렇게 접근 가능한 자원에 따라 모드가 나뉘어 있다.
두 모드로 나뉘어져 있는데, 이는 커널에서 중요한 자원을 관리하기 때문에 사용자가 그 중요한 자원에 접근하지 못하도록 모드를 2가지로 나눈 것이다.
즉, 보안성과 안전성 확보를 위해 나눔
각 모드에 대해 알아보자
: 시스템 영역(커널)에 접근할 수 있는 실행모드
: 유저가 접근할 수 있는 OS 영역 내에서 동작되는 실행모드
따라서, 필요 시 일시적으로 커널모드로 전환해 커널 내 처리 요청을 처리하고 다시 유저모드로 전환되어 실행하는 방식으로 동작한다!
이는 시스템 콜을 통해 이루어진다.
: 커널과 사용자 사이의 인터페이스 역할을 하는 것으로 쉘에서 명령어나 서브 루틴 형식으로 운영체제의 기능을 호출한다.
최상단 그림의 System library들이 시스템 콜을 이용해 구현되어 있다.
따라서, 응용프로그램 -> 라이브러리 -> 커널모드 접근은 다음과 같이 진행된다.