커널은 운영체제에 있어서 핵심 모듈이다. 운영체제가 시스템이 프로그램이 동작되게끔 하고, CPU, 메모리 디스크를 관리하는 프로그램이라면 커널은 그 운영체제의 핵심 모듈이다. 자동차로 비유하면 엔진 같은 것이다. 커널의 역할을 보면 커널이 어떤 것인지 더 명확하게 알 수 있다.
1) 시스템 콜 인터페이스
어플리케이션에서 시스템으로 어떤 명령을 주고 싶으면 시스템콜이라는 것을 한다. 이 시스템콜이 인터페이스를 통해서 전달이 된다. 접수 창구와 같은 역할을 한다고 보면 된다. 이 콜이 불리면 시스템은 특정 역할을 하게 된다. 디스크 엑세스라든가 네트워크 관련 요청들이 모두 시스템 콜에 해당된다.
2) 프로세스 관리
운영체제는 수많은 프로세스를 관리한다. 프로세스는 실행 중인 프로그램을 말한다. 운영체제는 CPU나 메모리 자원을 사용해서 이러한 프로세스를 수행해준다. 이때 여러개의 프로세스가 동시(?)에 수행되는 거처럼 동작되게 해주는 것이다. 동시에라는 말에 ?는 실제 동시가 아니라 시분할 수준으로 짧은 시간동안 수행을 돌아가면서 해주는 것이다. 물론 언제가부터 나온 멀티 코어라는 개념의 CPU는 실제로 동시에 몇 가지 일을 할 수가 있기는 하다. 이렇게 프로세스를 관리해주는 역할을 한다.
3) 메모리 관리
물리 메모리 공간을 어떻게 사용할지에 대해서도 관리한다. 프로세스가 이용하는 독립적인 공간을 확보해주거나 여러가지 프로그램들이 사용하려는 메모리를 어떻게 하면 효율적으로 사용할지도 관리한다.
4) 네트워크 스택
네트워크의 데이터 입출력을 받아다가 어플리케이션으로 올려주기도 하고 어플리케이션의 데이터를 네트워크 장치를 통해서 송수신 해준다.
5) 파일 시스템 관리
기록된 데이터를 물리적인 장치에 저장하거나 읽어주는 기능을 한다. 파일단위로 삭제하거나 액세스 할 수 있다. 이때 물리적 장치에는 이 파일의 내용이 연속되어 저장되어 있지는 않은데, 이를 물리적 장치로 엑세스 하는 기능을 가진다.
6) 장치 드라이버
장치용 인터페이스를 제공한다. 컴퓨터에 연결된 장치들을 드라이버라는 매개체를 통해서 제어하고, 어플리케이션 단에서는 추상적으로 제어할 수 있게 해준다. 이러한 장치 드라이버의 인터페이스를 제공하는 것도 커널 단의 역할이다.
책처럼 전체를 보기를 원하시면 아래 링크를 클릭하시고 북마크 하셔서 보시면 편리합니다.
'쉽게 풀어본 IT 기술 ' 카테고리의 다른 글
클라이언트/서버 통신 방법 & HTTP (0) | 2018.09.01 |
---|---|
클라우드 컴퓨팅의 활용 사례 (0) | 2018.09.01 |
서버리스 아키텍쳐 서버가 없다? (0) | 2018.09.01 |