Today
-
Total
-
  • 운영체제 - 6(모니터, IPC)
    OS 2019. 6. 28. 14:05

     

    상호배제 / 동기화

     

    1. 모니터 등장 이유

     

    - 세마포어 변수에 영향을 미치는 P, V 연산이 프로그램 전체에 널리 퍼져 세마포어에 미치는 영향 파악이 어렵다

    -> 프로그램 작성 어려움 -> 상호배제 및 프로세스 사이의 조정을 위한 유연성, 강력한 도구가 필요

     

    2. 모니터 프로세스의 동기화 기법

     

    - 모니터 : 조직적인 구성체를 두어 공유자원, 임계영역을 체계적으로 관리

    - 일종의 클래스 개념으로 묶어버린 소프트웨어 모듈 객체

    - 모니터 경계에서 한번에 한 프로세스만 진입하도록 제어되므로 상호 배제 원칙을 지킬 수 있음

     


     

    IPC(Inter Process Communication)

     

    - 프로세스 간에 서로 데이터를 주고받기 위한 목적의 커뮤니케이션

     

    1. Shared Memory : 공유 메모리

    - 프로세스 A와 B 간에 메모리를 공유하여 데이터를 주고받게 함(ex)UNIX 공유메모리)

    2. Message Passing System

    - 두 개의 프로세스 간 메시지 형태의 데이터를 송신/수신

    - 프로세스 A가 B에게 전송할 메시지를 커널 내 메시지 큐로 보내고, 프로세스 B는 메시지 큐로부터 가지고온다.

    1) 직접 통신 방식

    : 직접적으로 송신사가 수신자의 이름을 명시하여 링크 

    - 실시간 전송 가능 But 수신자가 반드시 준비가 되어있어야만 보낼 수 있다는 단점 존재

     

    2) 간접 통신 방식

    - 송수신자를 분리

    - 수신자의 가용성에 상관 없이 송신자가 보낼 수 있음 / 메시지사용의 융통성 제공

     

    3) 예외조건

    - 발생할 수 있는 예외조건을 처리해야만 함

     

        (1) 프로세스가 종료되는 경우

        - 수신자가 종료되어 메시지를 받지 못함

        - 수신자가 메시지를 받더라도 송신자에게 응답을 보내지 못하므로 송신자는 계속 wait하게 됨

     

        (2) 메시지 분실

        - 송신자가 보내는 메시지 자체가 분실

        - 수신자가 보내는 응답 메시지가 분실

     

        (3) 메시지 훼손

        - 송신자가 보낸 메시지가 훼손되어 전달

     

     

     

    댓글