운영체제 - IPC

yjkim·2023년 9월 5일
0

운영체제

목록 보기
4/7

Ch3 IPC

IPC란?

시스템 내의 프로세스는 독립적이거나 협력적이다.
협력적인 프로세스 (Cooperating process)는 다른 프로세스들과 영향을 주고 받는다.
협력 프로세스의 이유는 다음과 같음

  • 정보 공유 : 여러 사람들이 하나의 파일을 동시에 사용하려면 당연히 그러한 환경을 만들어 주어야함
  • 계산 속도 향상 : 위의 이유와 비슷한데 동일한 작업을 쪼개서 하면 더 빠르게 완료 가능
  • 모듈화 : 모듈화란 하나의 시스템을 여러 기능으로 쪼개는 것을 뜻한다. 시스템 기능을 여러 프로세스로 쪼개는 것 또한 이에 속함
  • 편의성

협력프로세스가 협력하기 위해 필요한 것이 바로 이 IPC 라는 것임

IPC 커뮤니케이션 모델에는 메세지패싱, 공유메모리가 있음

IPC 통신 모델

Messaging passing(메시지 교환) VS Shared memory (데이터 공유)

Messaging passing

커널(OS)가 대리 전달해주는 방식을 뜻함. 안전하지만 속도가 떨어지는 단점이 있다.
Indirect 방식과 Direct 방식이 있음

Direct Communication

  • 프로세스가 커널에 메세지를 전달해주면 커널이 다른 프로세스에게 메세지를 전달해주는 방식
send(P, message) –send a message to process P
receive(Q, message)–receive a message from Q

Indirect Communication

  • 프로세스가 커널에 존재하는 메세지들의 큐인 mail box에 메세지를 저장하면 다른 프로세스가 커널의 mail box에 접근하여 메세지를 읽어오는 방식
  • 번거롭고 메세지 오버헤드가 큰것이 단점 (쌓여있는 메일들)
send(A, message) –send a message to mailbox A.
receive(A, message) –receive a message from mailbox A.

메일박스와 포트의 예시


포트란 하나의 수신자에 여러명의 송신자가 결합된 형태를 뜻함.--> 주로 클라이언트/서버 어플리케이션에 쓰임, 서버가 수신자 역할

Shared memory

프로세스 A와 프로세스 B가 모두 일고 쓸 수 있는 메모리 공간을 만들고 거기서 정보를 주고 받을 수 있게 하는것.

  • 당연히 메세지 패싱 기법보다 성능이 좋다. 그러나 동기화가 문제

다음은 쓰레드 ㄱ

profile
We may throw the dice, but the Lord determines how they fall

0개의 댓글