사용자 모드와 커널 모드란?
커널 모드
모든 자원 (드라이버, 메모리, CPU 등)에 접근, 명령을 할 수 있는 모드이다.
운영 체제가 CPU의 제어권을 가지고 운영 체제 코드를 실행하는 모드로서, 이 모드에서는 모든 종류의 명령을 다 실행할 수 있다.
사용자 모드
일반 사용자 프로그램이 실행되며 제한적인 명령만을 수행할 수있는 모드이다. 쉽게 말해 애플리케이션이 수행되는 모드라고 할 수 있다.
시스템에 중요한 영향을 미치는 연산은 커널 모드에서만 실행 가능하도록 함으로써 하드웨어의 보안을 유지할 수 있다.
커널 모드와 사용자 모드를 구분하기 위해 하드웨어 적으로 CPU 내부에 모드 비트(mode bit)를 사용한다. 모드 비트가 0으로 세팅되어 있으면 커널 모드로서 모든 명령어를 실행할 수 있고, 모드 비트가 1로 세팅되어 있으면 사용자 모드로서 제한된 명령만을 수행 할 수 있다.
커널 모드와 유저 모드 예시
애플리케이션 프로그램이 수행되는 모드 즉, 유저 모드에서 프로그램이 수행되다가 인터럽트가 발생해 운영체제가 호출되었을 때 수행되는 모드가 커널 모드이다.

예를 들어, 애플리케이션 프로그램 실행 중 파일을 열어 값을 읽어오는 동작을 수행해야 하는 경우, 사용자 모드에서 system call로 운영 체제에게 요청을 한다. 이때 사용자 모드(user mode) -> 커널 모드(kernel mode)로 전환 되고 mode bit 역시 1에서 0으로 전환된다. 커널 모드에서 system call 요청을 모두 실행한 후, 다시 모드와 모드 비트를 전환한다.
위에서 언급된 system call은 커널 영역의 기능을 사용자 모드가 사용 가능하도록, 즉 프로세스가 하드웨어에 직접 접근해서 필요한 기능을 사용할 수 있도록 해준다.
system call은 여러 종류의 기능으로 나누어져 있는데, 각 system call에는 번호가 할당되고, system call interface는 이러한 번호에 맞는 system call 함수를 찾아 가도록 해준다. 아래의 그림은 open( ) system call이 호출 되었을 때 운영체제에서 어떻게 처리되는지를 보여준다.

사용자 모드와 커널 모드 간 전환 예시

참고 블로그
https://kosaf04pyh.tistory.com/196
[운영체제] 커널 모드, 사용자 모드
이번 시간에는 커널 모드, 사용자 모드에 대해 공부해 보겠습니다. 우리가 흔히 사용하는 운영체제는 여러 프로그램이 동시에 실행될 수 있는 다중 프로그래밍 환경에서 동작합니다. 그러므로
kosaf04pyh.tistory.com
[OS] 운영체제 구조 - 사용자 모드와 커널 모드
CPU 권한의 두 가지 모드인 사용자 모드과 커널 모드에 대해 알아보자
velog.io