패스잇
CS 기초 · 기초

프로세스(Process)와 스레드(Thread)는 운영체제에서 작업을 처리하는 단위입니다. 이 둘의 주요 차이점은 무엇이며, 각각 어떤 특징을 가지고 있는지 설명해 주세요.

힌트 · 프로세스는 독립적인 메모리 공간을 가지며, 스레드는 같은 프로세스 내에서 메모리를 공유합니다. 컨텍스트 스위칭 비용도 중요한 차이점입니다.

자원 공유독립적인 실행컨텍스트 스위칭메모리 공간병행성

모범답안

프로세스와 스레드는 운영체제에서 작업을 처리하는 기본적인 단위입니다. 가장 큰 차이점은 자원 공유 방식에 있습니다.

프로세스는 독립적인 메모리 공간을 가지고 실행되기 때문에, 다른 프로세스의 자원에 직접 접근할 수 없습니다. 반면, 스레드는 하나의 프로세스 내에서 생성되어 프로세스의 메모리 공간과 자원을 공유합니다.

이러한 차이점 때문에 컨텍스트 스위칭 비용에도 차이가 발생합니다. 프로세스 간의 컨텍스트 스위칭은 메모리 공간을 변경해야 하므로 비용이 큰 반면, 스레드 간의 컨텍스트 스위칭은 메모리 공간 공유로 인해 비교적 비용이 적게 듭니다.

프로세스는 독립적인 실행 환경을 제공하여 안정성이 높지만, 자원 공유가 어렵고 생성 및 관리 비용이 높습니다. 스레드는 자원 공유가 용이하고 컨텍스트 스위칭 비용이 적어 효율적이지만, 동기화 문제 발생 가능성이 있고 하나의 스레드 오류가 전체 프로세스에 영향을 줄 수 있다는 단점이 있습니다.

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

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

함께 보는 동시성 / 멀티스레딩 면접 질문

← 동시성 / 멀티스레딩 면접 질문 전체 보기