2개의 프로세스가 메시지 통신을 할때, 송신지와(sender)와 수신자(receiver)는 다음과 같은 주소화의 방법을 고려해야 한다.
직접통신:메세지의 수신자와 송신자를 외부적으로 직접 표현
간접통신:우편함을 이용하여 송수신자를 간접적으로 표현
직접통신
직접통신 방법의 경우, 송신자는 수신자의 주소나 이름을 반드시 명시적으로 지정해주어야 하며, 수신자는 송신자의 주소나 이름을 명시적으로 지정할 수도 있고, 지정하지 않을 수도 있다. 즉, 직접 통신 방법을 분류해 보면 다음과 같다.
주소지정의 대칭방법은 송신자와 수신자가 모두 상대방의 주소나 이름을 직접명시하며, 2개의 프로세스가 주로 1:1통신을 하는 경우에 사용한다.
주소지정의 대칭방법:송신자/수신자가 모두 상대방을 직접 지정함
주소지정의 비대칭 방법:송신자는 수신자를 직접 지정하며, 수신자는 송신자를 지정하지 않음.
send(A,메세지):프로세스 !에게 메시지를 송신함
receive(B,메세지):프로세스 B로부터 메세지를 수신함
주소지정비대칭방법은 송신자는 수신자를 직접 지정하지만, 수신자는 송신자를 직접지정하지 않는 경우에 사용한다. 즉, 수신자가 송신자의 주소나 이름을 굳이 알 필요가 없을 때에 이러한 방법을 사용한다. 이때에는 1:n이나 n:1통신이 이루어질 수 있다.
send(A,메세지):프로세스A에게 메세지를 송신함
receive(?메세지):?는 메세지를 발생시킨 프로세스의 이름으로 자동 설정됨
A.프로세스A가 프로세스?(X,Y,Z)로 부터 메세지를 받음
B.프로세스 A가 프로세스 X,Y,Z에게 메세지를 보냄
직접통신의 통신링크성격:통신을 원하는 프로세스간에 통신 링크가 자동적으로 설정 되어야 한다.
통신하는 상대 프로세스의 이름을 알아야 한다.
각각의 통신 링크는 양방향 통신이어야 한다.
간접통신:
직접통신 방법은 손시자가 수신자의 주소나 이름을 반드시 명기해야 하기 때문에 이름이나 주소가 변경되는 경우에는 메세지통신을 위한 모듈을 재번역하거나 변경해야하는 문제가 발생한다. 간접통신은 송신자와 수신자가 직접 메세지를 서로 주고받는 것이 아니라, 일시적으로 메세지를 넣어둘 수 있는 공용의 큐(메일박스:mail box)에 메세지를 송신해 두거나 수신해 둔 뒤에 이 메일박스(우편함)와 연결된 송수신자가 해당 메세지를 처리하는 방법을 사용한다.
송신자와 수신자 간의 통신 링크의 연결방법은 다양하게 나타날수 있다.
1:1, n:1, n:n연결
1:1연결방법은 2개 프로세스 사이에 사적인 통신 링크를 유지한 후, 메일 받스를 이용하여 서로 메세지를 주고 받을 수 있는 형태이다. n:1연결 방법은 클라이언트/서버 체제 하에서 나타나며, 이때의 메일 박스를 포트라고 부른다 1:n연결방법은 하나의 프로세스가 다수의프로세스들에게 메세지나 정보를 한꺼번에 보내는 응용분야에 사용된다.
간접통신에서의 통신 링크의 성격이다.
-공유우편함을 갖는 프로세스간에만 통신링크가 설정된다.
-1개의 링크는 2개 이상의 프로세스와 관계할 수 있다.
-통신 링크는 단일 방향이거나 양방향 통신이다.
간접통신방법에서 사용되는 메일박스(우편함)의 소유권은 해당 프로세스가 개별적으로 소유하는 경우와 시스템이 소유하는 경우로 나누어볼 수 있다.
개별우편함의 운용
각각의 프로세스는 우편함을 프로세스의 일부로 정의하여 생성해놓고 있다. 메세지를 수신할 때에는 자신의 우편함에서 가져오기만 하면 되고, 메세지를 송신할 때에는 해당 프로세스의 우편함 이름을 지정하여 송신하게 된다. 이 경우, 프로세스간에 공유 우편함을 운용할 수 도 있는대 이때에는 우편함을 선언한 프로세스가 우편함의 소유자가 되고, 우편함의 이름을 아는 프로세스는 사용자가 되어 우편함을 외부적으로 선언한 후에 송/수신에 사용하기도 한다. 그리고, 해당 프로세스가 종료되면 개별 우편함도 자동적으로 소멸된다.
메일박스의 소유권을 시스템이 갖는 경우에는 해당 시스템 운영체제가 우편함을 제공한다. 이때, 운영체제의 역할은 우편함의 생성, 메세지의 송수신, 우편함의 소멸등을 담당하며, 우편함에 대한 소유권(사용권)은 해당 프로세스의 시스템 호출에 의해서 이루어진다. 따라서, 여러개의 프로세스가 시스템 호출을 할 수 있기 때문에 우편함에 대한 여러 개의 수신 프로세스가 생기기도 한다.
'Oracle' 카테고리의 다른 글
안드로이드 OS '2.2 버전' 아이폰과 진검승부 가능할 듯 (0) | 2010.05.20 |
---|---|
무선테더링이란? (0) | 2010.05.20 |
졸업작품 플래시애니메이션 (0) | 2010.01.11 |
움직이는이모티콘 (0) | 2009.11.02 |
3D 상반기 수업자료ppt (0) | 2009.11.01 |