패스잇
CS 기초 · 중급

프로세스와 스레드의 주요 차이점을 설명하고, 특정 애플리케이션 개발 시 어떤 기준으로 둘 중 하나를 선택할지 구체적인 시나리오를 들어 설명해보세요.

힌트 · 프로세스는 독립적인 자원을 가지며, 스레드는 프로세스 내에서 자원을 공유하는 실행 단위입니다. 자원 공유의 필요성과 오버헤드를 고려하여 선택합니다.

프로세스스레드자원 공유컨텍스트 스위칭병렬성

모범답안

프로세스와 스레드의 가장 큰 차이는 자원 독립성입니다. 프로세스는 독립적인 메모리 공간과 자원을 할당받아 다른 프로세스와 완전히 분리되어 실행됩니다. 반면, 스레드는 프로세스 내에서 메모리, 파일 등의 자원을 공유하며 실행되는 더 작은 실행 단위입니다.

어떤 것을 선택할지는 애플리케이션의 특성에 따라 달라집니다. 예를 들어, 이미지 편집 프로그램처럼 여러 이미지를 동시에 처리해야 하는 경우, 각 이미지를 별도의 프로세스로 처리하면 안정성이 높아집니다. 하나의 이미지 처리 과정에서 오류가 발생해도 다른 이미지 처리에는 영향을 주지 않기 때문입니다.

반면, 웹 서버처럼 많은 클라이언트 요청을 동시에 처리해야 하는 경우에는 스레드를 사용하는 것이 효율적입니다. 스레드는 프로세스보다 생성 및 컨텍스트 스위칭 비용이 저렴하여 더 많은 요청을 빠르게 처리할 수 있습니다. 자원 공유를 통해 메모리 사용량도 줄일 수 있습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 운영체제 면접 질문

← 운영체제 면접 질문 전체 보기