본문 바로가기
CS/OS

[OS] 4. 프로세스(2)

by 두둠칫 2020. 11. 2.

1. PCB(Process Control Block)

프로세스는 각각 자신의 PCB를 갖고 있으며 PCB는 프로세스에 대한 모든 정보를 포함한다.

PCB

 

 

 

2. IPC(Inter-Process Communication)

프로세스는 기본적으로 서로에게 간섭할 수 없고 독립적이지만 필요에 따라 협력할 수 있고, 이유는 다음과 같다.

1) 정보교환

2) 계산 가속화 : 특정 Task를 sub task들로 나누어 가속화하기 위해 병렬로 처리

3) 모듈성 : 기능에 따라 별도의 프로레스 또는 스레드로 나누어 모듈식 형태로 시스템을 구성하기를 바랄 때

4) 편의성 : 개별 사용자들이 동시에 작업할 많은 Task를 병렬로 처리하기 위해

 

 

 

3. IPC Model

1) Shared memory

- 프로세스가 OS에게 명확하게 공유할 메모리를 생성/참여하기를 요청

- OS가 shared memory를 만들어 준 후 통제권은 다시 프로세스에게 넘긴다.

* 즉, 프로세스들은 스스로 동일한 위치에 쓰지 않아야하며 이를 보장할 책임이 있다.

- 공유 메모리 영역공유 메모리 세그먼트를 생성하는 프로세스의 주소 공간에 위치한다.

  따라서 이를 이용하기 위해선(Shared memory에 참여하기 위해선) 자신의 주소 공간에 이 세그먼트를 추가해야한다.

- 주요 이슈는 Sync

 

 

2) Message Passing

- OS가 통제하며 OS-provided IPC facility를 통해 이루어진다. ex) massage queue

- 기본적으로 send/receive 연산을 제공한다.

cf) Microkernel이 Message Passing 모델을 가장 고려해서 만든 시스템

 

 

 

4. IPC Mechanism

1) Signal

- 같은 컴퓨터 내 프로세스 간 특정 event를 notify하는 것

- Sync or Async

- 프로세스는 Signal을 SignalAction을 통해 Handling하며 Handling함수는 Overriding할 수 있다.

 

 

2) RPCs(Remote Procedure Calls)

RPC

- 원격(다른 컴퓨터)에 있는 프로세스와 통신하는 것

 

cf) Endianess

- 컴퓨터마다 Data representation 방식이 다르다.

endian

- 따라서 메세지를 보내기 전 맞춰주어야 하며 이를 위해 XDR(external data representation) 프로토콜을 사용한다.

 

 

3) Pipe

Pipe Direction 관점 uni-direcition    - 단방향
bi-direction half-duplex  - 양방향
 - 한번에 하나의 operation 가능
full-duplex  - 한번에 두개 이상의 operation 가능
Relationship 관점 ordinary pipe    - 부모-자식 프로세스 간 자동적으로 만들어지는 pipe
 - uni-direction
named pipe    - 임의로 만드는 pipe
 - bi-direciton
 - 프로세스가 죽어도 pipe는 alive

 

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

[OS] CPU, Processor, Core, Process, Thread 그리고 관계 정리  (0) 2020.11.04
[OS] 5. Thread  (0) 2020.11.03
[OS] 3. 프로세스(1)  (0) 2020.10.30
[OS] 2. 시스템 구조  (0) 2020.10.28
[OS] 1. 개요  (0) 2020.10.28