본문 바로가기
운영체제

운영체제 커널모드란?

by PudgeKim 2020. 11. 17.

우리가 컴퓨터를 사용할 때 사용자는 못느끼지만 내부적으로는 두가지 상태로 나뉘게 된다.

User Mode와 Kernel Mode이다.

저번 포스팅에서 사용자가 하드웨어 자원에 직접 접근하면 여러 실수들이 발생할 수 있기 때문에 운영체제는 시스템콜을 통하여 각 기능에 맞는 함수를 제공해서 통신한다고 했었는데 커널모드를 실행하려면 반드시 시스템콜을 거쳐야    한다.

즉, Application이 운영체제가 필요한 API를 호출하면 시스테콜이 호출되고 커널모드로 진입하게 된다. 커널모드로 진입한 후에 운영체제 내부에서 명령을 실행하게 된다.

예를 들면, C언어에 open함수가 있다. 이 함수는 파일을 읽는 함수인데 파일을 읽기 위해서는 하드웨어에 접근해서 파일을 가져와야 하지 않겠는가?

고로 이때 시스템콜이 발생하여 커널모드로 진입하면 운영체제 내부에서 어떤 함수가 발생하고 파일을 가져오게 된다.