커널

재능없는 개발자·2023년 2월 4일
0

앞에서 운영체제의 핵심 서비스를 담당하는 부분을 커널이라 한다고 하였다.

사용자 인터페이스

사용자 인터페이스는 운영체제가 제공하는 서비스 중 커널에 포함되지 않는 서비스이다.

  • 그래픽 유저 인터페이스(GUI)

GUI는 윈도우 바탕화면이나, 스마트폰 화면 처럼 컴퓨터와 상호작용할 수 있는 인터페이스이다.

  • 커맨드 라인 인터페이스(CLI)

CLI는 명령어 기반으로 컴퓨터와 상호작용할 수 있는 인터페이스이다.

이중모드

운영체제는 사용자가 실행하는 응용 프로그램이 하드웨어 자원에 직접 접근하는 것을 막는다. 응용 프로그램이 하드웨어에 직접 접근하면 자원이 무질서하게 관리되고, 컴퓨터 전체에 큰 악영향을 끼칠 수 있기 때문이다. 따라서 운영체제는 프로그램들이 오직 자신을 통해 자원을 접근하도록 하여 자원을 보호한다.
프로그램의 요청을 받은 운영체제는 프로그램 대신 자원에 접근하여 요청한 작업을 수행한다. 이러한 역할은 이중모드로써 구현된다. 이중모드는 cpu가 명령어를 실행하는 모드를 사용자 모드와 커널 모드로 구분하는 방식이다. cpu는 명령어를 사용자모드나 커널모드 둘 중에 한 모드로 실행할 수 있다.

  • 사용자모드

사용자 모드는 운영체제 서비스를 제공받을 수 없는 모드이다. 일반적인 프로그램은 사용자 모드로 실행되어 사용자 모드로 실행중인 cpu는 하드웨어 자원에 접근하는 명령어를 실행할 수 없다.

  • 커널 모드

커널 모드는 운영체제 서비스를 제공받을 수 있는 모드이다. 이 모드에선 cpu가 하드웨어에 접근하는 명령어를 실행할 수 있다.

system call

사용자 모드로 실행되는 프로그램이 자원에 접근해야해서 커널모드로 실행되려면 운영체제에게 요청을 보내야한다. 이때 보내는 요청을 system call이라고 한다. system call은 소프트웨어 인터럽트이다. 요약하자면 프로그램이 디스크에 접근하기 위해선 system call을 통해 커널모드로 전환하고, 하드 디스크에 접근한 다음, 접근이 끝났다면 다시 사용자 모드로 전환하여 실행을 이어나간다.

profile
https://www.youtube.com/watch?v=__9qLP846JE

0개의 댓글