1. 멀티 프로세싱
멀티프로세싱은 여러 개의 프로세스, 동시에 두 가지 이상의 일을 수행할 수 있는 것을 말합니다.
1-1. 웹 브라우저
웹 브라우저의 멀티프로세싱은 브라우저가 여러 개의 프로세스를 사용하여 웹 페이지를 로드하고 실행하는 것을 말합니다.
- 브라우저 프로세스: 탭 바, 주소창, 북마크 바, 설정 메뉴 등 브라우저의 UI 요소를 렌더링
- 렌더러 프로세스: 웹 페이지에서 보이는 부분의 모든 것을 제어
- 플러그인 프로세스: PDF 뷰어, Flash Player 등의 브라우저 플러그인을 실행하기 위해 사용
- GPU 프로세스: 웹 페이지의 그래픽 처리를 담당. WebGL, CSS, 애니메이션 등 GPU를 사용하는 작업을 처리.
1-2. IPC(Inter Process Communication)
멀티 프로세싱 환경에서 여러 프로세스가 동시에 작업을 수행하면서 서로 정보를 주고 받거나 동기화하는 것이 필수적인데, 이 때 사용되는 기술이 IPC입니다. 정리하자면, IPC는 프로세스들 사이에서 서로 데이터를 주고받는 행위 또는 그에 대한 방법이나 경로입니다.
IPC의 종류로는 공유 메모리, 파일, 소켓, 파이프, 메시지 큐가 있습니다.
공유 메모리
- 개념: 여러 프로세스가 동일한 메모리 영역을 접근하여 데이터를 공유하는 방식
특징
- 각 프로세스의 메모리를 다른 프로세스가 접근할 수 없지만 공유 메모리를 통해 여러 프로세스가 하나의 메모리를 공유 가능
- 메모리 자체를 공유하기 때문에 불필요한 데이터 복사의 오버헤드가 발생하지 않아 가장 빠름
- 같은 메모리 영역을 여러 프로세스가 공유하기 때문에 공기화가 필요
파일
- 개념: 파일 시스템을 통해 데이터를 주고 받는 방식
- 특징
- 영구적인 데이터 저장
- 속도가 느림
소켓
- 개념: 네트워크를 통해 프로세스 간 데이터를 주고 받는 방식
- 특징
- TCP와 UDP가 있음
파이프
- 개념: 2개의 프로세스 입출력을 직렬 연결하여 데이터를 주고 받는 방식
- 특징
- 익명 파이프(Anonymous PIPE)와 명명된 파이프(Named PIPE) 존재
익명 파이프(Anonymous PIPE)
- 개념: 부모-자식 프로세스 간에만 통신할 수 있는 파이프(자식 프로세스란 부모 프로세스에 의해 생성된 프로세스로 부모 프로세스의 코드를 복사하여 생성되므로 부모 프로세스의 일부 상태를 상속받음)
- 특징
- 프로세스 간에 FIFO 방식으로 읽히는 임시 공간
- 단방향 통신으로 읽기 전용, 쓰기 전용 파이프를 만들어서 작동
명명된 파이프(Named PIPE)
- 개념: 파이프 서버와 하나 이상의 파이프 클라이언트 간의 통신을 위한 이름있는 단방향/양방향 파이프
- 특징
- 단방향 또는 양방향 가능
- 여러 파이프를 동시에 사용 가능
- 컴퓨터의 프로세스끼리 또는 다른 네트워크상의 컴퓨터와도 통신 가능
메시지 큐
- 개념: 메시지를 큐(queue) 데이터 구조 형태로 관리하는 것
- 특징
- 커널의 전역 변수 형태 등 커널에서 전역적으로 관리됨
- 사용 방법이 매우 직관적이고 간단
- 다른 코드의 수정 없이 단지 몇 줄의 코드를 추가시켜 간단하게 메시지 큐에 접근 가능
728x90
'운영체제' 카테고리의 다른 글
[운영체제] CPU 스케줄링 알고리즘 (0) | 2024.05.10 |
---|---|
[운영체제] 스레드 (0) | 2024.05.10 |
[운영체제] 프로세스 (0) | 2024.05.08 |
[운영체제] 메모리 관리 (0) | 2024.05.05 |
[운영체제] 캐시(Cache) (0) | 2024.05.04 |