Producer-Consumer Problem
생산자-소비자 문제 생산자는 정보를 생성하고, 소비자는 정보를 소비하는 모델이다. 여러 개의 프로세스를 어떻게 동기화할 것인가에 대한 고전적인 문제를 의미한다.
IPC (Inter-Process Communication)
프로세스간의 통신
프로세스 간의 통신을 통해서 생산자-소비자 문제를 해결할 수 있다.
1. shared memory
- 생산자와 소비자는 concurrent하게 동작한다.
- buffer를 이용하여, 생산자는 buffer에 데이터를 넣고, 소비자는 buffer를 비우는 역할을 수행한다.
2. message passing
- send / receive message를 OS에 전송하고, OS가 데이터를 처리함
- communication link : 통신 프로세스가 서로 통신을 하려면 그들 간에 통신 연결이 설정 되어야함.
Mailbox / ports
- indirect communication을 할 때, 메시지를 보내는/받는 저장소
- 두개 이상의 프로세스에서 접근할 수 있으며, 접근 communication link 또한 여러개 존재 할 수 있다.
- OS에서는 create, send, receive, delete 기능을 제공하면 된다.
Synchronization
- 동기식 (synchronous) 통신
- blocking send - 송신 프로세스는 수신 프로세스나 메일박스가 메시지를 받을 때까지 block
- blocking receive - 수신 프로세스는 수신 메시지가 있을 때까지 block
- 비동기식 (asynchronous) 통신
- Non-blocking send - 송신 프로세스는 메시지를 보내고 바로 return, 작업을 계속 수행함 (수신 여부와 관계 없이)
- Non-blocking receive - 수신 프로세스는 유효한 메시지를 받거나 널(null)을 받고 바로 return, 작업을 계속 수행함
728x90
'📓STUDY > OS' 카테고리의 다른 글
[OS/운영체제/공룡책 붓츠부스] 2. 프로세스란? (0) | 2024.02.06 |
---|---|
[OS/운영체제/공룡책 붓츠부스] 1. 운영체제란? (0) | 2023.04.25 |