1. Process의 communication state
- independent: 개별 프로세스가 동작하는 상황
- cooperating: share data, context switch, communication의 방식 중요
2. how to communicate( == IPC(Inter-Process Communication))
- 데이터를 주고 받는 것(Send, Receive)
- shared memory, message passing
3. 둘은 어떤 특징들을 가지고 있을까?
1) shared memory의 특징
- 메모리에 접근해서 데이터를 직접 다룬다.
- buffer를 통해서 communication하게 된다.
- buffer의 상태에 따라 3가지 경우로 나뉜다.
- 가득 찬 경우: P(생산 프로세스) 기다리기 - Q(소비 프로세스) 소비
- 넉넉한 경우: P 생산 - Q 소비
- 없는 경우: P 생산 - Q 기다리기
2) shared memory의 비유
- 하나의 테이블에 다양한 정보들(문서, 도구, 차트 등등..)이 있고, 이것을 활용해 정보를 생산하고 소비하게 된다.
- 각각의 사람들(프로세스)가 동시에 정보에 접근해서 변경을하게 되면, 혼란스럽게 될 수 있는 확률이 크다.
3) message passing의 특징
- 메시지만 주고 받는다.
- O/S가 cooperating 할 수 있는 도구(mailbox)를 제공한다.
- direct :메시지를 받을 프로세스를 명시한다.ex) Send(Q, message), Receive(P, message)
- indirect: 메시지를 mailbox에 넣어 둔다. ex) A == 메일박스, Send(A, message), Receive(P, message)
- Blocking send, Blocking receive: synchronous
- Non-blocking send, Non-blocking receive: asynchronous
4) message passing의 비유
- 각자의 책상에 앉아 있고 종이에 메시지를 적어 다른 책상에 앉아 있는 사람에게 전달한다.
- 또는 각자의 책상에 앉아 있고, 종이에 메시지를 적어 메일함에 넣어두면 누군가가 가져간다.
'OS' 카테고리의 다른 글
[공룡책] Chapter 2. Process? (1/4) (0) | 2021.07.13 |
---|---|
[공룡책] Chapter 1. 운영체제는 무엇인가? (0) | 2021.07.12 |