프로세스간 커뮤니케이션 (InterProcess Communication - IPC)
프로세스는 다른 프로세스의 공간을 접근할 수 없다
프로세스들이 서로의 공간을 쉽게 접근할 수 있다면?
- 프로세스 데이터/코드가 바뀔 수 있다 -> 해킹 -> 매우 위험
IPC (InterProcess Communication)
프로세스간에 커뮤니케이션을 할 수 있게 프로세스간 통신 방법을 제공한다
IPC : InterProcess Communication
* 프로세스간 통신이 필요한가요?
- 성능을 높이기 위해 여러 프로세스를 만들어서 동시 실행
- 이 때 프로세스간 상태 확인 및 데이터 송수신이 필요하다
프로세스간 커뮤니케이션의 방법
1. file 사용
- file을 사용하면 실시간으로 직접 원하는 프로세스에 데이터 전달이 어렵다
예) 리눅스
* 프로세스간 공간은 완전히 분리되어 있다
(사용자 모드에서는 커널 공간 접근 불가)
* 커널 공간은 공유한다
(보다 구체적인 내용은 가상 메모리에서 다룸)
다양한 IPC 기법
* IPC : InterProcess Communication
1. file 사용
2. Message Queue
3. Shared Memory
4. Pipe
5. Signal
6. Semaphore
7. Socket 등등
* 2번 부터는 모두 커널 공간을 사용하는 것
※ 정리
* 여러 프로세스 동시 실행을 통한 성능 개선, 복잡한 프로그램을 위해 프로세스 간 통신 필요
* 프로세스간 공간이 완전 분리
* 프로세스간 통신을 위한 특별한 기법 필요 : IPC(InterProcess Communication)
* 대부분의 IPC 기법은 결국 커널 공간을 활용하는 것임
이유 : 커널 공간은 공유하기 때문
출처 : 제로베이스
'공부 Note > 운영체제' 카테고리의 다른 글
Chapter 03 프로세스 & 스케쥴러 (8) (0) | 2021.12.30 |
---|---|
Chapter 03 프로세스 & 스케쥴러 (7) (0) | 2021.12.30 |
Chapter 03 프로세스 & 스케쥴러 (5) (0) | 2021.12.27 |
Chapter 03 프로세스 & 스케쥴러 (4) (0) | 2021.12.24 |
Chapter 03 프로세스 & 스케쥴러 (3) (0) | 2021.12.24 |