프로세스 간 협력
- 독립적 프로세스 : 프로세스는 각자의 주소 공간을 가지고 수행되므로, 원칙적으로는 하나의 프로세스는 다른 프로세스에 영향x
- 협력 프로세스 : 프로세스 협력 메커니즘을 통해 하나의 프로세스가 다른 프로세스 수행에 영향을 미칠 수 있음
- 프로세스 간 협력 메커니즘(IPC : Interprocess Communication)
- message passing : 커널을 통해 메세지 전달
- shared memory : 서로 다른 프로세스 간에도 일부 주소 공간을 공유하게 하는 메커니즘
- Communication 커널을 통해서 수행됨
- 참고) thread : 스레드는 사실상 하나의 프로세스이므로, 프로세스간의 협력으로 보기는 어려우나, 동일한 프로세스를 구성하는 스레드들 간에는 주소 공간을 공유하므로 협력 가능
Message Passing
- Message system : 프로세스 사이에 공유 변수(shared variable)를 일체 사용하지 않고 통신하는 시스템
- Direct Communication : 통신하려는 프로세스의 이름을 명시적으로 표시
- Indirect Communication : mailbox 또는 port를 통해 메세지를 간접 전달
- Blocking send/recevie : sender는 receiver가 메세지를 완전히 받을떄까지, receiver는 메세지가 완전히 available할때까지 기다리는(block되는) 방법,
- Non-blocking : block되지않고, 송수신 결과랑 상관없이 그냥 쭉 실행됨, 메세지 송수신이 비동기적으로 될 수 있음
- 흔히 말하는 동기는 Sync+Blocking 형태, 비동기는 Async+Non-Blocking 형태
- Blocking / non blocking : 제어권을 안넘기는지 / 넘기는지
- Sync / Async : 결과를 돌려줄 떄 결과와 순서가 중요한지/안중요한지
Shared Memory
Reference
주니온 교수님 유튜브 채널
반효경 교수님 KOCW 운영체제
운영체제 아주 쉬운 세 가지 이야기(OSTEP 번역서)