본문 바로가기

Design Pattern

[Design pattern] Micro Kernel

Micro Kernel 이란?

  Kernel 의 기능을 최소화하여 각 컴포넌트들 간에 서로 통신할 수 있도록 

  컴포넌트를 독립된 프로세스에서 실행할 수 있는 기능을 포함

      - 프로세스 관리 서비스

      - 메모리 관리 서비스

      - 파일시스템 서비스

  이식(Portable), 확장(extensible), 적응(adaptable) 가능하게 설계  


Micro Kernel 구성 요소

1) Micro Kernel

2) Internal Server 

     - 항상 커널에 있지 않지만 외부에서 바라봤을 때 커널에서 제공해야 하는

        핵심 기능, 커널에 의해서만 액세스 되어짐

     Ex) 디바이스 드라이버

3) External Server

     - 인터페이스를 외부에 노출

     - 마이크로커널이 제공하는 통신 기능을 사용해 클라이언트 애플리케이션

        으로부터 서비스 요청을 받으며 이 요청을 해석하고 적절한 서비스를 

        실행한 다음, 요청을 보낸 클라이언트에 결과를 반환

4) Adapter

     - 클라이언트와 외부서버간의 직접 종속성을 없애기 위한 인터페이스 역할

5) Client

     - 외부서버와 연결된 어플리케이션


요소간 관계


구조

구현

1.애플리케이션 도메인을 분석한다.

2.외부 서버를 분석한다.

3.서비스를 카테고리로 분류한다.

4.카테고리들을 분할한다.

5.모든 카테고리에 대해 일관적이고 완전한 오퍼레이션 집합과 추상 집합을 찾는다.

6.요청 전송과 검색을 위한 전략을 결정한다.

7.마이크로커널 컴포넌트를 구조화한다.

8.마이크로커널의 프로그래밍 인터페이스를 정의한다.

9. 마이크로 커널은 모든 시스템 리소스들을 관리하는 책임을 맡는다.

10.내부서버를 독립된 프로세스나 공유 라이브러리로 설계해 구현한다.

11. 외부 서버를 구현한다.

12.어뎁터를 구현한다.

13.클라이언트 애플리케이션을 개발 하거나 기존것을 사용한다.



장점

1.이식성이 보장된다.

2.유연성과 교환가능성이 확보된다.

3.정책과 메커니즘을 분리할 수 있다.

4.범위성이 확보된다.

5.신뢰성이 지원된다.

6.투명성을 제공한다.

단점

1.성능하락이 우려된다.

2.설계와 구현이 복잡해진다.



'Design Pattern' 카테고리의 다른 글

[Design pattern] Bridge  (0) 2013.02.21
[Design pattern] Reflection  (0) 2013.02.21
[Design pattern] PAC  (0) 2013.02.21
[Design pattern] MVC  (0) 2013.02.21
[Design pattern] Command Processor  (0) 2013.02.21