쉽게 배우는 운영체제 5장

신범철·2021년 5월 5일
0

21-1운영체제수업

목록 보기
5/7

프로세스 간 통신

프로세스 간 통신 개념

프로세스간의 메세지 전달

프로세스 간 통신의 종류

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

통신 방향에 따른 분류

  • 양방향 통신 : 데이터를 동시에 양쪽 방향으로 전송 할 수 있는 구조(소켓)
  • 반양방향 통신 : 데이터를 양쪽방향에서 전송 할 수있지만 동시 전송 x(무전기)
  • 단방향 통신 : 한쪽 방향으로만 데이터를 보낼 수 있는 구조(전역변수 파이프)

통신 구현 방식에 따른 분류

전역 변수를 사용하는 방식의 문제점은 데이터를 받는 상대 프로세스가 언제 정보를 받는지 실시간으로 확인이 어렵다는 점이다. 이때문에 수시로 전역변수 값을 확인해야한다.
이렇게 상태 변화를 살펴보기 위해 반복문을 무한 실행하며 기다리는 것을 바쁜 대기라고함

대기가 있는 통신 : 동기화를 지원하는 통신. 데이터를 받는 쪽은 데이터가 도착할 때까지 자동으로 대기 상대에 머물어 있다.(파이프, 소켓)
대기가 없는 통신 : 동기화를 지원하지 않는 통신. 데이터를 받는 쪽은 바쁜 대기를 사용하여 데이터가 도착했는지 여부를 직접 확인해야함(전역변수, 파일)

프로세스간 통신의 종류

전역변수를 이용한 통신

공동으로 관리하는 메모리를 사용하여 데이터를 주고 받는 것이다.

공유 자원과 임계구역

공유자원 접근

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

임계구역

공유 자원 접근 순서에 따라 실행 결과가 달라지는 프로그램의 영역

임계구역 해결 조건

  • 상호 배제 : 한 프로세스가 임계구역에 들어가면 다른 프로세스가 임계구역에 들어갈수 없다.
  • 한정 대기 : 프로세스가 무한히 대기하지 말아야한다.
  • 진행의 융통성 : 한 프로세스가 다른 프로세스의 진행을 방해해선 안된다.
profile
https://github.com/beombu

0개의 댓글