우리가 컴퓨터를 사용할 때 사용자는 못느끼지만 내부적으로는 두가지 상태로 나뉘게 된다.
User Mode와 Kernel Mode이다.
저번 포스팅에서 사용자가 하드웨어 자원에 직접 접근하면 여러 실수들이 발생할 수 있기 때문에 운영체제는 시스템콜을 통하여 각 기능에 맞는 함수를 제공해서 통신한다고 했었는데 커널모드를 실행하려면 반드시 시스템콜을 거쳐야 한다.
즉, Application이 운영체제가 필요한 API를 호출하면 시스테콜이 호출되고 커널모드로 진입하게 된다. 커널모드로 진입한 후에 운영체제 내부에서 명령을 실행하게 된다.
예를 들면, C언어에 open함수가 있다. 이 함수는 파일을 읽는 함수인데 파일을 읽기 위해서는 하드웨어에 접근해서 파일을 가져와야 하지 않겠는가?
고로 이때 시스템콜이 발생하여 커널모드로 진입하면 운영체제 내부에서 어떤 함수가 발생하고 파일을 가져오게 된다.
'운영체제' 카테고리의 다른 글
운영체제 인터럽트란? (0) | 2020.11.24 |
---|---|
운영체제 프로세스의 상태 (0) | 2020.11.21 |
운영체제 라운드로빈 스케쥴러 (0) | 2020.11.20 |
운영체제 멀티프로그래밍, 멀티프로세싱, 멀티태스킹이란? (0) | 2020.11.19 |
운영체제 시스템 콜이란? (0) | 2020.11.16 |