꾸준한 개발자

계속적인 성장을 추구하는 개발자입니다. 꾸준함을 추구합니다.

계속 쓰는 개발 노트

운영체제 (OS)

운영체제 구조 (2)

gold_dragon 2021. 4. 13. 21:34

1. CPU Protection Rings

CPU도 권한 모드라는 것을 가지고 있습니다. 대표적으로 사용자 모드와 커널 모드가 있습니다. 사용자 모드는 일반적인 명령을 실행할 수 있는 것이고, 커널 명령은 특권 명령과 원하는 작업 수행을 위한 자원 접근을 가능케 하도록 실행할 수 있습니다.

위키백과 참조

대부분의 운영체제는 Ring0과 Ring3을 사용합니다. Ring3을 사용자 모드라고 지칭하고 Ring0을 커널 모드라고 지칭합니다.

 

여기서 커널 모드란 뭘까요? OS가 CPU를 쓸 때 사용하는 모드입니다. 즉, 응용 프로그램이 Ring3을 사용하고 OS가 Ring0을 사용합니다.

 

커널 모드에서만 실행 가능한 기능들이 있습니다. 커널 모드로 실행하려면 반드시 시스템 콜을 거쳐야 됩니다. 시스템 콜은 운영체제가 제공합니다.

2. 사용자 모드와 커널 모드

사용자 모드이기 때문에 함부로 응용 프로그램이 전체 컴퓨터 시스템을 헤치지 못합니다. 시스템 콜을 통해 커널 모드가 실행되고 OS의 기능에 접근할 수 있습니다.

3. 정리

운영체제는 시스템 콜을 제공합니다.

프로그래밍 언어별로 운영체제 기능을 활용하기 위해, 시스템 콜을 기반으로 API를 제공합니다.

응용 프로그램은 운영체제 기능 필요시, 해당 API를 사용해서 프로그램을 작성합니다.

응용 프로그램이 실행돼서, 운영체제 기능이 필요한 API를 호출하면, 시스템 콜이 호출되고 커널 모드로 변경돼서 OS 내부에서 해당 명령이 실행되고 다시 응용 프로그램으로 돌아갑니다. 그리고 모드는 사용자 모드로 돌아갑니다.

'운영체제 (OS)' 카테고리의 다른 글

프로세스 스케쥴링 (2)  (0) 2021.04.14
프로세스 스케쥴링 (1)  (0) 2021.04.14
운영체제 구조 (1)  (0) 2021.04.13
운영체제와 응용 프로그램  (0) 2021.04.12
운영체제 역할  (0) 2021.04.12