ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 프로세스간 통신
    운영체제/프로세스 2018. 2. 3. 16:27

    운영체제 내에서 실행되는 병행 프로세스들은 독립적이거나 협력적인 프로세스들일 있다.

    프로세스가 다른 프로세스들에게 영향을 주거나 받지 않는다면 독립적인 프로세스라고 말하고

    프로세스가 다른 프로세스들에게 영향을 주거나 받는다면 협력적인 프로세스라고 말한다.

     

    프로세스 협력을 허용하는 환경을 제공하는 이유

    정보공유 , 계산 가속화, 모듈성, 편의성

     

    협력적 프로세스들은 데이터와 정보를 교환할 있는 프로세스간 통신 기법을 필요로 한다.

    프로세스간 통신 모델에는 공유 메모리 방식과 메세지 전달 방식이 있다.

     

     

    공유 메모리 시스템

    공유 메모리 방식을 사용할 운영체제는 프로세스들이 동시에 동일한 위치에 쓰지 않도록 책임져야한다.

     

    생산자 - 소비자 문제

    생산자 프로세스는 정보를 생산하고 소비자 프로세스는 정보를 소비한다.

    생산자 - 소비자 문제를 해결하는 방법 하나는 공유메모리를 사용하는 것이다.

    생산자는 정보를 채워 넣고 소비자는 정보를 소모하는 버퍼 공유 메모리 영역에 둠으로써

    생산자는 자원을 생산하고 소비자는 자원을 소모할 있다.

     

    버퍼의 종류 : 무한 버퍼, 유한 버퍼

     

     

    메시지 전달 시스템

    메시지 전달 방식은 동일한 주소 공간을 공유하지 않고도 프로세스들이 통신을 하고 동작을 동기화 있도록 허용하는 기법을 제공한다.

    메시지 전달 시스템의 연산에는 send  receive 있다.

    메시지 전달 방식에서는 프로세스가 통신을 원하면 통신 연결 설정되어야 한다.

    프로세스들은 send(), receive() 연산을 사용하여 메세지를 교환한다.

     

    통신 연결 구현 방식

    물리적 방식 : 공유 메모리, 하드웨어 버스, 네트워크

    논리적 방식 : 직접 또는 간접 통신, 동기식 또는 비동기식 통신, 자동 또는 명시적 버퍼링

     

     

    직접 또는 간접 통신

    직접 통신 : 통신을 원하는 프로세스는 통신의 수신자 또는 송신자의 이름을 명시한다.

    특성 : 통신을 원하는 프로세스 쌍들 사이에 연결이 자동적으로 구축된다.

    연결은 정확히 프로세스들 사이에만 연관된다.

    통신하는 프로세스들 사이에는 정확하게 하나의 연결이 존재한다.

    문제점 : 프로세스의 이름을 바꾸면 다른 모든 프로세스의 정의를 검사할 필요가 있다.

     

    간접 통신: 메세지들은 메일 박스 또는 포트로부터 송수신 된다. 메일 박스는 고유의 id 가진다.

    특성 : 프로세스들이 공유 메일 박스를 가질 때에만 이들 프로세스가 통신한다.

    연결은 이상의 프로세스들과 연관된다.

    통신하고 있는 프로세스들 사이에는 다수의 서로 다른 연결이 존재한다.

    문제점 : 하나의 메일 박스를 여러 개의 프로세스가 공유하면 메시지의 수신자가 불분명하다.


     

    동기화

    메시지 전달은 봉쇄형 또는 비봉쇄형 방식으로 전달된다.

    봉쇄형 보내기 : 송신하는 프로세스는 메세지가 수신 프로세스 또는 메일 박스에 의해 수신될 때까지 봉쇄된다.

    비봉쇄형 보내기 : 송신하는 프로세스가 메세지를 보내고 작업을 시작 한다.

    봉쇄형 받기 : 메시지가 이용 가능할 때까지 수신 프로세스가 봉쇄된다.

    비봉쇄형 받기 : 송신하는 프로세스가 유효한 메시지 또는 널을 받는다.

     

     

    버퍼링

    통신이 직접적이든 간접적이든, 통신하는 프로세스에 의해 교환되는 메시지는 임시 큐에 저장된다.

     

     

    구현 방식

    무용량 : 큐의 최대 길이가 0 송신자는 수신자가 메세지를 수신할 때까지 기다린다.

    유한 용량 : 큐는 유한한 길이를 가진다. 링크가 가득 차면 송신자는 안의 공간이 이용 가능 때까지 봉쇄된다.

    무한 용량 : 큐는 잠재적으로 무한한 길이를 가진다. 송신자는 결코 봉쇄되지 않는다.

    '운영체제 > 프로세스' 카테고리의 다른 글

    클라이언트 서버 환경에서 통신  (0) 2018.02.03
    프로세스에 대한 연산  (0) 2018.02.03
    스케줄러  (0) 2018.02.03
    프로세스 스케줄링  (0) 2018.02.03
    프로세스 개념  (0) 2018.02.03

    댓글