병행 프로세스 2

OwlSuri·2023년 4월 6일
0

방통대 운영체제

목록 보기
5/12

생산자-소비자 문제 정의

  1. 두 협력 프로세스 사이에 버퍼를 두고 생산자와 소비자의 상황을 다루는 문제
  • 생산자 : 데이터 넣는 프로세스
  • 소비자 : 데이터를 꺼내는 프로세스

    버퍼는 공통 영역

생산자-소비자 문제 조건

  1. 버퍼에 여러 프로세스 동시접근 불가능
  • 버퍼에 넣을때 꺼낼 수 없음
  • 꺼낼때 넣을 수 없음
    -> 상호배제 필요
  1. 버퍼의 크기가 유한(유한 버퍼문제)
  • 버퍼가 가득차면 생산자 대기 필요
  • 버퍼 빈경우 소비자 대기 필요
    -> 동기화 필요

세마포어를 이용한 해결



  • 결론

판독기-기록기 문제 정의

  1. 여러 협력 프로세스 사이에 공유자원을 두고 판독기-기록기 상황을 다루는 문제
  • 판독기 : 데이터 읽는 프로세스
  • 기록기 : 데이터 쓰는 프로세스

판독기-기록기 문제 조건

  1. 하나의 기록기가 공유자원에 데이터를 쓰는 중 다른 기록기나 판독기는 공유자원에 접근 불가
  • 공유 자원에 데이터를 쓰는 동안에는 누구도 접근 불가
  • 공유지원에 데이터를 읽는 도앙ㄴ에는 데이터를 쓸 수 없음
    -> 상호배제 필요
  1. 여러 판독기는 동시에 공유자원에서 데이터를 읽을 수 있음
  • 판독기가 읽는 중 새로는 판독기 읽기시도 가능
  • 판독기가 읽는 중 기록기 대기
    -> 새로운 판독기 읽기 시도 -> 가능/불가능 정책적 결정 필요

제 1판독기-기록기 문제

  1. 판독기가 공유자원에 접근중이라면 기록기보다 판독기에 우선순위 줌
    -> 새로운 판독기는 즉시 공유자원 접근가능
    -> 기록기의 기아상태 유발 가능

세마포어를 이용한 해결

제 2판독기-기록기 문제

  1. 판독기가 공윶바원에 접근중이라면 판독기보다 기록기에 우선순위 줌
    -> 대기중인 기록이 있다면 새로운 판독기는 공유자원에 접근 불가
    -> 판독기 병행성 떨어짐, 판독기의 기아상태 유발 가능

세마포어를 이용한 해결

프로세스간 통신(IPC)

  1. InterProcess Communication
  2. 병행프로세스가 데이터를 서로 공유하는 방밥
  • 공유메모리 방법
  • 메시지 전달 방법
  1. 하나의 운영체제에서 두 방법 함꼐 사용 가능

공유 메모리 방법

  1. 협력 프로세스가 동일한 변수를 사용
  • 동일한 변수 : 공유지원인 메모리 공간 사용
  • 생산자-소비자 문제의 유한버퍼
  • 판독기-기록기 문제의 공유자원
  1. 대량 데이터 교환 -> 고속통신 가능
  2. 통신상 발생 가능 문제 해결
  • 응용 프로그래머

메세지 전달방법

  1. 협력 프로세스가 메세지를 주고받음
  • 시스템 호출 send(), receive()
  1. 소량 데이터 교환에 적합
  2. 통신상 발생 가능 문제 해결
  • 운영체제

메세지 전달 방법의 논리적 구조

  1. 통신 링크
  • 메세지가 지나다니는 통로
  1. 통신링크의 구현 형태
  • 연결대상 : 두 프로세스/셋 이상 프로세스
  • 두 프로세스 사이 링크 개수 : 하나/둘이상
  • 방향성 : 단방향/양방향
  • 용량 : 무한/유한/0

통신 링크의 용량

직접 통신


간접통신


profile
기억이 안되면, 기록을 -

0개의 댓글