[백엔드 로드맵 - OS] IPC

Sierra·2022년 7월 27일
0

Backend-Roadmap

목록 보기
15/43
post-thumbnail

Intro

이번 주제는 IPC 즉 Inter Process Communication.
OS 에서 상당히 중요한 파트 중 하나다.

IPC

프로세스 간 통신을 의미한다.
프로세스 그 자체는 독립 된 실행 객체라고 할 수 있다. 즉 다른 프로세스의 영향을 받지 않는다. 그러므로 서로간에 통신을 하기 위해 무언 가 장치가 필요하다.

커널 영역에서 IPC 를 제공하고 프로세스는 커널이 제공하는 IPC 설비를 통해 프로세스 간 통신을 할 수 있다.

종류

1. Message Passing

메시지 큐를 사용하여 송신 프로세스는 큐에 enqueue, 수신 프로세스는 큐에 dequeue 하며 상호간 통신한다.

  • 파이프 : Shell 에서 사용하는 파이프라인을 의미한다.
  • 소켓 (TCP/IP) : 소켓 프로그래밍 할 때 그 소켓 맞다.

2. Shared Memory

프로세스 끼리 특정 메모리 영역을 공유하며 상호간 통신하는 방법이다.
같은 메모리 영역을 공유하니 데이터 자체를 공유할 수 있다.
하지만 이럴 경우 메모리 간에 동기화 에러가 날 수 있다. 그러므로 세마포어와 뮤텍스를 사용하여 이러한 문제를 해결한다.

Outro

간단하게 IPC에 대해 알아보았다. IPC란 무엇인 지, 어떤 종류가 있는 지를 알아보았다.

다음 포스팅은 OS의 입출력 관리에 대해 다뤄 보도록 하겠다.

profile
블로그 이전합니다 : https://swj-techblog.vercel.app/

0개의 댓글