CS 기초 · 기초
프로세스(Process)와 스레드(Thread)는 운영체제에서 작업을 처리하는 단위입니다. 이 둘의 주요 차이점은 무엇이며, 각각 어떤 특징을 가지고 있는지 설명해 주세요.
힌트 · 프로세스는 독립적인 메모리 공간을 가지며, 스레드는 같은 프로세스 내에서 메모리를 공유합니다. 컨텍스트 스위칭 비용도 중요한 차이점입니다.
자원 공유독립적인 실행컨텍스트 스위칭메모리 공간병행성
모범답안
프로세스와 스레드는 운영체제에서 작업을 처리하는 기본적인 단위입니다. 가장 큰 차이점은 자원 공유 방식에 있습니다.
프로세스는 독립적인 메모리 공간을 가지고 실행되기 때문에, 다른 프로세스의 자원에 직접 접근할 수 없습니다. 반면, 스레드는 하나의 프로세스 내에서 생성되어 프로세스의 메모리 공간과 자원을 공유합니다.
이러한 차이점 때문에 컨텍스트 스위칭 비용에도 차이가 발생합니다. 프로세스 간의 컨텍스트 스위칭은 메모리 공간을 변경해야 하므로 비용이 큰 반면, 스레드 간의 컨텍스트 스위칭은 메모리 공간 공유로 인해 비교적 비용이 적게 듭니다.
프로세스는 독립적인 실행 환경을 제공하여 안정성이 높지만, 자원 공유가 어렵고 생성 및 관리 비용이 높습니다. 스레드는 자원 공유가 용이하고 컨텍스트 스위칭 비용이 적어 효율적이지만, 동기화 문제 발생 가능성이 있고 하나의 스레드 오류가 전체 프로세스에 영향을 줄 수 있다는 단점이 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 동시성 / 멀티스레딩 면접 질문
- 동시성(Concurrency)과 병렬성(Parallelism)의 개념을 정의하고, 두 개념의 주요 차이점을 설명해 주세요.
- 멀티스레딩(Multithreading)이란 무엇이며, 멀티스레딩을 사용할 때 얻을 수 있는 장점과 발생할 수 있는 단점은 무엇인지 설명해 주세요.
- 멀티스레딩 환경에서 발생할 수 있는 '경쟁 조건(Race Condition)'이란 무엇이며, 어떤 상황에서 발생할 수 있는지 구체적인 예를 들어 설명해 주세요.
- 경쟁 조건을 방지하기 위해 사용되는 '임계 영역(Critical Section)'의 개념을 설명하고, 왜 임계 영역 설정이 중요한지 이야기해 주세요.