Q. IPC(Inter Process Communication)이란 무엇인가요?
프로세스 간에 서로 데이터를 주고받는 방법을 말합니다. 프로세스는 커널이 제공하는 IPC설비를 이용하여 프로세스 간 통신을 할 수 있습니다. 대표적으로 메시지 교환과 데이터 공유 방법이 있습니다.
- Message passing : 커널(OS)가 메모리 보호를 위해 대리 전달해주는 것을 말합니다. 따라서 안전하고 동기화 문제가 없습니다. 하지만 성능이 떨어진다는 단점을 가지고 있습니다.
- shared memory : 두 프로세스간의 공유된 메모리를 생성 후 이용하는 것을 말합니다. 성능은 좋지만 동기화의 문제가 발생합니다.
※ 동기화(Synchronization)란, 두 개의 프로세스 A,B가 shared memory를 이용해 데이터를 주고받을 때 A가 쓰면 B가 읽어가야 하는데 A가 쓰고 난 뒤인지 전인지 알 수 있는 방법이 없다. 그래서 A가 다 썼다고 알려줘야 B가 읽어갈 수 있다. 이와 같이 프로세스 또는 스레드들이 수행되는 시점을 조절하는 것이 동기화이다.
반응형
'cs지식 > Operating System' 카테고리의 다른 글
[OS] 경쟁상태, 교착상태(DeadLock), 세마포어와 뮤텍스 (0) | 2021.01.28 |
---|---|
[OS] CPU스케줄링 (0) | 2021.01.25 |
[OS] PCB와 Context Switching (0) | 2021.01.20 |
[OS] 시스템 콜(System Call) (0) | 2021.01.20 |
[OS] 인터럽트(Interrupt) (0) | 2021.01.15 |