본문 바로가기

CS/운영체제

[ 운영체제 ] Dual-Mode Operation(커널 모드, 사용자 모드)

반응형

메인 메모리는 커널 영역과 사용자 영역으로 구분된다. 이 둘은 같은 공간을 공유하고 있으므로 자칫하면 사용자 영역이 커널 영역을 침범할 수 있다. 이러한 침범 문제를 방지하기 위해 하드웨어의 도움이 필요하다.

CPU에는 Mode bit라는 것이 존재한다. Mode bit 값에 따라 커널 모드와 사용자 모드로 구분되는데, 커널 모드는 모든 메모리에 접근 가능하지만 사용자 모드는 오직 사용자 영역에만 접근 불가능하다. 하드웨어적으로 아예 분리를 시켜놨기 때문에 사용자 영역이 커널 영역을 침범하는 일은 없다.

커널 모드와 사용자 모드

한편, 사용자 모드에서는 실행 가능한 명령이 매우 한정적이다. 컴퓨터를 할때 대부분이 커널 모드로 동작한다고 봐도 무방하다. 그렇다면 사용자 모드에서 커널 모드로의 전환은 어떻게 이루어질까? 이는 인터럽트(Interrupt) 또는 시스템 콜(system call)을 통해 이루어진다.

시스템 콜은 커널 영역의 기능을 사용자 모드가 사용 가능하게, 즉 프로세스가 하드웨어에 직접 접근해서 필요한 기능을 수행할 수 있게 해준다. 참고로 시스템 콜을 프로그래머가 사용 가능하게 제공한 것을 API라고 한다.

 
반응형