<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 기법은 데이터를 복사하거나 버퍼링 하는 과정에서 성능 저하가 발생할 수 있음
- 코드의 복잡도를 증가시킴
'운영체제' 카테고리의 다른 글
[운영체제] 4. 스레드 관리 - (2) 스레드 주소 공간과 컨텍스트 (0) | 2025.04.17 |
---|---|
[운영체제] 4. 스레드 관리 - (1) 스레드의 필요성과 개념 (0) | 2025.04.17 |
[운영체제] 3. 프로세스 관리 - (3) 프로세스의 계층 구조 (0) | 2025.04.11 |
[운영체제] 3. 프로세스 관리 - (2) 커널의 프로세스 관리 (0) | 2025.04.11 |
[운영체제] 3. 프로세스 관리 - (1) 프로세스 개요 (0) | 2025.04.11 |