반응형
멀티프로세싱 (Mutiprocessing)
멀티프로세싱이란?
여러 CPU를 사용하여 동시에 여러 프로세스를 실행하는 컴퓨팅기술. 각 프로세스는 독립된 메모리 공간을 갖고 있어 서로의 메모리에 직접 접근하지 않는다.
⭐️ 프로세스 간 통신 (IPC) : 프로세스 간 데이터를 주고받기 위해 파이프, 메시지 큐, 공유메모리 등의 IPC 메커니즘을 사용.
IPC(Inter-Process Communication) 설명 바로가기
멀티프로세싱의 장점과 단점
- 장점
- 여러 프로세스를 병렬로 실행함으로써 작업 처리 속도가 빨라짐 (성능 향상)
- 하나의 프로세스가 실패해도 다른 프로세스에는 영향을 미치지 않음 (안정성)
- 추가적인 CPU나 코어를 통해 쉽게 시스템 성능 확장이 가능함 (확장성)
- 단점
- 다중 CPU/코어 시스템은 단일 CPU 시스템보다 비용이 높음
- 각 프로세스가 독립된 메모리 공간을 사용하므로 메모리 소모가 많을 수 있음
멀티프로세싱과 멀티태스킹의 차이
멀티태스킹은 여러 프로세스 내에서 여러 작업을 동시에 수행하는 것을 의미한다. 정확히는, 멀티태스킹은 CPU의 스케줄링을 통해 "동시에 수행하는 것처럼 보이는 것"이다.
멀티프로세싱은 실제로 CPU병렬 처리를 통해 동시에 작동하는 것으로 차이가 있다.
멀티스레딩 (Multithreading)
멀티스레딩이란?
하나의 프로세스 내에서 여러 스레드를 생성하여 동시에 실행하는 컴퓨팅 기술. 각 스레드는 독립적으로 실행되지만, 동일한 메모리 공간을 공유한다.
멀티스레딩의 장점과 단점
- 장점
- 스레드간 컨텍스트 스위칭이 프로세스간 컨텍스트 스위칭보다 빠르고 비용이 적게 든다.
특히 I/O 작업(blocking 방식으로 동작하기 때문에)이 많은 프로그램에서 성능이 크게 향상됨. (성능 향상) - 스레드들은 동일한 메모리 공간을 공유하고 있어 자원을 효율적으로 사용할 수 있음 (자원 공유)
- 프로세스보다 가볍기 때문에 효율성이 높음.
- 스레드간 컨텍스트 스위칭이 프로세스간 컨텍스트 스위칭보다 빠르고 비용이 적게 든다.
- 단점
- 한 스레드에 문제가 생기면 다른 스레드에도 영향을 끼침.
- 스레드 간 동기화와 데이터 공유 관리가 복잡. 잘못구현하면 데드락이나 레이스 컨디션 등의 문제가 발생할 수 있음
- 데드락 : 두 개 이상의 프로세스가 서로 자원을 기다리며 무한 대기하는 상황
- 레이스 컨디션 : 공유 자원에 접근할 때 접근 순서에 따라 결과가 달라지는 상황
728x90
반응형
'Computer Science > Operating System' 카테고리의 다른 글
프로세스의 상태 (0) | 2024.10.29 |
---|---|
IPC(Inter-Process Communication) (0) | 2024.10.29 |
컨텍스트 스위칭(Context Switching) (0) | 2024.10.23 |
PCB(Process Control Block) (0) | 2024.10.23 |
프로세스 메모리 구조, 프로세스/스레드 차이 (0) | 2024.10.22 |