반응형
프로세스는 독립적(independet)이거나 협력적(cooperating)일 수도 있다.
프로세스가 협력적인 이유는 아래와 같다.
- 정보 공유(Information sharing)
- 계산 가속화(Computation speedup)
- 모듈성(Modularity)
- 편의성(Convenience)
Cooperating processes는 데이터나 정보를 교환하기 위해 IPC 기법이 필요하다.
IPC 기법 (크게 두 가지 있다( - Shared memory
- Message passing
Shared memory (공유 메모리)
- 통신을 하고자하는 두 프로세스가 일정한 메모리 영역을 공유함으로서 데이터를 주고 받는 기법
- ex) A가 공유 메모리에 데이터를 쓰고, B가 공유 메모리에 있는 데이터를 읽는다면 데이터 공유가 가능함
- 별도의 송신, 수신 함수가 필요 없다. (자신의 메모리라고 인지하고 있기 때문이다)
- 운영체제가 아닌 사용자 프로세스 통제하에 이뤄지는 통신 기법이라서, 송신 시기와 수신 시기가 순차적이라는 보장이 없다.
- 그래서 두 프로세스의 동작을 동기화 하는 작업이 꼭 필요하다.
Message passing
- 프로세스들이 메모리를 공유하지 않고 데이터를 주고 받을 수 있다.
- 송신(send) : 메세지 큐에 데이터를 넣음
- 수신(receive) : 메세지 큐에 담겨 있는 데이터를 꺼내감
- 메모리를 공유하는 것이 아닌, 공유하는 공간이 커널 안의 메세지 큐 형태임
반응형
'CS > OS' 카테고리의 다른 글
[OS]Threads(스레드) (0) | 2021.05.12 |
---|---|
[OS]프로세스 연산 (Operations on Processes ), 시스템 콜(System Call) (0) | 2021.04.30 |
[OS]프로세스(Process)란? (0) | 2021.04.29 |
[OS]멀티프로그래밍(Multiprogramming) (0) | 2021.04.27 |
[OS]운영체제 구조 (Operating System Structure) (0) | 2021.02.19 |