H-Log
[운영체제] 프로세스 간 통신 본문
반응형
종류
- 공유 메모리 또는 공유 파일을 이용한 통신
- 단방향 통신 + 비동기화 통신
- 프로세스A에서 파일 작성 → 프로세스B에서 파일 읽음
- 데이터를 주고 받는 방법은 프로세사끼리 알아서 결정
- → 프로그래머거 작성한 코드대로 통신
- 파이프를 이용한 통신
- 단방향 통신 + 동기화 통신
- 양방향으로 통신하려면 파이프 2개 필요
- 운영체제가 제공하는 통신 기법 → 안정적임
- fork()로 만들어진 부모-자식 프로세스 간 통신에 파이프 사용
- 종류
- 이름 없는 파이프 : 일반적 파이프
- 이름 있는 파이프 : FIFO라는 파일을 이용해서 서로 관련 없는 프로세스 간 통신에 사용
- 소켓을 이용한 통신
- 양방향 통신 + 동기화 통신
- 네트워크로 연결된 컴퓨터끼리 데이터 주고받기 (여러 컴퓨터의 프로세스끼리 사용)
- 많은 자원이 소비돼서 같은 컴퓨터 내에서 소켓은 비효율적
- 소켓에 쓰기 연산 → 데이터 보내기
- 소켓에 읽기 연산 → 데이터를 받기
- 네트워크 프로그래밍 = 소켓 프로그래밍 이라 함
통신 방향에 따른 분류
- 양방향 통신
- 데이터를 양쪾 방향으로 동시전송 가능
- 소켓통신
- 반양방향 통신
- 데이터 양쪽 전송 가능
- 동시전송은 불가능
- ex. 무전기
- 단방향 통신
- 공유메모리/공유파일 통신
- 파이프 통신 (생성 시 방향 결정됨)
- 모스신호
통신 구현 방식에 따른 분류
- 대기가 있는 통신 (blocking communication)
- 보낸 쪽이 블럭이 되는지 안되는지에 따라 결정
- 양쪽이 동기화가 되어야 하는 통신방식
- 데이터를 받는 쪽이 받을 때 까지 보내는쪽이 대기 (동시에 주고받기 위해서)
- ex) 전화, 파이프 통신, 소켓 통신
- 대기가 없는 통신 (non-blocking communication)
- 동기화 지원하지 않는 통신
- 데이터 보내는 쪽에서는 보내고 끝
- 받는쪽에서는 확인만
- ex) 메세지, 공유 메모리, 고융 파일
반응형
'dev-log > cs' 카테고리의 다른 글
[운영체제] 교착 상태 (0) | 2023.10.01 |
---|---|
[운영체제] 임계구역 (0) | 2023.10.01 |
[운영체제] 인터럽트 (interupt) (0) | 2023.09.27 |
[운영체제] 스케줄링 알고리즘 (0) | 2023.09.27 |
[운영체제] CPU 스케줄링 (0) | 2023.09.27 |
Comments