운영체제 - 커널이란?

Sundae·2023년 8월 20일
1

운영체제

목록 보기
2/15
post-thumbnail

운영체제 - 커널


운영체제가 응용 프로그램에게 제공하는 서비스 종류는 다양하지만, 그중에서 핵심적인 서비스들이 있다.

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

운영체제 커널의 주요 기능은 이중 모드시스템 호출을 먼저 짚은 다음에 살펴보자.

이중 모드와 시스템 호출


운영체제는 응용 프로그램이 자원에 직접 접근하는 것을 방지한다. 만약 응용 프로그램이 자원에 직접 접근하여 조작할 수 있다면 자원이 무분별하게 관리될 것이고 이는 컴퓨터 전체에 악영향을 끼칠 가능성이 높다.

그래서 운영체제는 응용 프로그램이 자원에 접근하고자 할 때 오직 운영체제를 통해서만 접근하도록 한다.

운영체제는 이중 모드(dual mode)를 통해서 방화벽 역할을 수행한다.

이중 모드에는 와 커널 모드가 있다.

사용자 모드(user mode)는 운영체제 서비스를 제공받을 수 없는 실행 모드이다. 일반적인 응용 프로그램은 사용자 모드로 실행된다. 그래서 사용자 모드로 실행되는 일반적인 응용 프로그램은 자원에 접근할 수 없다.

커널 모드(kernel mode)는 운영체제 서비스를 제공받을 수 있는 모드이다. 커널 모드로 명령어를 실행하면 자원에 접근하는 명령어를 실행할 수 있다. 운영체제는 커널 모드로 실행되기 때문에 자원에 접근할 수 있다.

그렇다면 사용자 모드로 실행되는 응용 프로그램은 자원에 접근하려면 어떻게 해야할까?

이는 시스템 호출(system call)이라고 하는 서비스를 제공받기 위한 요청을 운영체제에게 보내 커널 모드로 전환 되어야 한다.

이렇게 커널 모드로 전환하여 운영체제 서비스를 제공받을 수 있다.

시스템 호출은 일종의 인터럽트이다. 인터럽트는 입출력장치에 의해 발생하기도 하지만 인터럽트를 발생시키는 특정 명령어에 의해 발생하기도 한다. 이를 소프트웨어 인터럽트라고 한다.

커널의 주요 기능


이제 커널의 주요 기능을 살펴보자.

운영체제 커널의 주요 기능은 아래와 같다.

프로세스 관리


실행 중인 프로그램을 프로세스(process)라고 한다. 우리가 컴퓨터를 사용하는 동안 메모리에서는 새로운 프로세스들이 생성되고, 사용하지 않는 프로세스는 메모리에서 삭제된다.

프로세스들은 사용하고자 하는 자원과 상태가 다양한데, 운영체제는 이렇게 다양한 프로세스를 관리하고 실행할 수 있어야한다.

자원 접근과 할당


모든 프로세스는 자원을 필요로 한다. 운영체제는 프로세스들이 사용을 원하는 자원에 접근하고 조작해서 프로세스가 필요로하는 자원을 할당해 준다.

운영체제가 하드웨어를 어떻게 관리하고 어떤 기능을 제공할까? 아래에서 살펴보자.

1. CPU

보통 메모리에는 여러 프로세스가 적재된다. 그리고 하나의 CPU는 한 번에 하나의 프로세스를 실행 할 수 있다. 이때 하나의 프로세스가 CPU를 이용하고 있다면 CPU 사용을 원하는 다른 프로세스는 기다려야 한다.

그래서 운영체제는 프로세스들에게 공정하게 CPU를 할당하기 위해 얼마나 오래, 어떤 프로세스부터 CPU를 이용하게 할 것인지 결정한다. 이를 CPU 스케줄링이라고 한다.

2. 메모리

메모리에 적재되는 프로세스들은 그 크기와 주소가 다양하다. 그래서 운영체제는 프로세스를 새로 적재할 때마다 어느 주소에 적재해야 할지 결정해야한다.

또 적재할 때 발생하는 문제들을 해결할 수 있다.

3. 입출력장치

입출력장치가 CPU에게 인터럽트 요청 신호를 보내면 CPU는 커널 영역에 있는 인터럽트 서비스 루틴을 실행한다. 즉, 운영체제는 인터럽트 서비스 루틴을 제공함으로써 입출력 작업을 수행한다.

파일 시스템 관리


우리는 컴퓨터를 사용할 때 여러 파일을 사용하는 일이 잦다. 그리고 이 파일들을 한 곳으로 묶어 디렉터리로 관리하는데, 이런 파일 시스템(file system)도 운영체제가 지원하는 핵심 서비스이다.

profile
성장 기록 / 글에 오류가 있다면 댓글 부탁드립니다.

0개의 댓글