01 프로세스 간 통신

1. 프로세스 간 통신의 개념

프로세스는 시스템 내에서 독립적으로 실행되기도 하고 데이터 를 주고받으며 협업하기도 한다. 프로세스가 다른 프로세스와 데이터를 주고받는 프로세스 간 통신에는 같은 컴퓨터 내에 있는 프로세스뿐만 아니라 네트워크로 연결된 다른 컴퓨터에 있는 프로세스와의 통신도 포함된다.

프로세스 간 통신의 종류

프로세스 간 통신의 종류

2. 프로세스 간 통신의 분류

분류 방식 종류
통신 방향에 따른 분류 양방향 통신 일반적 통신, 소켓
반양방향 통신 무전기
단방향 통신 전역 변수, 파일, 파이프
통신 구현 방식에 따른 분류 동기화 통신(대기 O) 파이프, 소켓
비동기화 통신(대기 X) 전역 변수, 파일

3. 프로세스 간 통신의 종류

프로세스 간 통신은 데이터를 주거나 받는 동작으로 이루어지며 이는 쓰기 연산과 읽기 연산으로 간소화할 수 있다. 프로세스 간 통신에서 가장 중요한 것은 동기화이다. 동기화를 통해서 데이터를 받는 쪽에서 데이터가 도착했음을 바로 알 수 있다.

종류 운영체제 동기화 지원 open() / close() 사용
전역 변수 X (바쁜 대기) X
파일 X (wait() 함수 이용) O
파이프 O O
소켓 O O

02 공유 자원과 임계구역

1. 공유 자원의 접근

공유 자원은 여러 프로세스가 공동으로 이용하는 변수, 메모리, 파일 등을 말한다. 공유 자원을 잘못 사용하여 2개 이상의 프로세스가 공유 자원을 병행적으로 읽거나 쓰는 상황을 ‘경쟁 조건(race condition)’ 이 발생했다고 한다.

2. 임계구역