커널 (Kernel)
  • 커널은 컴퓨터의 운영체제의 핵심.
  • main memory에 상주하며, 시스템에 존재하는 자원을 효율적으로 관리하는 자원 관리자.
                        <General UNIX Architecture, Traditional UNIX kernel>



커널의 역할
  • 보안 - 컴퓨터 하드웨어와 프로세스의 보안을 책임진다.
  • 프로세서 관리 - 처리 속도를 향상시키기 위해 여러 프로세서를 병렬로 연결하여 사용한다. 시스템에서 동작하는 프로세스도 커널에서 관리해야할 자원이고, 운영체제의 처리 요구에 맞춰 동작할 수 있도록 각 프로세스에 필요한 프로세서를 효율적으로 할당하고 수행하도록 관리한다.
  • 프로세스 관리 - 여러 프로세스가 동작할 수 있도록 각 프로세스를 생성하고 제거하며, 외부환경과 프로세스를 연결하고 관리한다. (스케줄링)
  • 메모리 관리 - 각각의 프로세스가 독립적인 공간에서 수행할 수 있도록 가상 주소 공간을 제공한다.
    이외에도 파일 시스템 관리, 디바이스 제어, 네트워크 관리가 있다.



모놀리식 커널(Monolithic Kernel,단일형 커널)과 마이크로커널(Micro Kernel)

  • 모놀리식 커널
        - 입출력 기능, 네트워크 기능, 장치 지원 등 운영체제의 일반적인 기능을 커널과 동일한 메모리 공간에 적재, 실행하는 기법.
       - 속도가 빠르고 디자인도 편리하지만, 잠재적 안정성 문제와 커널의 크기도 무지막지하게 커진다. 
        - Monolitic Kernel 방식을 따르는 운영체제 : 리눅스, 보통의 UNIX, 맥OS, MS-DOS





  • 마이크로 커널
        - 낮은 수준의 주소 공간 관리, 스레드 관리, 프로세스 간 통신(IPC)를 포함하고, 시스템 콜 같은 서비스, 디바이스 관리 등을 제외하여 안정성을 높이고, 커널 크기도 줄인 방식.
        - 안정성이 높고 보안도 높아지지만, 전반적인 퍼포먼스는 저하된다.
        - 이 방식을 따르는 운영체제 : AmigaOS, Minix, Mach, GNU hurd









     
     


'운영체제' 카테고리의 다른 글

메모리 관리  (0) 2018.09.01
CPU Scheduling (CPU 스케줄링)  (0) 2018.08.30
캐시 메모리(Cache Memory)  (0) 2018.08.28
교착상태(Deadlock)  (0) 2018.08.28
세마포어와 뮤텍스 (Semaphores&Mutex)  (0) 2018.08.26

+ Recent posts