Notice
Recent Posts
Recent Comments
05-21 07:17
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

Byeol Lo

3.4 Interprocess Communication 본문

OS/OS Design

3.4 Interprocess Communication

알 수 없는 사용자 2024. 4. 12. 02:56

 운영체제에서 동시에 실행되는 프로세스는 독립 프로세스 또는 협력 프로세스가 될 수 있다. 프로세스가 independent 경우에는 시스템 내에서 다른 프로세스와 데이터를 공유하지 않는다. 프로세스가 cooperating 경우에는 시스템 내에서 다른 프로세스에 영향을 주거나 받을 수 있다. 명백히 다른 프로세스와 데이터를 공유하는 프로세스는 협력 프로세스이다. 이러한 협력을 허용하는 환경을 제공하는 이유는 여러가지가 있는데,

  • Information Sharing: 여러 응용 프로그램이 동일한 정보에 관심을 가질 수 있기 때문에, 이러한 정보에 대한 동시 액세스를 허용하는 환경을 제공해야 함
  • Computation Speedup: 특정 작업을 더 빠르게 실행하려면 해당 작업을 하위 작업으로 나누어야 한다. 각 하위 작업은 다른 작업들과 병렬로 실행된다. 이런 속도 향상은 컴퓨터가 여러 개의 처리 코어를 가지고 있을 때에만 가능하다.
  • Modularity: 시스템은 모듈화된 방식으로 구성하고, 시스템 기능을 별도의 프로세스나 스레드로 나눌 수 있다. 이는 이미 2장에서 논의함

 cooperating process는 서로 데이터를 교환할 수 있는 프로세스 간 통신(IPC) 메커니즘을 필요로 한다. 이는 데이터를 보내고 받을 수 있게 해준다. 프로세스 간 통신의 기본적인 두 가지 모델이 있는 것을 알 것이다. Shared Memory, Message Passing. 공유 메모리 모델에서는 협력하는 프로세스가 공유하는 메모리 영역이 설정된다. 프로세스는 공유 영역에 데이터를 읽고 쓰는 방식으로 정보를 교환할 수 있다. 메시지 패싱 모델에서는 협력하는 프로세스 간에 메시지를 교환함으로써 통신이 이루어진다.

 위에서 언급된 두 모델은 운영체제에서 흔하게 사용되며, 많은 시스템이 두 모델을 미리 구현을 한다. 메시지 패싱은 데이터 동기화 문제에 대한 conflict를 피할 필요가 없기 때문에 작은 양의 데이터를 교환하는데 유용하다. 메시지 패싱은 또한 분산 시스템에서 공유 메모리 보다 쉽게 구현할 수 있지만, 공유 메모리는 메시지 패싱보다 빠를 수 있다. 왜냐하면 메시지 패싱 시스템은 일반적으로 시스템 호출을 사용하여 구현되기 때문에 커널의 개입이 들어가서 많은 시간이 소요가 된다. 공유 메모리 시스템에서는 공유 메모리 영역을 설정하는 데만 시스템 호출이 필요하다. 공유 메모리가 설정되면 모든 액세스가 routine memory access(그냥 평범한 메모리 액세스)로 처리되며 커널의 도움이 필요하지 않게 된다.

  • 프로세스가 independent인 경우, 다른 프로세스와 데이터 공유 안함
  • 프로세스가 cooperating인 경우, 다른 프로세스와 데이터 공유 함
  • cooperating process가 필요한 이유
    • Information Sharing - 여러 프로세스가 동일한 정보에 관심을 가질 수가 있기 때문
    • Computation Speedup - 특정 작업을 빨리 하기 위해 병렬로 실행해야 하는데 그때 하위 작업으로 나누는 작업이 필요
    • Modularity - 시스템을 Object oriented 로 구성, 시스템의 기능을 별도의 프로세스 및 스레드로 나눌 수 있게 됨
  • cooperating process는 IPC(프로세스 간 통신) 메커니즘을 필요로 함
  • 이 통신 메커니즘은 두가지: Shared Memory, Message Passing
  • Shared Memory는 routine memory access로 처리(커널 도움 x), 공유 메모리 영역 설정할 때 시스템 호출 필요, 구현 까다로움
  • Message Passing은 conflict가 일어날 수 없기 때문에 작은 양의 데이터를 교환하는데 유리, 공유 메모리에 비해 쉽게 구현 가능, 시스템 호출을 사용하기에 커널이 개입됨

'OS > OS Design' 카테고리의 다른 글

3.6 IPC in Message-Passing Systems  (0) 2024.04.13
3.5 IPC in Shared-Memory Systems  (0) 2024.04.12
3.3 Operations on Processes  (1) 2024.04.12
3.2 Process Scheduling  (0) 2024.04.10
3.1 Process Concept  (0) 2024.04.09
Comments