반응형

목차

01. 운영체제의 개요
02. 컴퓨터의 구조와 성능 향상
03. 프로세스와 스레드
04. CPU 스케줄링
05. 프로세스 동기화
06. 교착 상태
07. 물리 메모리 관리
08. 가상 메모리의 기초
09. 가상 메모리 관리
10. 입출력 시스템과 저장장치
11. 파일 시스템
12. 네트워크와 분산 시스템


프로세스 간 통신


프로세스간 통신의 종류


1. 프로세스 내부 데이터 통신

프로세스안에 두개 이상의 스레드가 존재할 때 이뤄지는 통신이다.
주로, 전역변수나 파일을 이용해서 데이터를 주고받는다.

 

2. 프로세스간 데이터 통신

같은 컴퓨터내에 있는 여러 프로세서끼리 통신한다.
주로, 공용파일 또는 운영체제가 제공하는 파이프를 사용한다.

 

3. 네트워크를 이용한 데이터 통신

컴퓨터랑 컴퓨터끼리 하는데,
소켓을 이용해서 데이터를 주고받는다. (ex 웹소켓)

 

통신 방향에 따른 분류

1. 양방향 통신

데이터가 양방향으로 전송가능한 구조.
프로세서간 통신에선 소켓 통신이 양방향 통신에 해당

2.반양방향

A에서 B로 데이터가 이동할 때는 동시에 B에서 A로 데이터를 이동시킬 수 없음(ex 무전기)

3. 단방향 통신

한쪽 방향으로만 데이터를 전송할 수 있는 구조
프로세스간 통신에서는 전역변수와 파이프가 단방향 통신에 해당한다.
그러나, 파이프는 2개를 히면 양방향 통신이 가능하다.

 

통신 구현 방식에 따른 분류

비동기일때 데이터가 변경되었는지 안되었는지를 확인하는 행위를 "바쁜 대기" 라고 한다.
"빠른 대기"는 자원이 크게 낭비된다.

래서 "바쁜 대기" 문제를 해결하기 위해 "동기화"를 사용한다.
동기화를 사용하면 바쁜대기가 없어도 운영체제가 알아서 알려준다.

1. 대기가 있는 통신

  • 파이프
  • 통신

2. 대기가 없는 통신

  • 전역 변수
  • 파이프

 

전역변수를 이용한 통신

전역변수를 이용한 통신에서는 공동으로 관리하는 메모리를 사용해서 데이터를 주고받는 방식인데,
데이터를 보내는 쪽에서는 전역변수나 파일을 작성하고 받는 쪽에서는 그 값을 읽는다.

그래서, 부모 프로세스가 전역변수를 선언한 후에, 자식 프로세스를 만들면, 부모와 자식간의 통신이 된다.(단방향)

 

파일을 이용한 통신

파일을 열고, 쓰기 또는 읽기 연산을 한 후, 파일을 닫는다.

 

파이프를 이용한 통신

파이프는 프로세스 동기화 문제를 해결했다.
파이프는 운영체제가 제공하는 동기화 통신 방식을 이용하며,
파이프를 이용한 통신은 단방향 통신이나,
파이프를 2개 사용하면 양방향 통신이 가능하다.

 

소켓을 이용한 통신

소켓은 컴퓨터와 컴퓨터간의 통신이며,
여러 컴퓨터에 있는 프로세스간 통신은 네트워킹이라고 한다.

보통 네트워킹 상황에서는 원격 프로시져호출이나 소켓을 이용한다.
원격 프로시져 호출은 소켓을 이용해서 구현한다.

다른 컴퓨터와 통신을 하려면, 먼저 컴퓨터의 위치를 파악해야 하고,
해당 컴퓨터안에서도 어떤 프로세스와 통신을 해야할지 정해야 한다.

이때, 통신하고자 하는 프로세스는 자신의 소켓과 상대 소켓에 연결한다.
이러한 작업을 바인딩이라고 한다.

반응형

'Operating System' 카테고리의 다른 글

임계구역 해결 방법  (0) 2022.05.16
공유 자원과 임계구역  (0) 2022.05.11
스케줄링 알고리즘  (0) 2022.04.13
다중 큐  (0) 2022.04.12
스케줄링시 고려사항  (0) 2022.04.11