본문 바로가기
Computer Science

[Operating System] InterProcess Communication(IPC)

by Henry Cho 2022. 3. 2.
728x90

InterProcess Communication(IPC)


포스트 난이도: HOO_Middle

 

[Notice] 포스트 난이도에 대한 설명

안녕하세요, HOOAI의 Henry입니다. Bro들의 질문에 대한 내용을 우선적으로 포스팅이 되다 보니 각각의 포스트에 대한 난이도가 달라서 난이도에 대한 부분을 작성하면 좋겠다는 의견을 들었습니다

whoishoo.tistory.com


 

# InterProcess Communication

InterProcess Communication은 IPC라고 줄여서 부르는 프로세스 간의 상호 소통을 의미한다.

프로세스끼리 상호 소통은 작업 수행의 중복과 같은 에러가 발생하지 않도록 방지하는 중요한 요소이다.

예를 들어 사용자가 프린터에서 프린트를 한다고 했을 때 여러 프로세스가 동시에 프린터에 접근하면 프린트가 되지 않는 문제가 발생할 수 있다.

이렇게 같은 작업에 2개 이상의 다중 프로세서가 접근하여 작업을 수행하려는 것을 race conditions라고 한다.


# Race conditions

Race conditions이 발생하게 되는 원인은 여러 프로세스가 read 또는 write과 관련된 데이터를 공유하다가 최종 결과에서 하나의 프로세스만을 필요로 할 때 여러 프로세스가 최종 결과에 접근하려고 하는 과정에서 문제가 발생한다.

이러한 Race conditions와 같은 문제가 발생하지 않도록 Mutual exclusion 방식을 사용한다.


# Mutual Exclusion

Mutual Exclusion은 Race conditions이 발생하지 않도록 도와주는 역할을 수행한다.

사실상 도와준다기보다는 Race conditions가 발생할 수 있는 상황을 피하여 문제가 생기지 않도록 하는 것을 의미한다.

이때 사용하는 접근 방식을 Critical region 또는 Critical section이라고 부른다.

Mutual exclusion에서는 두 개의 프로세스가 동시에 같은 Critical regions에 있을 수 없다.

Critical region은 race conditions가 될 수 있는 상황에서 blo commcked 시켜 다른 프로세스가 작업을 수행하지 못하도록 한다.

예를 들어 프로세스 A가 Critical region에 들어와서 Critical region을 나갈 때까지 프로세스 B는 작업을 수행하지 않고 Process A의 Critical region이 leaved가 되고 나서 critical region에 entered가 된다는 것이다.

하지만 유의할 점은 프로세스가 무작정 wait 하는 것은 아니라는 것이다.

이 경우 achieve fairness와 avoid starvation에 대한 조건을 critical region에 적용한다.


728x90

댓글