목차
개요
이전 포스팅에서는 프로세스가 생성되고 종료되며 그러한 프로세스가 다중 프로그래밍 환경에서 적재와 할당 해제가 반복되면서 작업이 이루어지는 멀티테스킹; 병행 수행되는 경우를 알아보았는데
실행되는 병행프로세스는 다른 프로세스와 상호작용 유무에 따라서 독립적일 수도 있고 협력적 일 수도 있다.
독립 프로세스 : 실행중인 다른 프로세스 등과 정보를 공유하지 않음
협력 프로세스 : 실행 중인 다른 프로세스 들과 영향을 주거나 받는다.
따라서 이번 포스팅에서는 협력 프로세스를 제공하는 이유과 어떻게 통신을 하는지에 대해 알아보고 하위 포스팅으로 통신방법에 따른 OS에 적용된 방식나 간단한 구현 코드 API 등을 알아보도록 하겠다.
협력 프로세스 제공 이유
정보공유 (information sharing)
여러 응용 프로그램이 동일한 정보를 필요로 하는 경우가 있을수 있으므로 이 정보에 병행적으로 접근할 수 있는 환경 구축을 위해서
계산 가속화 (computation speedup)
여러개의 코어를 가지고 있는 경우에 하나의 메인 프로세스를 여러가지의 서브 프로세스로 나뉘어 각각 연산을 하는 방법이 더 빠르기 때문에
모듈성(modularity)
OS의 기술구조 포스팅에서 보았듯이 모듈식으로 구성된 시스템을 구현하기 위해
IPC 기법의 종류 및 특징
IPC(interprocess communication) 즉 프로세스간 통신 기법의 종류에는 크게 두가지가 있는데.
공유메모리 방식과 메시지 전달 방식이 있다.
공유 메모리 방식에는 협력 프로세스들 사이에서 공유되는 공통의 메모리 영역이 있는 방식이고
메시지 전달 방식은 통신이 협력 프로세스 사이에 교환되는 메시지를 통해 이루어지는 방식이다.
공유 메모리 시스템
공유 메모리 영역을 처음 구축할 당시에는 시스템 콜이 필요하다. 공유 메모리 영역이 구축되면 이후의 접근은 메모리 접근으로 취급되어 커널의 간섭 등이 발생하지 않는다.
2022.08.31 - [OS :: 운영체제] - 프로세스 :: 공유 메모리 시스템 at POSIX
메시지 전달 시스템
충돌을 회피 할 필요가 없기때문에 적은 양의 데이터를 교환하는데 유용하다. 공유메모리 방식에 비해 구현이 쉬운 편이다. 통상적으로 시스템 콜에 의하여 구현되므로 커널의 간섭등이 존재하여 따라서 공유메모리 방식에 비해 속도는 느리다.
2022.08.31 - [OS :: 운영체제] - 프로세스 :: 메시지 전달 시스템 at Mach(iOS)
익명 파이프(PIPE)
지명 파이프(Named Pipe)
'CS > Operating System' 카테고리의 다른 글
프로세스 :: 메시지 전달 시스템 at Mach(iOS) (0) | 2022.08.31 |
---|---|
프로세스 :: 공유 메모리 시스템 at POSIX (0) | 2022.08.31 |
프로세스 :: 생성과 종료 (0) | 2022.08.19 |
프로세스 :: CPU 스케줄링 종류 (0) | 2022.08.18 |
프로세스 :: 문맥 교환과 오버헤드 (0) | 2022.08.17 |