본문 바로가기
야미스터디/OS

[OS] 커널 (Kernel) 📌

by 의정부핵꿀밤 2022. 8. 26.
728x90

운영체제란?

  • 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임
  • 운영체제는 컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로서 동작하는 시스템 소프트웨어의 일종으로, 다른 응용프로그램이 유용한 작업을 할 수 있도록 환경을 제공한다
  • 운영체제는 커널과 인터페이스로 구성된다
    • 커널 : 프로세스 관리, 메모리 관리, 저장장치 관리와 같은 운영체제의 핵심적인 기능을 모아놓은 것으로 운영체제의 성능을 좌우한다
    • 인터페이스 : 사용자의 명령을 전달하고 실행 결과를 사용자에게 알려주는 역할을 한다
  • 운영체제는 커널과 인터페이스를 분리하여 같은 커널을 사용하더라도 다른 인터페이스를 가질 수 있다

 

 


 

 

커널 (Kernel)

  • 운영체제의 가장 기본이 되는 기능을 실행하는 부분으로, 하드웨어와 응용 프로그램 사이에서 인터페이스를 제공하여 응용 프로그램이 하드웨어의 자원을 관리하고 사용할 수 있게 해주는 프로그램이다
  • 커널은 부팅 시 부트 로더에 의해 메모리에 적재되어 메모리에 상주하는 운영체제의 핵심이다
    • 소프트웨어가 컴퓨터 시스템에서 수행되기 위해서는 메모리에 그 프로그램이 올라가 있어야 한다
    • 운영체제는 컴퓨터 전원이 켜짐과 동시에 수행되는데, 운영체제 또한 소프트웨어이기 때문에 실행되기 위해서는 메모리의 올라가 있어야 한다
    • 그러나 운영체제와 같이 규모가 큰 프로그램이 모두 메모리에 올라간다면 한정된 메모리 공간의 낭비가 심할 것이다
    • 따라서 운영체제 중 항상 필요한 부분만을 전원이 켜짐과 동시에 메모리에 올려놓고, 그렇지 않은 부분은 필요할 때에만 메모리에 올려서 사용하게 된다
    • 이 때 메모리에 상주하는 운영체제의 부분이 커널이다
    • 그래서 커널을 좁은 의미의 운영체제라고도 한다
  • 즉, 커널은 메모리에 상주하는 운영체제의 부분으로, 운영체제의 핵심 부분을 뜻한다
  • 이에 반해 넓은 의미의 운영체제는 커널 뿐만 아니라 각종 시스템을 위한 유틸리티들을 광범위하게 포함하는 개념이다

 

 

 

커널 내부 구조

커널 내부에는 시스템 콜드라이버가 존재한다

 

1️⃣ 시스템 콜 (System Call)

  • 커널이 자신을 보하기 위해 만든 인터페이스
  • 사용자나 응용 프로그램이 컴퓨터 자원에 직접 접근할 경우 모든 과정을 직접 핸들링을 해야 한다
    • 하지만 이 때 부주의로 인해 컴퓨터 시스템 자체를 파괴할 수 있는 위험이 있다
    • 따라서 시스템 콜을 통해 요청만 하고 결과만 기다리면 되므로 컴퓨터의 시스템을 보호할 수 있다
  • 즉, 시스템 콜은 사용자나 프로그램이 직접 컴퓨터 자원에 직접 접근하는 것을 막는다
  • 그러므로 사용자나 응용 프로그램이 컴퓨터 자원을 사용하기 위해서는 시스템 콜을 사용해야 한다
  • 보통은 함수의 형태로 제공된다

 

 

2️⃣ 드라이버 (Driver)

  • 커널과 하드웨어의 인터페이스를 담당한다
  • 컴퓨터 하드웨어의 종류는 다양한데, 이 때 운영체제가 각 하드웨어에 맞는 인터페이스를 개발하기는 어려우므로 하드웨어 제작자가 만든 소프트웨어를 받아서 설치하여 하드웨어를 사용할 수 있게 한다
  • 이 소프트웨어를 '디바이스 드라이버'라고 한다

 

 

 

 

커널의 기능

  • 커널의 주요 기능은 컴퓨터에 속한 자원들에 대한 접근을 중재하는 것이다
  • 운영체제에서 가장 중요한 구성요소로 입출력 관리, 소프트웨어로부터 요청을 받아 필요한 자원을 할당해주는 역할을 한다

 

💥 커널의 핵심 기능

