프로세스간 통신(IPC) 2

이명환·2020년 11월 8일
1

BackEnd

목록 보기
9/14

이전포스트 에서는 프로세스간 통신에 대한 방법 3가지(파이프, Unix Domain Socket, 공유 메모리)에 대해서 알아보았다.

위키에서

IPC는 마이크로커널과 나노커널의 디자인 프로세스에 매우 중요하다

이렇게 이야기 했는데, 그렇다면 마이크로 커널, 나노커널, 디자인 프로세스는 무엇일까?

마이크로 커널

마이크로커널은 컴퓨터 과학에서 운영 체제에 추가되어야 하는 메커니즘을 최소한으로 제공하는 초소형 커널이다. 이러한 미니멀리티 메커니즘에는 낮은 수준의 주소 공간 관리, 스레드 관리, 프로세스 간 통신을 포함한다.

그림에서 나오는 모놀리식 커널은 Application을 제외한 모든 system 관련 기능들(VFS, IPC, Filesystem 등등)을 커널이 관리하며 각 영역들은 단계적으로 나뉘어 있다.

커널의 system call을 이용해서 리눅스 프로세스 하나를 만들 때 VFS에서 제공하는 fopen 라이브러리를 이용해 다른 파일 시스템에 쉽게 접근이 가능하고, IPC를 이용해 다른 프로세스에게 메시지를 전달 하는 것도 해낼 수 있다.

대표적인 예로는 Unix, Linux가 있다.


마이크로 커널은 심적인 기능(스케줄링, 메모리 관리 등등)만 커널에 담고 나머지는 제외해 가볍게 만든 커널이다. 기존에 모놀리식 커널이 갖고 있던 시스템 기능들(VFS, IPC, Device driver)은 커널위의 서버의 형태로 존재한다

대표적으로 MacOS X, Windows NT가 있다.


나노커널

나노커널은 하드웨어 추상화를 제공하지만 시스템 서비스는 제공하지 않는 작은 커널이다. 더 큰 커널은 더 많은 기능을 제공하고 더 많은 하드웨어 추상화를 관리하도록 설계된다. 현대의 마이크로커널은 시스템 서비스도 부족하다. 따라서 마이크로커널과 나노커널이라는 용어는 유사해졌다.

사실상 마이크로 커널과 동일한 용어인듯 하다. 자세한 자료가 없고 기반지식이 없어서 더 파고들기가 어렵다.

디자인 프로세스

프로세스 설계에 관한 이야기인 것 같다.
https://devowen.com/217
여기에 자세한 이야기를 볼 수 있다.

profile
Si vales bene, valeo

0개의 댓글