[컴퓨터공학] 프로세스와 스케줄러 이해 -프로세스간 커뮤니케이션

less than 1 minute read

프로세스와 스케줄러 이해 - 프로세스간 커뮤니케이션

패스트캠퍼스 강의 보면서 정리하고 있습니다

프로세스간 커뮤니케이션

  • 프로세스는 다른 프로세스의 공간을 접근할 수 없다
  • 여러 프로세스 동시 실행을 통한 성능 개선, 복잡한 프로그램을 위해 프로세스간 통신 필요

IPC(InterProcess Communication)

  • 프로세스간 통신 방법을 제공

다양한 IPC 기법

  • 2번부터는 커널 공간(물리메모리에 존재)을 사용함 (커널 공간 공유)
  1. file(저장매체) : 실시간 전달 어려움
  2. Message Queue
    • 양방향 통신
    • FIFO 정책으로 데이터 전송
    • 부모, 자식 관계가 아니라도 어느 프로세스간에라도 데이터 송수신이 가능
  3. Shared Memory
    • 노골적으로 kernel space에 메모리 공간을 만들고 해당 공간을 변수처럼 사용
    • 해당 메모리 주소를 마치 변수처럼 접근하는 방식
    • 공유메모리 key를 가지고 여러 프로세스가 접근 가능
  4. Pipe
    • 기본 파이프는 단방향 통신
    • fork()로 자식 프로세스 만들었을 때 부모와 자식간의 통신
  5. Signal
    • 유닉스에서 30년 이상 사용된 전통적인 기법
    • 커널 또는 프로세스에서 다른 프로세스에 어떤 이벤트가 발생되었는지를 알려주는 기법
    • 프로세스 관련 코드에 시그널 핸들러를 등록, 해당 시그널 처리 실행
    1. 시그널 무시
    2. 시그널 블록 (블록을 푸는 순간 프로세스에서 해당 시그널 전달)
    3. 등록된 시그널 핸들러로 특정 동장 수행
    4. 등록된 시그널 핸들러가 없다면 커널에서 기본 동작 수행
  6. Semaphore
  7. Socket
    • 기본적으로는 클라이언트와 서버등 두 개의 다른 컴퓨터간의 네트워크 기반 통신을 위한 기술
    • 소켓을 하나의 컴퓨터 안에서 두 개의 프로세스간에 통신 기법으로 사용 가능