커널이란 운영체제를 구성하고 있는 핵심(core)로써 타겟보드의 DRAM에 상주하여, 시스템의 구동에 필요한 환경 설정과 수행되는 프로그램들을 스케줄링 하는 소프트웨어이다. 커널은 크게 마이크로 커널(Micro Kernel)과 모놀리틱 커널(Monolithic)로 나눌 수 있으며, 마이크로 커널은 커널이 가져야 하는 핵심적인 기능만을 구현한 최소 커널로써 나머지는 서비스 프로세스로 이루어 진다. 모놀리틱 커널이란 커널 내부에 시스템 운영에 필요한 많은 서비스 루틴들을 포함한 구조를 가지고 있다. 이러한 모놀리틱 커널은 구현이 간단하며 시스템 자원을 보다 효율적으로 관리할 수 있는 장점을 가지고 있지만 다양한 환경의 시스템에 포팅하기 어렵고, 커널의 크기가 상대적으로 커진다는 단점을 가진다. 하지만 마이크로 커널은 핵심 기능과 작은 서버 모듈로 나누어 설계되고, 최소기능만을 커널 내부에 포함하므로, 기능 확장 및 타 시스템 재사용이 쉬워진다. 하지만 서버에 메시지 전달 방식의 접근은 태스크 스위칭에 많은 오버헤드를 초래하며 자원의 효율적 이용도 낮아진다. Solaris, AIX, HP-UX, Linux등이 모놀리틱 커널을 사용하며 Mach OS, sunsoft,Digital UNIX등은 마이크로 커널을 사용하고 있다.

img1.gif

 

커널의 구조

img2.gif

위의 그림과 같이 커널은 프로세스 관리, 메모리 관리, 파일 시스템 관리, 디바이스 관리,네트워크 관리의 5개의 기능 블록으로 구분할 수 있다. 해당 블록의 세부기능은 다음과 같다.

프로세스 관리 (Process Management)

  -프로세스의 생성 및 소멸
  -프로세스 간의 통신(Signal, Pipe, LPC, 세마포어 등)
  -CPU 스케줄링 동기화
  -제한된 자원에 대한 다중 프로세서의 효율적인 관리 기법 제공
 

메모리 관리 (Memory Management)

  -가상 메모리 관리 기법 제공
  -메모리 하드웨어의 효율적인 관리
  -파일 시스템 관리 (File System Management)
  -가상 파일 시스템에 의한 여러 파일 시스템 타입 지원
  -디스크의 물리적 구조를 논리적 구조로 표현 하는 기법
  -파일(정규 파일, 장치 파일, 파이프), 디렉토리 관리
  -블록 입출력을 위한 버퍼 캐시 관리 기법 제공

 디바이스 관리(Device Management)
 
  -입출력 요청 검증
  -입출력 요청 작업의 스케줄링
  -주변장치와 메모리간의 자료전송
  -입출력 제어기 관리
  -인터럽트 요청 및 처리
 

 네트워크 관리(Network Management)
 
  -통신 프로토콜 구현
  -네트워크 라우팅 및 주소지정 (Address Resolution)
  -네트워크 제어기 관리

'IT정보기술자료' 카테고리의 다른 글

애자일(Agile) 개발 방법론이란?  (0) 2007.02.28
RFID/USN을 위한 무선통신 기술, ZigBee  (0) 2007.02.28
CSMA/CA 와 CSMA/CD  (2) 2007.02.28

+ Recent posts