핵심 기능 설명
프로세스 관리 프로세스에 CPU를 배분하고 작업에 필요한 제반 환경을 제공한다
메모리 관리 프로세스에 작업 공간을 배치하고 실제 메모리보다 큰 가상 공간을 제공한다
파일 시스템 관리 데이터를 저장하고 접근할 수 있는 인터페이스를 제공한다
입출력 관리 필요한 입력과 출력 서비스를 제공한다
프로세스 간 통신 관리 공동 작업을 위한 각 프로세스 간 통신 환경을 지원한다

 

 

 

 

커널의 종류

1. 단일형 구조 커널

단일형 구조 커널

  • 초창기의 운영체제 구조로, 커널의 핵심 기능 모듈들이 구분없이 하나로 구성되어 있다
  • 대표적인 운영체제는 MS-DOS, VMS 등이 있다
  • 쉽게 프로그램에서 main() 함수에 모든 기능을 구현한 것과 같다
  • 장점
    • 모듈간의 통신 비용이 줄어들어 효율적인 운영이 가능하다
  • 단점
    • 모듈들이 하나로 묶여 있기 때문에 버그나 오류를 처리하기 어렵다
    • 기능 상의 작은 결함이 시스템 전체로 확산할 수 있다
    • 다양한 환경의 시스템에 적용하기 어렵다
    • 수정이 필요한 경우 단일형 구조는 수정하기 어렵다

 

 

2. 계층형 구조 커널

계층형 커널 구조

  • 비슷한 기능을 가진 모듈을 묶어서 하나의 계층으로 만들어서 계층간의 통신을 통해 운영체제를 구현하는 방식, 윈도우 등 오늘날의 운영체제가 대부분 해당 구조를 가지고 있다
  • 장점
    • 단일형에 비해 버그나 오류를 쉽게 처리할 수 있다
    • 오류가 발생할 시 해당 계층만 수정하면 된다
    • 디버깅이 쉽다
  • 단점
    • 계층이 존재하기 때문에 하나의 계층에 문제가 생기면 위/아래 계층도 동작하지 못할 수 있다
    • 운영체제가 커지고 복잡해지면 많은 계층들이 발생하게 되어 커널의 크기도 커지고 하드웨어의 용량도 늘어난다

 

 

3. 마이크로 구조 커널

마이크로 커널 구조

  • 위와 같은 계층형 구조의 문제로 인해 나타난 구조이다
  • 프로세스 관리, 메모리 관리, 프로세스 간 통신 관리 등 가장 기본적인 기능만 제공하고 나머지 부분은 사용자 영역에 구현되어 있다
  • 애플의 운영체제 OS X와 IoS가 이 구조를 갖는다
  • 장점
    • 각 모듈은 독립적으로 작동하기 때문에 하나의 모듈이 실패하더라도 전체 운영체제가 멈추지 않는다
    • 많은 컴퓨터에 이식하기 쉽다
    • 커널이 가벼워 CPU 용량이 적은 시스템에 적용이 가능하다
  • 단점
    • 모듈이 독립적으로 존재하여 모듈 간 통신이 빈번하게 이루어져 성능이 저하될 수 있다

 

 

 


참고)

http://itnovice1.blogspot.com/2019/08/blog-post_83.html

 

[운영체제] 커널이란?

[운영체제] 커널이란? 일반적인 커널의 형태 맨 위의 Applications가 응용 프로그램이다.  그 밑에 존재하는 것이 커널 커널 밑에 각종 하드웨어(CPU, Memory, Devices)들이 있는 것을 알 수 있다. ...

itnovice1.blogspot.com

https://goodmilktea.tistory.com/23

 

1. 운영체제와 커널이란?

운영체제란? 운영체제는 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고, 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임입니다. 운영체제

goodmilktea.tistory.com

https://ardor-dev.tistory.com/22

 

[운영체제] 운영체제의 구조 (커널과 인터페이스)

🔷 커널과 인터페이스 운영체제는 커널과 인터페이스로 이루어져 있습니다. 커널 : 프로세스 관리, 메모리 관리, 저장장치 관리와 같은 운영체제의 핵심적인 기능을 모아놓은 것으로 운영체제

ardor-dev.tistory.com

 

728x90

'야미스터디 > OS' 카테고리의 다른 글

[OS] 시스템 콜 (System Call) 📌  (0) 2022.08.24
[OS] 인터럽트와 시스템 콜  (0) 2022.08.24
[OS] Critical Section 📌  (0) 2022.08.05
[OS] 세마포어와 뮤텍스 📌  (0) 2022.07.24
[OS] 교착 상태 (Dead Lock) 📌  (0) 2022.07.21

댓글