본문 바로가기
운영체제

[운영체제] 3. 프로세스 관리 - (4) 멀티프로세스 응용 프로그램

by NoDapKeepGoing 2025. 4. 11.

<2025.3.20.목요일 수업>

 

!!여기도 ..

 

📍1. 멀티프로세스 응용 프로그램의 의미

1-1. 멀티프로세스(multiprocess)

✔️ 운영체제에서 하나의 응용프로그램에 대해 동시에 여러 개의 프로세스를 수행할 수 있게 하는 기술
✔️ 독립적으로 수행, 상호 통신 가능
✔️ 독립적인 메모리 공간에 적재


e.g.) 웹 브라우저의 탭, 새 창 등

✔️ 다수의 프로세스를 동시에 수행시킴으로서, CPU나 입출력장치 등 자원의 활용률을 높이고 빠른 응답시간을 제공하기 위함

 

 

1-2. 다수의 스레드가 동시에 수행되는 상황

1️⃣ Concurrency(동시성, 병행성): multiprogramming, interleaving

1개의 CPU 상에서 2개 이상의 프로세스가 수행되는 상황

 

2️⃣ Parallelism(병렬성): multiprocessing, overlapping

다수의 CPU 상에서 다수의 프로세스가 동시에 수행되는 상황

 

 

1-3. 멀티프로세스 원리 확인 방법

1️⃣ 여러 개의 브라우저 탭을 띄운 뒤, 하나의 탭에서 F12로 개발자 도구를 열고
2️⃣ 콘솔 탭에서 while(1) {} 무한 루프 수행
3️⃣ 해당 탭 먹통 됨, 다른 탭은 정상작동함
4️⃣ 이는 가게 탭이 다른 프로세스로 동작한다는 증거

 

📍2. 멀티프로세스 응용 프로그램의 장점

1️⃣ 프로그램 안정성

✔️ 각 프로세스가 독립적인 메모리 공간을 가지므로, 다른 프로세스로부터 영향을 받지 않음
✔️ Chrome 브라우저에서 여러 개의 웹사이트를 띄웠을 때, 한 웹사이트가 먹통이 되어도 다른 웹사이트는 잘 작동함

 

2️⃣ 프로그램 병렬성

✔️ 멀티 CPU(코어) 시스템에서 각 프로세스를 병렬적으로 수행시켜 성능을 향상
✔️ 이미지 처리나 비디오 인코딩 같은 작업을 여러 개의 CPU에 분산시켜 빠르게 처리 가능

 

3️⃣ 시스템 확장성

✔️ 각 프로세스가 독립적이므로, 새로운 기능이나 모듈을 추가하거나 수정할 때 다른 프로세스에 영향을 주지 않아, 시스템 규모를 쉽게 확장 가능
✔️ 대규모 웹서비스에서 한대의 컴퓨터에 여러 개의 서버 프로세스를 띄움으로써 요청을 분산시켜 시스템 규모를 확장 가능함 ➡️ 서버의 장애나 다운타임을 최소화할 수 있음

 

📍3. 멀티프로세스 응용 프로그램의 단점

1️⃣ 컨텍스트 스위칭 오버헤드 큼

CPU는 다음에 수행할 무거운 프로세스 관리 정보를 불러오기 위해

메모리 검색, 캐시 초기화, 새로운 정보 캐시에 적재, 프로세스 상태 저장 등 오버헤드 큼

 

2️⃣ 오버헤드 최소화하는 방법 필요

✔️ 프로세스 수를 적정하게 유지
✔️ I/O 바운드 프로세스와 CPU 바운드 프로세스를 분리하여 관리
✔️ CPU 캐시를 효율적으로 활용

 

3️⃣ 자원의 비효율적 사용

각 프로세스가 독립적인 메모리 공간을 가지므로, 메모리 사용량이 증가

 

4️⃣ 프로세스 간 통신 오버헤드 큼

자원 공유가 필요한 경우 프로세스 간 복잡한 IPC 통신 기법(커널) 사용해야 함

    - 파이프, 소켓, 메시 지큐와 같은 IPC 기법은 데이터를 복사하거나 버퍼링 하는 과정에서 성능 저하가 발생할 수 있음
    - 코드의 복잡도를 증가시킴