멀티 프로세스와 멀티 스레드

규갓 God Gyu·2025년 5월 21일

면접질문

목록 보기
136/142

컴퓨터 자원을 효율적으로 활용하고, 상황에 따라 작업의 안정성 또는 처리 속도를 개선하기 위한 기법

멀티 프로세스

하나의 프로그램이 여러 개의 프로세스르르 생성해, 각각이 독립적으로 실행되는 구조
각 프로세스는 자신만의 메모리 공간을 가지고 있음.
하나의 프로세스에서 문제가 생겨도 다른 프로세스에는 영향을 미치지 않아 높은 안정성을 가짐
이처럼 격리된 실행 환경은 보안성과 충돌 방지에 강점

ex- 크롬 브라우저의 탭 구조
각 탭이 별도의 프로세스로 실행되기 때문에, 한 탭에서 무한 루프나 오류가 발생해도 브라우저 전체가 몸추지 않고, 해당 탭만 종료됨

단점은 프로세스마다 메모리를 별도 할당 받기 때문에 시스템 자원 소모가 큼
또한 다른 프로세스 간 데이터를 주고받기 위한 IPC(Inter-Porcess Communication)도 복잡하고 비용이 높음

멀티 스레드

하나의 프로세스 내부에서 여러 스레드가 동시에 작업을 수행하는 구조
스레드들은 하나의 메모리 공간을 공유하고, 가볍고 빠른 작업 분할이 가능하다는 점에서 성능 효율이 높음

ex- 서버에서 네트워크 요청을 동시에 처리하거나, 게임에서 여러 캐릭터의 움직임을 병렬로 계산할 때 효과적

멀티 스레드 구조에선 공유 자원에 대한 충돌 문제가 존재하기도 함.
두 스레드가 동시에 같은 메모리 주소를 수정하려고 할 때, 데이터가 꼬일 수 있으며, 이를 방지하기 위해 락이나 세마포어 같은 동기화 기술을 사용해야 함.
이러한 동기화 처리에는 추가적인 코드 복잡도와 성능 저하의 위험도 따름

profile
웹 개발자 되고 시포용

0개의 댓글