IT 자격증+학위/정보처리기사

쓰레드, 프로세스 , IPC

IT여행 2023. 2. 2. 10:55

 

- 프로세스, 쓰레드

 

차이점

: 메모리를 공유하느냐의 차이

 

참고: 프로세스, 쓰레드 정리

https://zeroco.tistory.com/75

 

 

- IPC ( Inter-Process Communication ) 
  컴퓨터 프로세스간 통신

운영체제 상에서 실행 중인 프로세스들 끼리 정보를 주고받는 것을 Inter Process Communication(IPC)라고 한다.

프로세스는 자신에게 할당된 메모리 내의 정보만 접근할 수 있고, 이를 벗어나서 접근할 경우, C언어를 배우는 사람이라면 누구나 한 번쯤은 봤을 Segmentation Fault 등의 오류가 발생하게 된다. 이는 안전성을 위해 운영체제에서 자기 프로세스의 메모리만 접근하도록 강제하고 있다는 것이다.

따라서 한 프로그램에서 병렬성을 키우면서 공유되는 데이터를 사용하기 위해 

메모리 공간을 공유하는 스레드를 이용하는 경우가 많다 (물론 스레드를 쓰는 이유는 이것 말고도 매우 다양하다). 

하지만 이것은 하나의 프로그램에서만 의미가 있는 것이고, 서로 다른 프로그램(= 즉, 서로 다른 프로세스)의 데이터를 공유하려면 결국 다른 프로세스의 메모리를 접근할 필요가 발생한다. 따라서 이 때는 IPC라는 것을 사용하게 된다.


참고: https://namu.wiki/w/%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EA%B0%84%20%ED%86%B5%EC%8B%A0

 

 


User space 영역 - process ( = program)

Kernel space 영역 - IPC 

 

참고 : 

https://jwprogramming.tistory.com/54