내 잡다한 노트

챕터5. 프로세스 동기화. 프로세스 간 통신 본문

운영체제

챕터5. 프로세스 동기화. 프로세스 간 통신

peanutwalnut 2022. 8. 29. 08:57

프로세스간에 자원들의 정보를 알려주기 위해 서로 통신을 한다.

통신의 종류로는 내부 데이터 통신, 프로세스 간 데이터 통신, 네트워크를 이용한 통신이 존재한다.

내부데이터는 한 프로세스에서 2개 이상의 스레드가 존재할 때 스레드끼리 통신을 하는 경우를 말한다.

내부 데이터는 보통 전역변수와 파일 방식을 사용하고 프로세스 간에는 파일과 파이프, 네트워크를 이용할 때는

소켓을 활용한다.  

즉, 통신의 방식에는 전역변수, 파일, 파이프, 소켓등이 있다.

 

통신 방향에 따른 분류

단방향통신 : 한쪽 방향으로만 통신할 수 있는 통신. 예로 전역변수와 파일이 있다.

양방향통신 : 양쪽 방향으로 통신가능. 소켓이 그렇다.

반양방향통신 : 양쪽 방향으로 전송할 수 있지만 동시 전송은 불가능하고 특정 시점에

한쪽 방향으로만 전송할 수 있는 구조. 예로 무전기가 그렇다.

 

바쁜 대기

한쪽에서 데이터를 보냈는지를 계속 확인하는 것. 비효율적이다.

 

그래서 통신 방식을 대기를 하는지 안하는지로 분류할 수 있다.

데이터를 보내며 데이터를 보냈다는 신호도 같이 보내면 데이터가 왔는지를 알 수 있을 것이다.

그 신호를 동기화라고 한다.

이 동기화가 되는지 안되는지로 분류를 하는데 

되는 것은 소켓, 파이프안되는 것은 전역변수, 파일안되는 방식들은 바쁜 대기상태로 계속 확인을 해줘야 한다.

 

전역변수를 이용한 통신보통 전역변수를 이용하는 것은 같은 프로세스 내에서 한다.

 

파일을 이용한 통신파일을 이용할 땐 열고 읽고 쓰고 닫는 방식이 존재한다.부모 자식 관계 프로세스 간 통신에 많이 사용되고 동기화를 제공하지 않는다.

 

파이프를 이용한 통신단방향 통신이다보니 양방향 통신을 위해선 2개의 파이프가 필요하다.운영체제가 제공하는 동기화 통신 방식으로 파일과 같이 open으로 기술자를 얻고 close로 마무리한다.프로세스 a에서 b로 가는 파이프, b에서 a로 가는 파이프 2개가 존재해 서로 양방향으로 통신을 할 수 있게된다.

 

소켓을 이용한 통신여러 컴퓨터의 프로세스와 통신하는 것을 네트워킹이라고 한다. 이런 네트워킹에서의 통신은 원격 프로시저 호출 또는소켓을 이용해 통신한다.네트워크 프로그램을 흔히 소켓 프로그램으로 말하는 것이 네트워크의 기본이 소켓이기 때문이다.소켓은 양방향 통신이고 파이프와 달리 하나만 있으면 된다.

 

 

 

 

 

 

 

 

 

'운영체제' 카테고리의 다른 글

챕터5. 임계구역 해결 방법  (0) 2022.08.29
챕터5. 공유 자원과 임계구역  (0) 2022.08.29
챕터4. 인터럽트 처리  (0) 2022.07.26
챕터4. 다중큐  (0) 2022.07.26
챕터4. 스케줄링 시 고려 사항  (0) 2022.07.26