사용자 모드와 커널 모드

jaemin·2021년 5월 7일
1

운영체제

목록 보기
2/3
post-thumbnail

사용자 모드와 커널 모드

CPU Protection Rings

사용자 모드와 커널 모드에 대해 알아보기 전에 CPU Protection Rings에 대해 알아야 합니다.
CPU엔 여러 가지 명령어가 있고 이를 실행합니다. 그런데, CPU도 권한 모드를 가지고 있습니다.

CPU 권한 모드

1. 사용자 모드(user mode)

  • 일반적인 명령 실행 가능
  • 응용 프로그램이 사용

2. 커널 모드(kernel mode)

  • 특권 명령어 실행과 원하는 작업 수행을 위한 자원 접근을 가능하게 하는 모드
  • OS가 사용(OS가 CPU를 쓸 때 사용하는 모드)

만약 응용 프로그램이 다음과 같은 일을 실행한다고 합시다.

  1. 1~1000까지 더한다. (사용자 모드)
  2. 파일에서 데이터를 가져온다. (커널 모드)
  3. 1~1000까지 합과 데이터를 더한다. (사용자 모드)

데이터를 가져오는 것은 시스템 콜을 거쳐 커널 모드로 실행해야 합니다.

정리하면, 응용 프로그램은 어떤 명령에 따라 사용자 모드에서 실행하기도 하고, 커널 모드에서 실행하기도 합니다.

사용자 모드와 커널 모드 두 가지로 나누어서 좋은 점은, 응용 프로그램이 전체 컴퓨터 시스템을 해치지 못하게 합니다.

시스템 콜과 커널 모드

  • 커널 모드에서만 실행 가능한 기능들이 있음
  • 커널 모드로 실행하려면, 반드시 시스템 콜을 사용해야 함(거쳐야 함)
  • 시스템 콜은 운영체제가 제공

📋정리

  • 운영체제는 시스템 콜 제공
  • 프로그래밍 언어별로 운영체제 기능을 활용하기 위해, 시스템 콜을 기반으로 API 제공
  • 응용 프로그램은 운영체제 기능 필요시, 해당 API를 사용해서 프로그램을 작성
  • 응용 프로그램이 실행돼서, 운영체제 기능이 필요한 API를 호출하면, 시스템 콜이 호출되고 커널 모드로 변경되어 OS 내부에서 해당 명령이 실행된다. 그리고 다시 응용 프로그램으로 돌아간다.

Reference

이 글은 패스트 캠퍼스 컴퓨터 공학 전공자 따라잡기 수업을 듣고 정리했습니다.

profile
프론트엔드 개발자가 되기 위해 공부 중입니다.

0개의 댓글