프로세스 종류
운영체제 내에서 실행되는 프로세스들은 독립적이거나 협력적인 프로세스들로 나눌 수 있습니다.
독립적인 프로세스
- 시스템에서 실행중인 다른 프로세스들에게 영향을 주거나 받지 않는 프로세스
협력적인 프로세스
- 시스템에서 실행중인 다른 프로세스들에게 영향을 주거나 받는 프로세스
- IPC가 반드시 필요
IPC
- IPC : inter process communication ( 프로세스 간 통신 )
- IPC란, 협력적인 프로세스 사이에서 서로 데이터를 주고 받는 행위 또는 그에 대한 방법이나 경로를 의미합니다.
IPC 종류
-
공유 메모리 모델 Shared Memory
- 두 개 이상의 프로세스들이 주소 공간의 일부를 공유하며, 공유한 메모리 영역에 읽기, 쓰기를 통해서 통신을 수행합니다. (Read,Write) - 양방향
- 공유 메모리가 설정되면, 그 이후 통신은 커널(OS)의 관여 없이 진행이 가능
- 장점
- 따라서, 메모리를 직접 사용하여 IPC 속도가 빠름
- 프로그램 레벨에서 통신 기능을 제공하여 자유로운 통신이 가능
- 단점
- 구현하기 어려움
- Message Passing보다 뛰어나지만 동기화 문제가 발생할 수 있음
- 같은 메모리 공간에 동시에 접근 해서, 동시에 수정할 경우가 생길 수 있겠지? 이런 현상을 방지하기 위해서 Shared Memory는 Synchromize(동기화)를 잘 해 줘야해. 이런 충돌이 안일어날 수 있도록 순서를 잘 정해주는거지
-
메시지 전달 모델 Message Passing - 소켓 포함
-
커널을 경유하여 고정길이 메시지, 가변길이 메시지를 송,수신자끼리 주고 받으며, 커널에서는 데이터를 버퍼링합니다. (Send, Receive) - 단방향
-
커널의 message queue에 한 프로세스가 보내면, 다른 프로세는 받는 형태
-
프로세스간 메모리 공유 없이 동작이 가능
-
장점
- 구현하기에 간단하여 사용하기 편리
- send,receive와 같은 연산에 대해서 커널이 동기화를 기본적으로 제공하기 때문에, 메시지 전달 모델은 동기화에 대한 고려없이 사용이 가능
-
단점
- 커널을 경유하므로 속도가 느리다.
- 커널에 의해 작동되기 때문에 오버헤드가 존재합니다.
-
메시지 전달과 공유 메시지 전달의 차이점과 각각의 장점에 대해서 설명해주세요.
-
메시지 전달에서는 동기화가 필요 없으셨다 하셨는데 왜 필요가 없는지.