post-custom-banner

커널

운영체제의 핵심 부분으로써 하드웨어와 응용 프로그램 사이에서 인터페이스를 제공하고 컴퓨터 자원을 관리

이중 모드와 시스템 호출

이중 모드

운영 체제는 응용 프로그램 대신 자원에 접근하여 요청한 작업을 수행한다.

이러한 운영체제의 문지기 역할은 이중 모드로 구현된다. 이중 모드는 CPU가 명령어를 실행하는 모드를 사용자 모드와 커널 모드로 구분하는 방식이다.

사용자 모드

운영체제 서비스를 제공받을 수 없는 실행 모드이다. 즉, 커널 영역의 코드를 실행할 수 없는 모드이다. 일반적인 응용 프로그램은 기본적으로 사용자 모드로 실행된다.

커널 모드

운영체제 서비스를 제공 받을 수 있는 실행 모드이다. 커널 영역으 코드를 실행할 수 있는 모드이다.

사용자 모드로 실행되는 프로그램이 자원에 접근하는 운영체제 서비스를 제공받으려면 운영체제에 요청을 보내 커널 모드로 전환되어야 한다. 이때 운영체제의 서비스를 제공받기 위한 요청을 시스템 호출이라고 한다.

시스템 호출은 일종의 인터럽트로 이를 소프트웨어 인터럽트라고 한다.

시스템 호출의 작동

응용 프로그램이 하드 디스크에 데이터를 저장하는 작업을 한다고 가정해보자

  1. 응용 프로그램은 사용자 모드에서 커널 모드로 전환하기 위해 시스템 호출을 발생시켜 커널 모드로 전환함
  2. 운영체제 내의 하드 디스크에 데이터를 저장하는 코드를 실행시켜 하드디스트에 접근
  3. 하드 디스크에 접근이 끝나면 다시 사용자 모드로 복귀

일반적으로 응용 프로그램은 실행과정에서 시스템 호출을 빈번하게 발생시켜 사용자모드와 커널모드를 오간다.

profile
어쩌다보니 개발하게 된 구황작물
post-custom-banner

0개의 댓글