Blog

[CS]42 멀티프로세스와 멀티쓰레드의 특징에 대해 설명해주세요.

Author
Summary
Category
Study
Tags
CS
PinOnMain
Favorite
Memory
Memory Date
2023/11/05
Cross Reference Study
Related Media
Related Thought
Related Lessons
tag
날짜
작성자
진행상황
진행 전
태그구분
4 more properties
멀티프로세스와 멀티쓰레드의 특징에 대해 설명해주세요.
두 방법은 동시에 여러 작업을 수행하는 점에서 동일하지만, 각각의 장단이 있으므로 적용하는 시스템에 따라 적합한 동작 방식을 선택하고 적용해야 합니다.
멀티 스레드는 하나의 프로세스에 여러 스레드로 자원을 공유하며 작업을 나누어 수행하는 것입니다.
멀티 스레드는 적은 메모리 공간을 차지하고 Context Switching이 빠른 장점이 있지만, 동기화 문제와 하나의 스레드 장애로 전체 스레드가 종료 될 위험을 갖고 있습니다.
멀티 프로세스는 두개 이상 다수의 프로세서(CPU)가 협력적으로 하나 이상의 작업(Task)을 동시에 처리하는 것입니다. (병렬처리)
프로세스 자체는 독립적이기 때문에 다른 프로세스에 영향을 주지 않아 안정성이 높지만, 멀티 스레드보다 많은 메모리공간과 CPU 시간을 차지하는 단점이 있습니다.
추가질문 : 각 장단점을 자세히 설명할 수 있을까요?
멀티스레드의 장단점
시스템 자원소모 감소 (자원의 효율성 증대)
시스템 처리율 향상 (처리비용 감소)
간단한 통신 방법으로 프로그램 응답시간 단축
자원을 공유하기에 동기화 문제가 발생할 수 있다. (병목현상, 데드락 등)
주의 깊은 설계가 필요하고 디버깅이 어렵다. (불필요 부분까지 동기화하면, 대기시간으로 인해 성능저하 발생)
하나의 스레드에 문제가 생기면 전체 프로세스가 영향을 받는다.
단일 프로세스 시스템의 경우 효과를 기대하기 어렵다.
멀티프로세스의 장단점
독립된 구조로 안전성이 높은 장점이 있다.
프로세스 중 하나에 문제가 생겨도 다른 프로세스에 영향을 주지 않아, 작업속도가 느려지는 손해정도는 생기지만 정지되거나 하는 문제는 발생하지 않는다.
Context Switching이 자주 일어나서 주소 공간의 공유가 잦아지면 캐시 메모리 초기화 등 무거운 작업이 진행되고 시간이 소모되는 등 오버헤드가 발생한다.
(CPU에서 여러 프로세스를 돌아가면서 작업을 처리하는 데 이 과정을 Context Switching라 한다. 실행중인 프로세스가 대기하게 되면, 작업상태를 보관하게 됬다가, 복구하는 작업)