728x90
블로그에 작성하면서 다시 복습하는 노트이다.
스터디 책은 '쉽게 배우는 운영체제-(한및아카데미)'를 사용했다.

프로세스 간 통신의 종류

  • 프로세스 내부 데이터 통신 :  하나의 프로세스 내에 2개 이상의 스레드가 존재하는 경우의 통신이다. 프로세스 내부의 스레드는 전역 변수나 파일을 이용하여 데이터를 주고받는다.
  • 프로세스 간 데이터 통신 : 같은 컴퓨터에 있는 여러 프로세스끼리 통신하는 경우로, 공용파일 또는 운영체제가 제공하는 파이프를 사용하여 통신한다.
  • 네트워크를 이용한 데이터 통신 : 여러 컴퓨터가 네트워크로 연결되어 있을 때도 통신이 가능한데, 이 경우 프로세스는 소켓을 이용하여 데이터를 주고받는다.

 

통신은 데이터가 전송되는 방향에 따라 나뉜다.

  • 양방향 통신 : 데이터를 동시에 양쪽 방향으로 전송할 수 있는 구조로, 일반적인 통신은 모두 양방향 통신이다. 프로세스 간 통신에서는 소켓 통신이 양방향 통신에 해당한다.
  • 반양방향 통신 : 데이터를 양쪽 방향으로 전송할 수 있지만 동시 전송은 불가능하고 특정 시점에 한쪽 방향으로만 전송할 수 있는 구조이다. 반양방향 통신의 대표적인 예는 무전기이다.
  • 단방향 통신 : 모스 신호처럼 한쪽 방향으로만 데이터를 전송할 수 있는 구조이다. 프로세스 간 통신에서는 전역 변수와 파이프가 단방향 통신에 해당한다.

 

busy waiting(바쁜 대기) : 전역변수를 사용하는 통신 방식의 가장 큰 문제점은 언제 데이터를 보낼지 데이터를 받는 쪽에서는 모른다. 그러므로 데이터를 받는 쪽에서는 반복적으로 전역 변수의 값을 점검하게되어 상태 변화를 살펴보기 위해 반복문을 무한 실행하며 기다리는 것이다.

 

프로세스 간 통신은 동기화 기능에 따라 분류된다.

  • synchronous communication (동기화 통신) : 동기화를 지원하는 통신 방식이다. 데이터를 받는 쪽은 데이터가 도착할 때 까지 자동으로 대기 상태에 머물러 있다.
  • asynchronous communication (비동기화 통신) : 동기화를 지원하지 않는 통신 방식이다. 데이터를 받는 쪽은 바쁜 대기를 사용하여 데이터가 도착했는지 여부를 직접 확인한다.

shared resource (공유 자원) : 여러 프로세스가 공동으로 이용하는 변수, 메모리, 파일 등을 말한다. 공유 자원은 공동으로 이용되기 때문에 누가 언제 데이터를 읽거나, 쓰느냐에 따라 결과가 달라진다.

  • 2개 이상의 프로세스가 공유 자원을 병행적으로 읽거나 쓰는 상황을 'race condition(경쟁 조건)'이 생겼다고 한다.

critical section (임계구역) : 공유 자원 접근 순서에 따라 실행 결과가 달라지는 프로그램의 영역을 임계구역이라고 한다.

  • 임계구역과 관련된 전통적인 문제점 "product-consumer problem (생산자-소비자 문제)"
728x90

'운영체제_스터디' 카테고리의 다른 글

# DAY8 입출력 시스템과 저장 장치  (0) 2021.12.07
#DAY5 물리 메모리 관리  (0) 2021.11.26
#DAY4 교착상태  (0) 2021.11.16

+ Recent posts