[운영체제] 커널이란?

[운영체제] 커널이란?


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

이처럼 커널은 하드웨어와 응용 프로그램 사이에서 인터페이스를 제공하여 응용 프로그램이 하드웨어에서부터 오는 자원을 관리하고 사용 할 수 있게 해줍니다.



커널의 기능들

커널의 주요 기능은 컴퓨터에 속한 자원들에 대한 접근을 중재하는 것입니다.
커널은 운영 체제의 핵심 부분이므로, 커널의 역할 역시 운영 체제의 핵심 역할이라 할 수 있다.
구체적으로 말하면, 커널이란 운영체제(OS)에서 가장 중요한 구성요소로서, 입출력을 관리하고 소프트웨어로부터 요청 (System Call)을 컴퓨터에 있는 하드웨어(CPU, 메모리, 저장장치, 모니터)가 처리할 수 있도록 요청(System Call)을 변환하는 역할을 한다.
( User는 Shell을 이용하여 Kernel을 통해 하드웨어를 사용 할 수 있다. )

CPU

  • 쉽게 생각하면 커널은 CPU를 제어하는 S/W
  • 컴퓨터 시스템의 중앙 부품들은 프로그램을 작동 시키거나 실행시키는 역할을 담당합니다.
  • 커널은 많은 프로그램들중 어느것이 프로세서에 할당되어야 하는지 결정할 책임이 있습니다.(아마도 스케쥴링에 관한 설명 같습니다.)


RAM(Random - Access - Memory)

램은 프로그램의 명령어와 데이터를 저장 하는 대에 이용됩니다.
일반적으로, 프로그램을 실행 시키려면 명령어와 데이터 둘 다 있어야 합니다.
종종 여러 프로그램들은 메모리에 접근하기를 원하며, 컴퓨터가 가지고 있는 메모리보다 더 많은 메모리를 요구 하기도 합니다.
커널은 각 프로세서가 사용 할 수 있는 메모리를 결정하고, 메모리가 부족할 때 수행 할 행동을 결정합니다.


입출력장치

입출력장치는 키보드, 마우스, 디스크 드라이브, 프린터, 디스플레이 장치 등을 말합니다.
커널은 응용 프로그램의 요청을 받아 입출력을 수행하며 장치를 사용하기 위한 편리한 방법을 제공합니다.

메모리 관리


장치 관리


시스템 호출



출처

댓글

댓글 쓰기

이 블로그의 인기 게시물

[Python] # -*- coding: utf-8 -*-를 쓰는 이유

[소프트웨어공학] NS(Nassi-Schneiderman) 차트

[컴퓨터네트워크] Telnet이란?