공부를 하며 정리한 내용입니다. 틀린 내용이 있다면 알려주세요.
감사합니다!🙇
Operating System Concepts(International Edition 10 /E)
Silberschatz, Avraham , PETER BAER GALVIN , GREG GAGNE 저자(글)
을 보고 공부하며 정리한 글입니다.
병행 프로세스와 프로세스 간 통신(IPC)
운영체제에서 실행되는 병행 프로세스는 독립적 프로세스와 협력적 프로세스로 나뉜다.
- 독립적 프로세스: 다른 프로세스와 데이터를 공유하지 않음.
- 협력적 프로세스: 다른 프로세스와 데이터를 공유하며 상호작용함.
1. 프로세스 협력이 필요한 이유
- 정보 공유: 여러 응용 프로그램이 동일한 데이터를 접근할 필요가 있음.
- 계산 가속화: 작업을 여러 서브태스크로 나누어 병렬 실행하여 속도를 향상시킴. (멀티코어 환경 필요)
- 모듈성: 시스템을 여러 개의 독립적인 프로세스 또는 스레드로 나누어 관리 가능.
2. 프로세스 간 통신(IPC) 기법
협력적 프로세스는 데이터를 교환하기 위해 **프로세스 간 통신(IPC, Interprocess Communication)**이 필요하다. IPC 기법은 공유 메모리 모델과 메시지 전달 모델로 구분된다.
- 공유 메모리 모델
- 프로세스 간 공유되는 메모리 공간을 구축하여 데이터를 읽고 쓰면서 정보 교환.
- 공유 메모리 설정 시에만 시스템 콜이 필요하며, 이후에는 일반적인 메모리 접근처럼 동작하여 커널 개입이 없음.
- 메시지 전달보다 속도가 빠름.
- 메시지 전달 모델
- 프로세스 간 직접적인 데이터 공유 없이, 메시지를 주고받으며 통신.
- 충돌 방지가 필요 없어 작은 데이터 교환에 적합.
- 분산 시스템에서 공유 메모리보다 구현이 쉬움.
- 커널을 통해 통신이 이루어지므로 오버헤드가 발생할 수 있음.
공유 메모리는 성능이 뛰어나지만 동기화 문제(경쟁 상태)가 발생할 수 있고, 메시지 전달은 안정성이 높지만 커널 개입으로 인해 속도가 느릴 수 있다. 시스템의 요구 사항에 따라 적절한 방식을 선택해야 한다.
다중 프로세스 구조 - Chrome 브라우저
현대 웹 브라우저는 탭 형식을 지원하여, 한 인스턴스에서 여러 개의 웹사이트를 동시에 열 수 있다. 사용자는 원하는 탭을 클릭하여 손쉽게 사이트를 전환할 수 있다.
1. 다중 프로세스 구조의 필요성
기존의 단일 프로세스 구조에서는 하나의 탭에서 오류가 발생하면 전체 브라우저가 충돌할 위험이 있었다. 이를 해결하기 위해 Chrome은 다중 프로세스 구조를 채택하여 안정성을 높였다.
2. Chrome의 프로세스 구성
Chrome은 주요 기능을 브라우저 프로세스, 렌더러 프로세스, 플러그인 프로세스로 나누어 관리한다.
- 브라우저 프로세스: UI 관리, 사용자 입력 처리, 네트워크 요청 관리 등의 역할 수행.
- 렌더러 프로세스: 웹 콘텐츠(HTML, CSS, JavaScript 등)를 처리하고 화면을 렌더링. 샌드박스 환경에서 실행되어 보안 취약점을 최소화하며, 디스크 및 네트워크 입출력 접근이 제한됨.
- 플러그인 프로세스: Flash 같은 플러그인 콘텐츠를 실행하며, 브라우저와 별도의 프로세스로 관리되어 충돌 시에도 영향을 최소화함.
3. 다중 프로세스 방식의 장점
- 안정성: 하나의 탭이 충돌해도 다른 탭과 브라우저 전체에는 영향을 미치지 않음.
- 보안성: 렌더러 프로세스를 샌드박스 내에서 실행하여 악성 코드의 영향을 최소화.
- 병렬 처리: 여러 프로세스를 사용하여 성능을 향상시킴.
Chrome은 다중 프로세스 구조를 적용하여 웹사이트 간의 독립성을 보장하고, 브라우저의 안정성과 보안을 강화하고 있음.
'CS' 카테고리의 다른 글
OS | 암묵적 스레딩 (0) | 2025.03.16 |
---|---|
OS | 스레드(Thread) 개요 및 Java 스레드 (0) | 2025.03.16 |
OS | 프로세스 스케줄링(Process Scheduling) (0) | 2025.03.10 |
OS | 프로세스 개념(Process Concept) (0) | 2025.03.09 |
HTTP | HTTP 메서드의 멱등성 (0) | 2025.02.12 |