.etc/Computer Fundamentals

[운영체제 06] IPC의 종류

Jueun Park 2020. 11. 8. 15:30

::: IPC - Inter Process Communication :::

프로세스 간 커뮤니케이션을 위한 통신방법


[IPC의 종류]

File 사용

  • 사용방법 : 다른 프로세스에 전달할 내용을 파일에 씀, 다른 프로세스가 해당 파일을 읽음
  • 단점 : 시간이 오래 걸린다. --> 가능은 하지만 비효율적, 다른 기법을 주로 이용함

- 주요 IPC 기법

Pipe

  • 단방향 통신
  • pipe로 길을 만들고, fork()로 자식 프로세스를 생성하여 사용

Message Queue

  • FIFO 정책으로 데이터 전송
  • 양방향 송수신 가능, 프로세스가 부모/자식간이 아니라도 송수신 가능함
  • msgsnd : message send
  • msgrcv : message receive

Shared Memory

  • kermel space에 메모리 공간을 만들어, 해당 공간을 변수처럼 사용
  • 공유메모리 key로 여러 프로세스에서 접근 가능함

- 다른 목적으로 사용되는 기술이나, IPC로도 쓰일 수 있는 기법들

Signal

  • *Signal 정보도 PCB 구조체에 저장된다.
*Signal(시그널) : 커널이 프로그램으로 보내거나, 프로그램이 다른 프로그램으로 보내는 이벤트
기본동작이 정의되어 있으나, 특별한 동작으로 재정의 가능하다.
sigusr1, sigusr2(signal user을 의미)는 기본동작 없이 정의해서 사용함.
이것을 프로세스간 공유하는 용도로 활용하기도 한다.

shell에 'kill -l' 입력하면 종류를 볼 수있다.

c언어로 코딩하다보면 sigabort error를 심심치않게 보는데, 이것도 signal의 일종인 것 같다.

  • signal이 뜨면 PCB 구조체의 항목에 그 정보가 저장된다.
  • PCB에 들어있는 시그널 정보들은 커널모드에서 사용자모드로 바뀌는 순간에 실행된다.
pending 처리 대기중인 시그널
sigpending  
blocked 동작이 블럭된 시그널
sig 시그널 동작 핸들러

 

Socket

  • 네트워크 통신을 위한 기술
  • 두 대의 다른 컴퓨터의 통신을 위한 기술이나, 두 개의 프로세스간 통신을 위해서도 사용할 수 있음