마이크로 커널 대 모 놀리 식 커널의 성능


14

마이크로 커널은 모든 드라이버를 사용자 공간 프로그램으로 구현하고 커널 자체에서 IPC와 같은 핵심 기능을 구현합니다. 그러나 모 놀리 식 커널은 드라이버를 커널의 일부로 구현합니다 (예 : 커널 모드에서 실행).

마이크로 커널은 사용자 공간에서 드라이버 간 메시지 전달을 처리해야하기 때문에 단일 커널보다 느리다는 주장을 읽었습니다. 이것이 사실입니까?

하드웨어가 너무 느려서 마이크로 커널을 빠르게 실행할 수 없기 때문에 오랫동안 대부분의 커널은 모 놀리 식이었습니다. 그러나 GNU / Hurd, Mac OS X, Windows NT 라인 등과 같은 많은 마이크로 커널과 하이브리드 커널이 있습니다.

마이크로 커널의 성능에 어떤 변화가 있습니까? 마이크로 커널에 대한이 비판은 오늘날에도 유효합니까?

답변:


11

성능 관련 질문에 대한 답변 (또는 최소한 머리말)은 항상 그렇듯이 문제 영역을 파악 하고 비교 벤치 마크를 실행하며 조기 최적화가 무엇인지 기억하십시오 .

첫째, 종합적인 벤치마킹 실험에서는 모 놀리 식 커널을 동등한 방식으로 작동하는 현재 세대의 마이크로 커널 시스템과 비교하지 않았습니다. 따라서 이러한 커널의 특정 요소를 비교하는 시험이있을 수 있지만, 질문에서 페인트하려는 "큰 그림"을 대표하지는 않습니다.

그렇게 말하면, 마이크로 커널에 걸친 커널 성능에 대한 격렬한 관찰이 있습니다. 예를 들어, L4 마이크로 커널 제품군은 마하 커널보다 IPC 성능이 훨씬 더 높다고 할 수 있습니다. 그러나이 10 년 동안의 모든 Apple 기기는 Mach를 실행하고 있으며 훨씬 빠르게 작동하는 것 같습니다.

이야기의 교훈은 어떤 커널 아키텍처를 사용할지 결정하는 사람은 먼저 자신의 궁극적 인 목표가 무엇인지 결정해야한다는 것입니다. 마이크로 커널 시스템은 (물론 적절하게 구현 될 때) 더 안전하고 유지 보수 가능하며 모듈 식입니다. 그러나 제대로 설계하기가 어려울 수 있으며 모 놀리 식 구현에 비해 성능 오버 헤드가 발생할 수 있습니다. 모 놀리 식 커널은 더 빠를 것이지만 보안은 구현하기가 더 어려우며 모듈화가 적고 사용자 정의가 쉽지 않습니다.

커널 아키텍처는 최종 목표가 무엇인지에 따라 결정되어야합니다.

(그리고 다른 모든 것이 실패하면 두 가지 방법으로 시도하고 어떻게되는지보십시오.)


"그러나이 10 년 동안의 모든 Apple 기기는 Mach를 실행하고 있으며, 훨씬 빠르게 작동하는 것 같습니다." 그것은 부분적으로 만 맞습니다. "다윈의 커널은 XNU, OSF의 OSFMK 7.3 (Open Software Foundation Mach Kernel)을 사용하는 하이브리드 커널, 프로세스 모델, 네트워크 스택 및 가상 파일 시스템을 포함한 BSD의 다양한 요소 및 객체 지향입니다 하이브리드 커널 디자인은 마이크로 커널의 유연성과 모 놀리 식 커널의 성능을 제공합니다. "
베랑 사이 자데

4

하이브리드 대신 Windows NT와 Apple의 XNU 커널 모 놀리 식을 선호합니다. 하이브리드의 분류가 실제로 많은 의미를 갖지는 않습니다. 실제로 XNU의 최초 엔지니어 중 하나는이를 모 놀리식이라고합니다 [1].

성능 문제에있어서, 내가 발견 할 수있는 모 놀리 식 대 마이크로에 대한 유일한 심층 비교는 "최고의 고성능 컴퓨팅 또는 왜 마이크로 커넬이 빠지는가"[2]와 반박 프리젠 테이션 "마이크로 커널이 빠 집니까?"입니다 [3].

모듈 성과 커스터마이즈는 모 놀리 식 커널의 고유 한 한계보다 더 많은 디자인 문제입니다. 예를 들어, Linux 커널은 컴파일 시간 옵션 및 특정 패치 적용에 따라 수 메가 바이트에서 약 1 메가 바이트까지 다양합니다. Linux의 1,500 만 + 코드 라인의 대부분은로드 가능한 커널 모듈입니다. 기본 커널과 별도로 컴파일되어 필요할 때만로드됩니다. 이러한 모듈은 드라이버 및 시스템 호출을 구현할 수 있습니다 (기본 시스템 호출을 무시하더라도).

마이크로 커널이 확실한 이점을 갖는 두 가지 영역은 항공 비행 시스템 또는 원자로 제어 시스템과 같은 메모리 부족 (<= 512k 램) 또는 "하드"실시간 운영 체제입니다.

편집 : 커널 구조의 장단점에 대해 더 이야기하면서 Gernot Heiser는 발표가 끝날 무렵에 마이크로 커널에 항상 약간의 오버 헤드가 있기 때문에 모 놀리 식 커널이 본질적으로 더 성능이 우수하다는 것을 자유롭게 인정합니다. 그러나 이러한 추가 오버 헤드로 인해 안정성이 향상되어 RTOS를 지배하는 마이크로 커널이 있습니다.

[1] Louis G. Gerbarg, "Mac OS X의 고급 동기화 : Unix를 SMP 및 실시간으로 확장", BSDCon 2002 Conference, pp. 2

[2] Chistoph Lameter, "최고의 고성능 컴퓨팅 또는 마이크로 커널이 빠지는 이유", 2007 Linux Symposium, Volume One

[3] Gernot Heiser, "Microkernels Suck?", 9th Linux.conf.au, 2008 년 1 월


나는 "하이브리드"커널로 XNU 및 Windows NT를 분류 한
MMK

환영합니다 @DW 감사합니다. 게시물을 약간 정리하고 인용을 추가했습니다.
Ironlenny

@mmk 죄송합니다. 하이브리드라고 부릅니다. 서두르면서 내 게시물을 잘못 읽었습니다.
Ironlenny
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.